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 (5)   Přidat komentář

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

aneb jak na to pro úplné začátečníky - editace texzu, uložení, tisk

Také nemáte rádi Poznámkový blok? Anebo jste někdy chtěli provést jednoduchou operaci (jako je třeba vložení určitého textu na určitou pozici na každém řádku), která nejde udělat ani v Poznámkovém bloku, ani v profesionálnějších textových procesorech? Právě pro vás je určen tento miniseriál, který by vás měl provést všemi kroky potřebnými k vytvoření vlastního poznámkového bloku. Vím, že to pro zkušenějšího programátora nebude asi žádný problém, ale pro ty méně zkušenější se myslím bude hodit seznam příkazů k tomu potřebných.

Takže začneme tedy: Předpokládám, že na ploše máte komponentu TMemo, která už sama o sobě je vlastně takovým malým poznámkovým blokem. Tuto komponentu si pojmenujte třeba Editor (můžete si ji pojmenovat jak chcete, ale potom musíte podle toho upravit příkazy).

Začněme tedy třeba příkazy z nabídky Soubor (Nabídku si můžete vytvořit přidáním komponenty TMainmenu a potom jej editovat po dvojím kliknutí na tuto komponentu.)

Nový dokument:

procedure Tzakladni.Nov1Click(Sender: TObject);
begin
  Editor.Lines.Clear;
end;

 

Otevření dokumentu: musíte si na form vložit komponentu TOpendialog(je dobré nastavit si filtr na *.TXT v property Filtr). Všimněte si, že se jméno uloží i do Captionu hlavního okna a že se změní proměnná Modified komponenty Editor, čehož později využijeme.

procedure Tzakladni.Otevt1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    begin
       Editor.Lines.LoadFromFile( OpenDialog1.FileName );
       Caption := OpenDialog1.FileName;
       Editor.Modified := FALSE
    end
end;

 

Uložit:Je třeba vložit komponentu Tsavedialog. Pokud v Captionu hlavního okna nebude jméno souboru vyvolá se procedura  Uloitjako1Click, kterou si popíšeme níže. Aby procedura korektně fungovala, je třeba připsat do eventu Oncreate hlavního okna příkaz:   Caption := meNoname;
procedure Tzakladni.Uloit1Click(Sender: TObject);
begin
   if Caption = meNoname then
       Uloitjako1Click( nil );   else
      begin
          Editor.Lines.SaveToFile( Caption );
          Editor.Modified := FALSE
       end
end;

 

Uložit jako:Velmi jednoduché. Jenom malá poznámka: Předpokládám dva filtry v SaveDialogu1. První pro *.* a druhý pro *.txt. Jméno se zase vloží do Captionu hlavního okna.

procedure Tzakladni.Uloitjako1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
   begin
      if Savedialog1.filterindex=1 then Editor.Lines.SaveToFile( SaveDialog1.FileName );
      if Savedialog1.filterindex=2 then Editor.Lines.SaveToFile( SaveDialog1.FileName+'.txt');
      Editor.Modified := FALSE;
      Caption := SaveDialog1.FileName;
      if Savedialog1.filterindex=2 then Caption:=Caption+'.txt';
   end
end;

 

Tisk: Trochu složitější. Je třeba vložit komponentu TprintDialog. Prozatím umí vytisknou jen celý dokument.

 procedure Tzakladni.Tisk1Click(Sender: TObject);
var a,b:integer;
begin
  if not printdialog1.execute then exit;
  with Printer do
  begin
    begindoc;
    canvas.font:=Editor.font;
    if Printdialog1.PrintRange=prALLPages then
      for b:=0 to Printdialog1.Copies do
       begin
        if b>0 then Newpage;
        for a:=0 to Editor.lines.count do
          Canvas.TextOut(0,0,Editor.Lines[a]);
       end
     else showmessage('Tento program umí vytisknout pouze celý dokument!!');
    enddoc;
  end;
end;

 

Konec: Úplně stupidní.

procedure Tzakladni.Konec1Click(Sender: TObject);
begin
  close;
end;

Tímto končí první díl a doufám, že vám aspoň trochu pomohl a že se podíváte i na druhý a snad i nějaký ten další. Komponenty které jsem výše psal, že je třeba vložit na hlavní formulář, a nenapsal k nim, jaké mají mít jméno, by měly zůstat beze změny jména (Například když vložíte TSavedialog, bude se automaticky jmenovat Savedialog1, pokud již nějaká komponenta s takovým názvem neexistuje.)

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


Komentáře k článku
Limit ?, ldjwelkfjlwe, 11.10.2002 8:54:38
ZACATEK, PK APPO, 11.10.2002 16:15:43
Re: ZACATEK, Autor, 11.10.2002 18:49:09
Re: Limit ?, Zdendax, 11.10.2002 22:59:29
Re: Limit ?, Autor, 12.10.2002 17:38:31

Přidat komentář


Poslední články ze stejné rubriky
Napište si svůj vlastní poznámkový blok (4.)
OpenDelphiGL (6.)
Napište si svůj vlastní poznámkový blok (2.)
OpenDelphiGL (5.)
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
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ší
    
Stav: 3
Počet: 2
Informace o článku
Datum 11.10.2002
Čtenářů 618
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.