Οπτικός Προγραμματισμός Παράγεται από την κλάση TColorDialog. Επιτρέπει στον χρήστη την επιλογή χρώματος από τα βασικά χρώματα και τον καθορισμό ειδικών χρωμάτων (custom colors). Οταν πατηθεί το OK το χρώμα καταχωρείται στην ιδιότητα Color.
Οπτικός Προγραμματισμός Ιδιότητες (Properties) Color : (TColor) περιέχει το χρώμα που επέλεξε ή καθόρισε ο χρήστης. Είναι ένας αριθμός των 4 bytes ( FFFFFFFF). Τα δύο ψηφία μικρότερης σημασίας καθορίζουν το κόκκινο (000000FF= καθαρό κόκκινο). Τα επόμενα καθορίζουν το πράσινο (0000FF00 = μόνο πράσινο υψηλής φωτεινότητας) και τα δύο επόμενα το μπλέ. Τα δύο πρώτα καθορίζουν το ταίριασμα με χρώματα παλέτας. CustomColors : (TStrings*) πίνακας με τα καθοριζόμενα χρώματα της μορφής “ColorA=6B89A3”. 16 τέτοια μπορούν να καθοριστούν ColorA…ColorP. Options : επιλογές true/false για τον ColorDialog: cdFullOpen : ξεκινά τον διάλογο σε πλήρη ανάπτυξη. cdPreventFullOpen : δεν επιτρέπει τον καθορισμό χρωμάτων. cdShowHelp : προσθέτει ένα κουμπί Help στο διάλογο. cdSolidColor : οδηγεί τα Windows να επιλέξουν το κοντινότερο συμπαγές χρώμα.
Οπτικός Προγραμματισμός Ιδιότητες (Properties) Collate : (true/false) καθορίζει αν τα πολλαπλά αντίγραφα θα εκτυπωθούν ή Παράγεται από την κλάση TPrintDialog. Επιτρέπει στον χρήστη την επιλογή παραμέτρων εκτύπωσης, Εκτυπωτής, Αντίγραφα, Περιοχή Σελίδων κ.λ.π.
Οπτικός Προγραμματισμός Ιδιότητες (Properties) Copies : (int) αριθμός αντιγράφων. FromPage, To Page : (int) από σελίδα έως σελίδα MaxPage, MinPage : (int) όρια για την περιοχή σελίδων. PrintRange (prAllPages, prSelection, prPageNums) καθορίζει ποιό τμήμα του αρχείου θα εκτυπωθεί. PrintToFile : (true/false) καθορίζει αν θα γίνει εκτύπωση σε αρχείο ή στον εκτυπωτή. Options poPrintToFile : εμφανίζει το checkbox “Print To File” poDisablePrintToFile : κάνει γκρί το παραπάνω checkbox. poHelp : εμφανίζει κουμπί Help. poPageNums : εμφανίζει ένα radio group που επιτρέπει την επιλογή σελίδων για εκτύπωση ή όλων. poSelection : εμφανίζει ένα checkbox για εκτύπωση του επιλεγμένου κειμένου.
Οπτικός Προγραμματισμός Συμβάντα (Events) OnShow() : συμβαίνει όταν εμφανίζεται ο διάλογος. OnClose() : συμβαίνει όταν κλείνει ο διάλογος. Παράγεται από την κλάση TPrinterSetupDialog. Επιτρέπει στον χρήστη την επιλογή παραμέτρων εκτύπωσης : Εκτυπωτής, Ιδιότητες, Είδος Χαρτιού, Τροφοδότης, Προσανα- τολισμός σελίδας κ.λ.π. Διαφέρει ανάλογα με τον εκτυπωτή.
Οπτικός Προγραμματισμός Ιδιότητες (Properties) FindText : (AnsiString) το κείμενο προς αναζήτηση Position : (TPoint) οι συντ/νες της επάνω αριστερής γωνίας του διαλόγου Options : (TFindOptions) παράμετροι που αφορούν το Διάλογο Συμβάντα (Events) OnFind() : εδώ γράφουμε κώδικα για την υλοποίηση της αναζήτησης. OnShow() : συμβαίνει όταν εμφανίζεται ο διάλογος. OnClose() : συμβαίνει όταν κλείνει ο διάλογος. Παράγεται από την κλάση TFindDialog. Εμφανίζει ένα Modeless παράθυρο για εισαγωγή κειμένου προς αναζήτηση και options
Οπτικός Προγραμματισμός Ιδιότητες (Properties) FindText : (AnsiString) το κείμενο προς αναζήτηση ReplaceText : (AnsiString) το κείμενο για αντικατάσταση Position : (TPoint) οι συντ/νες της επάνω αριστερής γωνίας του διαλόγου Options : (TFindOptions) παράμετροι που αφορούν το Διάλογο Συμβάντα (Events) : OnFind(), OnReplace(), OnShow(), OnClose() : Παράγεται από την κλάση TReplaceDialog. Εμφανίζει ένα Modeless παράθυρο για εισαγωγή κειμένου προς αναζήτηση και αντικατάσταση καθώς και options
Οπτικός Προγραμματισμός Εφαρμογή απλού επεξεργαστή κειμένου με δυνατότητες Open, Save, SaveAs, Print μέσω διαλόγων. Ενσωμάτωση ενός Memo και ενός BitBtn(Close). Το File Menu έχει τις επιλογές (Open, Save, SaveAs, Print, Exit) Ενσωματώνουμε ένα OpenDialog, ένα SaveDialog και ένα PrintDialog.
Οπτικός Προγραμματισμός #include AnsiString fn=""; void __fastcall TForm1 ::Open1Click(TObject *Sender) {if (OpenDialog1->Execute()) { fn=OpenDialog1->FileName; Memo1->Lines->LoadFromFile(fn);}} void __fastcall TForm1::Save1Click(TObject *Sender) {if (fn.IsEmpty()) MessageBox(NULL,"No Filename","",MB_OK); else {Memo1->Lines->SaveToFile(fn);}} void __fastcall TForm1::Exit1Click(TObject *Sender) {Form1->Close();} void __fastcall TForm1::SaveAs1Click(TObject *Sender) {if (SaveDialog1->Execute()) { fn=SaveDialog1->FileName; Memo1->Lines->SaveToFile(fn);}} void __fastcall TForm1::Print1Click(TObject *Sender) {if (PrintDialog1->Execute()) { TPrinter* Prntr = Printer(); TRect r=Rect(200,200,Prntr->PageWidth- 200,Prntr->PageHeight-200); Prntr->BeginDoc(); Prntr->Canvas->TextRect(r, 200, 200, Memo1->Lines->Text); Prntr->EndDoc(); }}
Οπτικός Προγραμματισμός Προσθήκη δυνατότητας αναζήτησης. Προσθέτουμε ένα button με Caption “Find” και ένα FindDialog, καθώς και την επιλογή Find στο μενού Edit. Για να κάνει “Find next” ορίζουμε μία global μεταβλητή int search=0; Η αναζήτηση γίνεται με το OnFind event του διαλόγου και με χρήση της ιδιότητας Lines->Strings[i] του Memo.
Οπτικός Προγραμματισμός void __fastcall TForm1::Button1Click(TObject *Sender) { FindDialog1->Execute(); } void __fastcall TForm1::FindDialog1Find(TObject *Sender) { AnsiString f; int p,i,sum; bool found=false; f=FindDialog1->FindText; for (i=0,sum=0 ; i Lines->Count ; i++) { p=Memo1->Lines->Strings[i].Pos(f); if (p>0 && i>=search) // found {Memo1->SelStart = sum+p-1; Memo1->SelLength=f.Length(); Memo1->SetFocus(); search=i+1; found=true; break; } sum+=Memo1->Lines->Strings[i].Length() + 2; } if (!found) { MessageBox(NULL,«Δεν βρέθηκε","Find",MB_OK); search=0; } }