Dziękuję za wszelkie dotacje.
| Karta Dialogs. |
| Wpisany przez Wojciech Romanek | |
| środa, 20 lutego 2008 00:43 | |
|
Kolejne ważne komponenty w Delphi, które postaram się opisać znajdują się w zakładce Dialogs. 4 pierwsze komponenty z tej zakładki (OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog) służą do operacji na plikach. Tzn otwieranie i zapis plików. Komponent FontDialog służy do wybierania czcionki. Komponent ColorDialog do wyboru kolorów, PrintDialog do drukowania, PrinterSetupDialog do ustawień drukarki oraz komponenty FindDialog do wyszukiwania ciągu znaków w tekscie, oraz ReplaceDialog do zamiany wyszukiwanego ciągu znaków na inny. To tak po krótce. Teraz postaram się omówić wykorzystanie tych komponentów. Komponenty OpenDialog oraz OpenPictureDialog obsługuje się w identyczny sposób z tą różnicą że po otwarciu OpenPictureDialog mamy podgląd obrazków. Do opisu części pierwszych komponentów jako przykład wezmę program z poprzedniego artykułu o rysowaniu w Delphi, którego kod źródłowy można pobrać z działu download (kategoria "Załączniki do artykułów"). W tym kodzie który wykorzystuję dzisiaj zmieniłem funkcję rysującą kopertę dodając do niej wypisywanie tekstu procedurą TextOut(); postaraj się tak zmodyfikować program aby na pierwszej linijce adresu nadawcy pojawił się napis "www.wromanek.info" następnie porównaj swój kod z kodem zmodyfikowanym zawartym poniżej - to takie małe ćwiczenie w celu przypomnienia poprzedniego artykułu. begin Image.Width:=584; Image.Height:=408; with Image.Canvas do begin //dane nadawcy Rectangle(0,0,584,408); MoveTo(10,30); LineTo(160,30); MoveTo(10,50); LineTo(160,50); MoveTo(10,70); LineTo(160,70); Rectangle(10,75,20,95); Rectangle(22,75,32,95); MoveTo(33,85); LineTo(38,85); Rectangle(40,75,50,95); Rectangle(52,75,62,95); Rectangle(64,75,76,95); MoveTo(78,95); LineTo(160,95); //koniec danych nadawcy //znaczek Rectangle(514,20,564,80); //dane adresata TextOut(300,264-TextHeight('A'),'www.wromanek.info'); MoveTo(300,268); LineTo(574,268); MoveTo(300,298); LineTo(574,298); MoveTo(300,328); LineTo(574,328); Rectangle(300,332,320,362); Rectangle(322,332,342,362); MoveTo(344,347); LineTo(352,347); Rectangle(354,332,374,362); Rectangle(376,332,396,362); Rectangle(398,332,418,362); MoveTo(420,362); LineTo(574,362); Otwieranie pliku. Aby otworzyć plik za pomocą komponentu OpenDialog jak i OpenPictureDialog należy najpierw, położyć komponent OpenPictureDialog na formie (ja będę używał tego komponentu aby załadować jakaś bitmape do komponentu Image). Następnie do formy dodajemy przycisk Otwórz w którego zdarzenie OnClick wpisujemy: if OpenPictureDialog1.Execute then begin Image.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; Funkcja LoadFromFile znana jest z artykułu o komponencie Image, natomiast jako parametr tej funkcji przekazujemy nazwę pliku wybranego przez komponent OpenDialog. Najlepiej zrozumieć tę funkcję można w praktyce. Teraz kompilując i uruchamiając program możemy otwierać mapybitowe które będą widoczne w miejscu naszego komponentu Image. Oczywiscie jeśli komponent image ma mniejsze rozmiary niż obraz który wczytujemy to obraz zostanie wyświetlony tylko częściowo. Zapisywanie pliku. Aby zapisać plik za pomocą komponentu SaveDialog lub SavePictureDialog wstawiamy odpowiedni komponent na naszą formę, a następnie dodajemy przycisk w którego zdażeniu OnClick wpisujemy analogicznie. if SavePictureDialog1.Execute then begin Image.Picture.SaveToFile(SavePictureDialog1.FileName); end; Funkcja SaveToFile też już była omawiana, jako argument tej funkcji przekazujemy nazwę pliku wybranego przez SavePictureDialog. Te cztery pierwsze komponenty posiadają taką właściwość jak Filte, gdzie możemy dodawać lub usuwać rozszerzenia które chcemy widzieć w oknie dialogowym. Przetestować ten komponent możemy w ten sposób że najpierw klikamy przycisk rysujący naszą kopertę, a następnie za pomoca przycisku "Zapisz" zapisujemy plik na dysku, teraz jego zawartość możemy sprawdzić dowolną przeglądarką plików graficznych. Zmiana czcionki. Do zmiany czcionki zastosujemy komponent FontDialog, aby go użyć oczywiście najpierw kładziemy go na naszą formę, następnie dodajemy przycisk "Czcionka" do którego zdarzenia OnClick przypisujemy kod: if FontDialog1.Execute then begin Image.Canvas.Font:=FontDialog1.Font; end; Jak widać w kodzie źródłowym własności Font komponentu Image przypisujemy wartość czcionki ustawioną w oknie dialogowym FontDialog. Oczywiście możemy czcionke ustawiać bardziej szczegułowo np zmieniając jedynie jej rozmiar: Image.Canvas.Font.Size:=FontDialog1.Font.Size; Jeśli już zmieniłeś funkcję odpowiedzialną za rysowanie koperty to teraz możesz przetestować komponent. Jeśli nie to wróć do początku artykułu i zastąp kod rysowania koperty w programie kodem znajdującym się na początku artykułu. ColorDialog. W tym artykule jeszcze pokażę zastosowanie komponentu ColorDialog, w naszym programie będzie miał on dwie funkcje - zmiana koloru tła, oraz zmiana koloru ołówka(rysowania). Oczywiscie jak za każdym razem na poczatku kładziemy komponent ColorDialog na formie. Następnie dodajemy dwa przyciski:"Ołówek" oraz "Pędzel". Ołówek (ang. Pen - odpowiedzialny za rysowanie) natomiast pędzel (ang. Brush odpowiedzialny za malowanie tła). W zdarzeniu OnClick przycisku "Ołówek" dodajemy kod: if ColorDialog1.Execute then begin Image.Canvas.Pen.Color:=ColorDialog1.Color; end; Natomiast dla przycisku "Pędzel" dodajemy: if ColorDialog1.Execute then begin Image.Canvas.Brush.Color:=ColorDialog1.Color; end; Myślę że większych problemów ze zrozumieniem dwóch ostatnich fragmentów nie powinno być. Jeśli się mylę to piszcie a postaram się wyjaśnić. Kolejne komponenty postaram się opisać w następnym artykule. Mam nadzieje że komuś moje wypociny się przydadzą!
|