iReklama  |  PC Svět  |  vyhledávací centrála  |  Diskuzní fórum  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz - čte si nás 25 čtenářů
 
PC Svět
Hlavní stránka
ASP
Aktuality
Assembler
C,C++
Cracking
Delphi
Diskuze
Grafika
Hardware
Hry a zábava
HTML
Internet
JavaScript
Komunikace
Literatura
Linux
Microsoft Office
Turbo Pascal
Perl
PHP
Software
Tiskové zprávy
Visual Basic
Windows
WWW katalog

Knihovna zdr. kódů

Nabídka skriptů aj.

Homepage autora
Služby
Guestbook
  kniha návštěv pro
  každého
MailForm
  zasílání výsledků
  formulářů na e-mail
Programy
DOS Commander
WinMan
Windows Tools
Informace
O PC Světě
Přehled rubrik
Reklama
Výsledky anket
Přehled novinek


ISSN 1213-6042

šéfredaktor
Petr Šťastný
admin@pcsvet.cz

zástupce šéfredaktora
Pavel Rauš
raus@pcsvet.cz

Stránka je optimalizo-
vána pro prohlížeč
Internet Explorer 5.0
při rozlišení 800x600

 © Petr Šťastný 2002
   All rights reserved

PC Svět
ikonka PC Světa



Linux - zdarma a legálně



TOPlist

Vytisknout   Poslat   Komentáře (0)   Přidat komentář

Napište si svůj vlastní poznámkový blok (4.)

aneb jak na to pro úplné začátečníky - uložení nastavení

Tento díl navazuje na díl předchozí, a proto by bylo dobré, kdybyste si jej přečetli dříve než začnete číst tento. Pro dobré pochopení byste měli znát aspoň základní příkazy pro práci se soubory. Takže tedy: Musíte si nejdříve vytvořit nějakou proměnnou typu Textfile nebo typu  file of typ (kde typ je typ hodnot, které budou moci být čteny nebo zapisovány do souboru). Tuto proměnnou si poté musíte příkazem assignfile spojit s konkrétním souborem. Poté použijete příkaz rewrite (vymaže obsah a otevře soubor), reset (otevře soubor pro čtení i zápis) nebo append (otevře soubor pro čtení i zápis a posune ukazatel na konec souboru, pouze pro textfile). Nyní můžete ze souboru číst (read, readln) nebo do něj zapisovat (write, writeln). A nakonec musíte soubor uzavřít příkazem closefile.

Uložení nastavení: Do eventu Onclose hlavního formu musíte přidat:



procedure Tzakladni.FormClose(Sender: TObject; var Action: TCloseAction);
var soubor:file of Tmujzaznam;
    zaznam:Tmujzaznam;
begin
  assignfile(soubor,ExtractFilePath(application.exename)+'nastav.dat');
  rewrite(soubor);
  begin    //nastavení fontu
    zaznam.font.fcolor:=Editor.font.color;
    zaznam.font.fname:=Editor.font.Name;
    zaznam.font.fsize:=Editor.font.Size;
    zaznam.font.fstyle:=Editor.font.Style;
  end;
  zaznam.color:=Editor.color;
  zaznam.font.fCharset:=Editor.font.Charset;
  begin     //nastavení zarovnání
    if levo.checked  then zaznam.zarovnat:=1;
    if stred.checked then zaznam.zarovnat:=2;
    if pravo.Checked then zaznam.zarovnat:=3;
  end;
  write(soubor,zaznam); //samotné uložení nastavení
  closefile(soubor);
end;

Snad jen:funkce Extractfilepath(application.exename) vrací cestu k adresáři s aplikací, takže soubor nastav.dat bude ve stejném adresáři jako aplikace. Typ Tmujzaznam je definovaný takto:


type TrFont=record
              fName  : string[200];
              fColor : TColor;
              fSize  : word;
              fStyle : Tfontstyles;
              fCharset:TFontCharset;
            end;

type Tmujzaznam=record


                  font:Trfont;


                  color:Tcolor;


                  zarovnat:integer;


                 end;

Tuto definici musíte vložit do unit1 mezi uses a const. Snad ještě: záznam Font nemůže být ukládán přímo (nevím proč, ale prostě to nejde), a proto jsem si vytvořil záznam TrFont.

 

Načtení nastavení: Do eventu Oncreate hlavního formu musíte přidat:



procedure Tzakladni.FormCreate(Sender: TObject);
var soubor:file of Tmujzaznam;
    zaznam:Tmujzaznam;
