Podczas pracy z różnymi aplikacjami Windows i Delfy, przyzwyczailiśmy się do pracy z jednym ze standardów okna dialogowe do otwierania i zapisywania pliku, wyszukiwania i zamiany tekstu, drukowania, wybierania czcionek lub ustawiania kolorów.
W tym artykule przeanalizujemy niektóre z najważniejszych właściwości i metod tych okien dialogowych, ze szczególnym uwzględnieniem otwarty i Zapisać okna dialogowe.
Typowe okna dialogowe znajdują się na karcie Okna dialogowe palety Komponent. Te składniki korzystają ze standardowych okien dialogowych Windows (znajdujących się w bibliotece DLL w katalogu \ Windows \ System). Aby użyć wspólnego okna dialogowego, musimy umieścić odpowiedni komponent (komponenty) w formularzu. Typowe elementy okna dialogowego są niewizualne (nie mają interfejsu wizualnego czasu projektowania) i dlatego są niewidoczne dla użytkownika w czasie wykonywania.
TOpenDialog i TSaveDialog
Okna dialogowe Otwórz plik i Zapisz plik mają kilka wspólnych właściwości. File Open jest zwykle używany do wybierania i otwierania plików. Okno dialogowe Zapisz plik (używane również jako okno dialogowe Zapisz jako) służy do pobierania nazwy pliku od użytkownika w celu zapisania pliku. Niektóre z ważnych właściwości TOpenDialog i TSaveDialog to:
- The Opcje właściwości są bardzo ważne przy określaniu ostatecznego wyglądu pudełka. Na przykład wiersz kodu, taki jak:
z OpenDialog1 robićOpcje: = Opcje + [ofAllowMultiSelect, ofFileMustExist];
zachowa już ustawione opcje i pozwoli użytkownikom wybrać więcej niż jeden plik w oknie dialogowym wraz z generowaniem komunikatu o błędzie, jeśli użytkownik spróbuje wybrać nieistniejący plik. - The InitialDir Właściwość służy do określenia katalogu, który będzie używany jako katalog początkowy, gdy wyświetlone zostanie okno dialogowe pliku. Poniższy kod zapewni, że katalog początkowy okna dialogowego Otwórz to katalog startowy aplikacji.
SaveDialog1.InitialDir: = ExtractFilePath (aplikacja. ExeName);
- The Filtr Właściwość zawiera listę typów plików, z których użytkownik może wybrać. Gdy użytkownik wybiera typ pliku z listy, w oknie dialogowym wyświetlane są tylko pliki wybranego typu. Filtr można łatwo ustawić w czasie projektowania za pomocą okna dialogowego Edytor filtrów.
- Aby utworzyć maski plików w kodzie programu, przypisz wartość do właściwości Filter, która składa się z opisu i maski oddzielonych znakiem pionowej kreski (potoku). Lubię to:
OpenDialog1.Filter: = „Pliki tekstowe (* .txt) | * .txt | Wszystkie pliki (*. *) | *. * ';
- The Nazwa pliku własność. Gdy użytkownik kliknie przycisk OK w oknie dialogowym, ta właściwość będzie zawierać pełną ścieżkę i nazwę pliku wybranego pliku.
Wykonać
Aby faktycznie utworzyć i wyświetlić wspólne okno dialogowe, musimy przetworzyć Wykonać metoda określonego okna dialogowego w czasie wykonywania. Z wyjątkiem TFindDialog i TReplaceDialog wszystkie okna dialogowe są wyświetlane modalnie.
Wszystkie typowe okna dialogowe pozwalają nam ustalić, czy użytkownik kliknie przycisk Anuluj (lub naciśnie klawisz ESC). Ponieważ metoda Wykonaj zwraca wartość Prawda, jeśli użytkownik kliknął przycisk OK, musimy przechwycić kliknięcie przycisku Anuluj, aby upewnić się, że dany kod nie zostanie wykonany.
gdyby OpenDialog1.Execute następnie ShowMessage (OpenDialog1.FileName);
Ten kod wyświetla okno dialogowe Otwórz plik i wyświetla wybraną nazwę pliku po „udanym” wywołaniu metody wykonania (gdy użytkownik kliknie Otwórz).
Uwaga: Wykonaj zwraca wartość True, jeśli użytkownik kliknął przycisk OK, dwukrotnie kliknął nazwę pliku (w przypadku okien dialogowych pliku) lub nacisnął klawisz Enter na klawiaturze. Wykonaj zwraca Fałsz, jeśli użytkownik kliknął przycisk Anuluj, nacisnął klawisz Esc, zamknął okno dialogowe za pomocą przycisku zamykania systemu lub kombinacji klawiszy Alt-F4.
Z kodu
Aby pracować z otwartym oknem dialogowym (lub dowolnym innym) w czasie wykonywania bez umieszczania komponentu OpenDialog w formularzu, możemy użyć następującego kodu:
procedura TForm1.btnFromCodeClick (Sender: TObject); var OpenDlg: TOpenDialog; zaczynać OpenDlg: = TOpenDialog. Utwórz (Jaźń); {tutaj ustaw opcje ...}gdyby OpenDlg. Wykonać następniezaczynać {kod, aby coś tutaj zrobić} koniec; OpenDlg. Darmowy; koniec;
Uwaga: Przed wywołaniem Execute możemy (trzeba) ustawić dowolne właściwości składnika OpenDialog.
MyNotepad
Wreszcie nadszedł czas na prawdziwe kodowanie. Cały pomysł tego artykułu (i kilku innych, które mają się pojawić) to stworzenie prostej aplikacji MyNotepad - samodzielnej aplikacji Windows, takiej jak Notatnik.
W tym artykule przedstawiono okna dialogowe Otwórz i Zapisz, więc zobaczmy je w akcji.
Kroki, aby utworzyć interfejs użytkownika MyNotepad:
. Uruchom Delphi i wybierz Plik-Nowa aplikacja.
. Umieść jeden formularz, OpenDialog, SaveDialog dwa przyciski na formularzu.
. Zmień nazwę Button1 na btnOpen, Button2 na btnSave.
Kodowanie
1. Użyj Inspektora obiektów, aby przypisać następujący kod do zdarzenia FormCreate:
procedura TForm1.FormCreate (Sender: TObject); zaczynaćz OpenDialog1 robićzaczynać Opcje: = Opcje + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Application. ExeName); Filtr: = 'Pliki tekstowe (* .txt) | * .txt'; koniec; z SaveDialog1 robićzaczynać InitialDir: = ExtractFilePath (Application. ExeName); Filtr: = 'Pliki tekstowe (* .txt) | * .txt'; koniec; Memo1.ScrollBars: = ssBoth; koniec;
Ten kod ustawia niektóre właściwości Otwartego okna dialogowego, jak omówiono na początku artykułu.
2. Dodaj ten kod dla zdarzenia Onclick przycisków btnOpen i btnSave:
procedura TForm1.btnOpenClick (Sender: TObject); zaczynaćgdyby OpenDialog1.Execute następniezaczynać Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; koniec; koniec;
procedura TForm1.btnSaveClick (Sender: TObject); zaczynać SaveDialog1.FileName: = Form1.Caption; gdyby SaveDialog1.Execute następniezaczynać Memo1.Lines. Zapisz do pliku. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; koniec; koniec;
Uruchom swój projekt. Nie możesz w to uwierzyć; pliki otwierają się i zapisują, tak jak w „prawdziwym” Notatniku.
Ostatnie słowa
Otóż to. Teraz mamy własny „mały” Notatnik.