Tutorial: Piszemy notatnik(szczegółowo opisane)

Bezel21

Użytkownik
Dołączył
Maj 22, 2007
Posty
104
Cześć, pomyślałem, że napiszę dla początkujących programistów taki kurs/pomoc w pisaniu notatnika w Delphi.
Kod szczegółowo omówię + w kodzie znajdują się komentarze. Wiem, są różne tutoriale jak napisać notatnik, ale mój
jest całkowicie omówiony, więc będzie można jeszcze z nim pokombinować.
Więc, zacznijmy od stworzenia Menu rozwijanego za pomocą komponentu MainMenu, który znajduje się w zakładce
Standard. Wykonaj je tak, jak na zdjęciach.

01e5d184c1727041.jpg


e44999d4c0325fcd.jpg


Właściwość Memo1, w Object Inspectorze Align ustaw na alClient... Dzięki temu Memo będzie się przystosowywać do
rozmiarów formy.
Teraz przejdźmy znowu do komponentu Mainmenu... Kliknij na formie Plik/Nowy i wypełnij kod następująco:

Kod:
Memo1.Clear; //czyści komponent Memo

Teraz Plik/Otwórz...:

pomiędzy begin a end wpisz:

Kod:
If opendialog1.execute then        //jeżeli opendialog się wyswietlil, to...
memo1.lines.loadfromfile(Opendialog1.filename); //zapisz w podanej sciezce tresc memo.

Teraz znów Plik/Zapisz jako:

Kod:
{wyswietlenie wiadomosci, jezeli nacisnieto tak, to...}
if Application.MessageBox('Czy zapisac plik?','Zapisywanie...',MB_YESNO + MB_ICONQUESTION)= IDYES then
begin
savedialog1.execute;         //wyswietl savedialog...
memo1.Lines.SaveToFile(Savedialog1.filename + '.txt')   //zapisz na dysku tresc memo1...

I w końcu Plik/Zakończ:

Kod:
application.Terminate; //zakończenie aplikacji.

Zakładkę Plik, mamy już z głowy, teraz Edycja/kopiuj:

Kod:
memo1.copytoclipboard; //kopiowanie zaznaczonego tekstu...

Edycja/wklej:

Kod:
memo1.PasteFromClipboard; //wklejanie zaznaczonego tekstu...

Edycja/wytnij:

Kod:
memo1.CutToClipboard; //wycinanie zaznaczonego tekstu...

OK, prawie gotowe, teraz:
W Object Inspectorze Savedialogu kliknij na Filter:

pole Filter Name uzupełnij następująco:

Kod:
*txt

A pole Filter uzupełnij tak:

Kod:
Pliki formatu .txt...

Tak też samo zrób z Opendialogiem...

No i nasz notatnik gotowy. Oto cały kod:

Kod:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    MainMenu1: TMainMenu;
    Plik1: TMenuItem;
    Nowy1: TMenuItem;
    Zakoncz: TMenuItem;
    Zapiszjako1: TMenuItem;
    Otwrz1: TMenuItem;
    Edycja1: TMenuItem;
    Kopiuj1: TMenuItem;
    Wklej1: TMenuItem;
    Wytnij1: TMenuItem;
    Memo1: TMemo;
    SaveDialog1: TSaveDialog;
    procedure Otwrz1Click(Sender: TObject);
    procedure Zapiszjako1Click(Sender: TObject);
    procedure Kopiuj1Click(Sender: TObject);
    procedure Wklej1Click(Sender: TObject);
    procedure Wytnij1Click(Sender: TObject);
    procedure Nowy1Click(Sender: TObject);
    procedure ZakonczClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Otwrz1Click(Sender: TObject);
begin
If opendialog1.execute then        //jeżeli opendialog się wyswietlil, to...
memo1.lines.loadfromfile(Opendialog1.filename); //zapisz w podanej sciezce tresc memo.
end;

procedure TForm1.Zapiszjako1Click(Sender: TObject);
begin
{wyswietlenie wiadomosci, jezeli nacisnieto tak, to...}
if Application.MessageBox('Czy zapisac plik?','Zapisywanie...',MB_YESNO + MB_ICONQUESTION)= IDYES then
begin
savedialog1.execute;         //wyswietl savedialog...
memo1.Lines.SaveToFile(Savedialog1.filename + '.txt')   //zapisz na dysku tresc memo1...
end;
end;