begin
  //pro otevření souboru zadaného parametrem
  Caption := meNoname;
  if paramcount>0 then
   begin
    try
     editor.Lines.loadfromfile(paramstr(1));
     Caption :=paramstr(1);
     Editor.Modified := FALSE;
    except
      showmessage('Neplatná cesta k souboru.');
    end;
   end;
  //zde začíná načítání uložení
  assignfile(soubor,ExtractFilePath(application.exename)+'alespad.dat');
  try
    reset(soubor);
  except
    //on V:EInOutError do
     showmessage('Soubor '+ExtractFilePath(application.exename)+'alespad.dat'+' nenalezen! Po ukončení této aplikace se založí nový!');
     exit;
  end;
  read(soubor,zaznam);
  begin
    Editor.font.color:=zaznam.font.fcolor;
    Editor.font.Name:=zaznam.font.fname;
    Editor.font.Size:=zaznam.font.fsize;
    Editor.font.Style:=zaznam.font.fstyle;
  end;
  Editor.color:=zaznam.color;
  Editor.font.Charset:=zaznam.font.fCharset;
  case zaznam.zarovnat of
    1:levoclick(nil);
    2:stredclick(nil);
    3:pravoclick(nil);
   end;
  closefile(soubor);
end;

Nejprve bych rád popsal ještě první část. U většiny programů funguje, že když je spustíte s parametrem souboru, který chcete otevřít, tak jej otevřou automaticky. No a totéž řeší první část. meNoName je konstanta 'Bez názvu'. Funkce paramcount vrací počet parametrů, se kterými byl program spuštěn, a paramstr vrací parametr, jehož pořadové číslo specifikuje číslo v závorce.

Nyní k načtení nastavení: Toto je velmi podobné uložení nastavení, takže pokud jste pochopili ukládání, pochopíte i načítání. Je zde jen jeden háček: Soubor, který udává první parametr,  nebo soubor s nastavením nemusí existovat, a proto je zde využito konstrukce try..except..end, která by mohla být pro začínající programátory problém. Nejde však o nic těžkého a laicky řečeno: provedou se příkazy mezi try a except, a pokud dojde někde k chybě zpracovávání těchto příkazů, provádění se přeruší a začnou se zpracovávat příkazy mezi except a end a poté se pokračuje za end. Pokud k chybě nedojde, příkazy mezi except a end nebudou zpracovány. Toto je velmi laicky řečeno, ale pro názornost to stačí.

Autor: Aleš Kresta, ales.kresta@seznam.cz, informace a seznam článků


Komentáře k článku

Žádné komentáře k tomuto článku

Přidat komentář


Poslední články ze stejné rubriky
OpenDelphiGL (6.)
Napište si svůj vlastní poznámkový blok (2.)
OpenDelphiGL (5.)
Napište si svůj vlastní poznámkový blok (1.)
OpenDelphiGL (4.)

Diskuze - Delphi - celkem 238 příspěvků (zobrazeno max. 15) - zobrazit celou diskuzi
Název Autor Datum
Přenos souboru přes protokol UDP ExtremeVidlak 17.10.2002
   žádná odpověď    
I/O Chuck 17.10.2002
   žádná odpověď    
Class - jak Chuck 17.10.2002
• Re: Zdeněk 20.10.2002
Delphi a internet BlackTiger 13.10.2002
   žádná odpověď    
1/sin rekr13 10.10.2002
• Re: 1/sin Petr Šťastný 10.10.2002
Ukládání dat z formuláře do řádků jiného... Ervín 04.10.2002
   žádná odpověď    
Počítací soubor pro formuláře Excel a Wo... Ervín 04.10.2002
   žádná odpověď    
Výsledek příkazu IPCONFIG do proměnné Howard 01.10.2002
   žádná odpověď    
gif na formulář Petr 30.09.2002
• Zkus http://www.festra.com/eng/index.html Howard 01.10.2002
Otevření / zavření zvolené jednotky CD-R... 27.09.2002
• Beru zpět ... 05.10.2002
Čeština DBGrid / foxpro Peta 26.09.2002
   žádná odpověď    
Provozovatel:
PES.cz
Příbuzné články
•  Napište si svůj vlastní poznámkový blok (3.)
•  Napište si svůj vlastní poznámkový blok (2.)
•  Napište si svůj vlastní poznámkový blok (1.)
•  Univerzální ukládání konfigurace do DB
Poslední články
Nové chipsety Intelu
Co je JPEG?
Napište si svůj vlastní poznámkový blok (4.)
Třikrát o PHP
Seznamka v PHP a MySQL (4.)
Hodnocení článku
nejlepší <----> nejhorší
    
Zatím nehodnoceno
Informace o článku
Datum 21.10.2002
Čtenářů 93
Autor Aleš Kresta
Rubrika Delphi - funkce
Nový redaktor
  Chcete psát články
  pro PC Svět či se
  stát redaktorem?

Články honorovány!

  Informace zde
EInfo
  Chcete být informováni
  o každém novém článku
  na PC Světě?

Zadejte svůj e-mail:

MSN.ATLAS.CZ
Hladat.sk

hlavní stránka  |  vyhledávací centrála  |  Diskuze  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz

Se svými dotazy či problémy se obracejte na diskuzní fórum, věci týkající se PC Světa směřujte na e-mail pcsvet@pcsvet.cz

Šíření obsahu tohoto serveru nebo jeho části je bez souhlasu redakce zakázáno.
(c) PC Svět 2002 - Všechna práva vyhrazena.