[ Pobierz całość w formacie PDF ]
.13.Rys.6.13.Menu Edycja wraz w raz z odpowiednimi przypisaniami w inspektorzeobiektówNa wydruku 6.4 zamieszczono kompletny kod aplikacji Projekt07.bpr.W funkcjiFormCreate() wykorzystaliœmy w³aœciwoœci InitialDir oraz Filter obiektówTOpenDialog i TSaveDialog, z których pierwsza pozwala ju¿ w momencieuruchomienia aplikacji ustaliæ w³aœciw¹ œcie¿kê dostêpu do aktualnego katalogu,z kolei druga z wymienionych zapewnia mo¿liwoœæ odczytania plików posiadaj¹cychwymagane przez nas rozszerzenia.W tej samej funkcji umieœciliœmy równie¿„dymki podpowiedzi” do poszczególnych przycisków, korzystaj¹c z w³aœciwoœciHint oraz ShowHint.Œledz¹c poni¿szy wydruk zauwa¿ymy te¿, ¿e aby komponentyTOpenDialog i TsaveDialog, niewidoczne przecie¿ w trakcie uruchomieniaprogramu, generowa³y zdarzenia polegaj¹ce na wyœwietleniu odpowiednich okiendialogowych, nale¿y w funkcjach odpowiednich zdarzeñ skorzystaæ z metodyExecute().Plik z dysku odczytujemy korzystaj¹c z metody LoadFromFile(),zapisujemy zaœ przy pomocy SaveToFile().W funkcji CheckFileSave() skorzystaliœmy z w³aœciwoœci Modified komponentówedycyjnych, w tym równie¿ klasy TRichEdit.Je¿eli wykonamy jak¹kolwiekmodyfikacjê okna edycji, nast¹pi wywo³anie metody:virtual void __fastcall Modified(void) = 0 ;któr¹ nale¿y obs³u¿yæ, chocia¿by w sposób zaprezentowany poni¿ej.Je¿elizdecydujemy siê zapisaæ zmiany, zostanie wywo³ana funkcja obs³ugi zdarzeniaFileSaveAsClick(this), w przeciwnym wypadku nast¹pi wywo³anie funkcji Abort()wstrzymuj¹cej wykonywania bie¿¹cego zdarzenia.W jêzyku C++ istnieje s³owo kluczowe this, bêd¹ce wa¿nym elementem wielu tzw.„prze³adowywanych operatorów”.Ka¿da funkcja sk³adowa aplikacji lub ogólnieobiektu w momencie wywo³ania uzyskuje automatycznie wskaŸnik do obiektu, któryj¹ wywo³a³.Dostêp do tego wskaŸnika uzyskuje siê dziêki s³owu (wskaŸnikowi)this, który jest niejawnym parametrem wszystkich funkcji wchodz¹cych w sk³adobiektu (aplikacji).Je¿eli w pewnej, wydzielonej czêœci aplikacji, np.w jakiejœ funkcji,wywo³ujemy funkcjê obs³ugi zdarzenia, której argumentem jest z regu³y wskaŸnikTObject *Sender, nale¿y wówczas jawnie uzyskaæ do niego dostêp.Z regu³y robimyto korzystaj¹c w³aœnie ze wskaŸnika this.Wydruk 6.4.Kod modu³u Unit07.cpp aplikacji wykorzystuj¹cej listê akcjiTActionList w celu zorganizowania pracy g³Ã³wnego menu oraz ca³ego programu.#include#pragma hdrstop#include "Unit07.h"#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//--------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){}//--------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){OpenDialog1->InitialDir = ExtractFilePath(ParamStr(0));OpenDialog1->Filter ="*.dat , *.txt, *.cpp, *.c, *.rtf | *.dat; *.txt; *.cpp;*.c; *.rtf";SaveDialog1->InitialDir = OpenDialog1->InitialDir;SaveDialog1->Filter = "*.*|*.*";RichEdit1->ScrollBars = ssVertical;FileNew->Hint = "Nowy plik Ctrl+N";FileNew->ShowHint = TRUE;FileOpen->Hint = "Otwórz plik Ctrl+O";FileOpen->ShowHint = TRUE;FileSave->Hint = "Zapisz jako.Ctrl+J";FileSave->ShowHint = TRUE;Copy->Hint = "Kopiuj Ctrl+C";Copy->ShowHint = TRUE;Paste->Hint = "Wklej Ctrl+V";Paste->ShowHint = TRUE;Cut->Hint = "Wytnij Ctrl+X";Cut->ShowHint = TRUE;Undo->Hint = "Cofnij Ctrl+Z";Undo->ShowHint = TRUE;}//--------------------------------------------------------------------void __fastcall TForm1::CheckFileSave(void){if (RichEdit1->Modified){switch(MessageBox(NULL, "Zawartoœæ pliku lub okna zosta³a"" zmieniona [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • orla.opx.pl