procedure TForm1.Kopiuj1Click(Sender: TObject);
begin
memo1.copytoclipboard; //kopiowanie zaznaczonego tekstu...
end;

procedure TForm1.Wklej1Click(Sender: TObject);
begin
memo1.PasteFromClipboard; //wklejanie zaznaczonego tekstu...
end;

procedure TForm1.Wytnij1Click(Sender: TObject);
begin
memo1.CutToClipboard; //wycinanie zaznaczonego tekstu...
end;

procedure TForm1.Nowy1Click(Sender: TObject);
begin
Memo1.Clear; //czyści komponent Memo
end;

procedure TForm1.Zapisz1Click(Sender: TObject);
begin
application.Terminate; //zakończenie aplikacji.
end;

procedure TForm1.ZakonczClick(Sender: TObject);
begin
application.Terminate; //zakończenie aplikacji.
end;

end.

Doszukaliście się błędów? Piszcie
smile.gif
 

Bezel21

Użytkownik
Dołączył
Maj 22, 2007
Posty
104
Napisałeś go troszkę w Inny sposób, mój zaś jest dla zielonych w delphi, stąd prostota kodu i gromada tłumaczeń.
 

djmentos

Użytkownik
Dołączył
Maj 1, 2007
Posty
1868
Nieważne jak i po co.
Ważne, że coś nowego. Coś porządnego. Coś po części przydatnego. Coś co można poznać.

A nie kolejny gówno warty trojan.
Więcej takich nam potrzeba.

Od siebie dodam, że jakby to oprzeć na RichEdit było by bardziej funkcjonalne.
smile.gif
 

Bezel21

Użytkownik
Dołączył
Maj 22, 2007
Posty
104
<div class='quotetop'>CYTAT(djmentos @ 9.09.2008, 13:59) <{POST_SNAPBACK}></div>
Nieważne jak i po co.
Ważne, że coś nowego. Coś porządnego. Coś po części przydatnego. Coś co można poznać.

A nie kolejny gówno warty trojan.
Więcej takich nam potrzeba.

Od siebie dodam, że jakby to oprzeć na RichEdit było by bardziej funkcjonalne.
smile.gif
[/b]

Dzięki... artykuł powstał dla początkujących, aby opanowali podstawy najpierw... i sami pisali te swoje trojany, a nie prosili o tutoriale
smile.gif
 

Bezel21

Użytkownik
Dołączył
Maj 22, 2007
Posty
104
<div class='quotetop'>CYTAT(0wn3r @ 9.09.2008, 16:44) <{POST_SNAPBACK}></div>
Dobry artykuł
smile.gif
Poproś jakiegoś moderatora niech przyklei, żeby sie temat nie zmarnował.[/b]

Już poprosiłem, nie myślałem, że się komuś spodoba, a o przyklejeniu?
<

Będę pisał więcej takich artykułów, bo widzę, że warto. Dzięki za uznanie.
Pozdrawiam, Bezel21.
 

Master23

Użytkownik
Dołączył
Maj 27, 2008
Posty
22
Już działa
smile.gif
Poprostu nie wpisywalem tego tam gdzie trzeba
<


Fajny art ;p

A mógłby ktoś powiedziec jak zrobic okno About ???
 

brojek2

Użytkownik
Dołączył
Październik 1, 2011
Posty
1
Teraz Plik/Otwórz...:

pomiędzy begin a end wpisz:

Kod:
If opendialog1.execute then********//jeżeli opendialog się wyswietlil, to...
memo1.lines.loadfromfile(Opendialog1.filename); //zapisz w podanej sciezce tresc memo.
Teraz znów Plik/Zapisz jako:

Kod:
{wyswietlenie wiadomosci, jezeli nacisnieto tak, to...}
if Application.MessageBox('Czy zapisac plik?','Zapisywanie...',MB_YESNO + MB_ICONQUESTION)= IDYES then
begin
savedialog1.execute;******** //wyswietl savedialog...
memo1.Lines.SaveToFile(Savedialog1.filename + '.txt')** //zapisz na dysku tresc memo1...


Przy tym wywala mi błąd proszę o pomoc!

Gdzie to się znajduje? :

OK, prawie gotowe, teraz:
W Object Inspectorze Savedialogu kliknij na Filter
 
Do góry Bottom