Οπτικός Προγραμματισμός Published Properties (Object inspector) Alignment : (taRightJustify, taLeftJustify) καθορίζει άν το Caption θα εμφανίζεται στα δεξιά ή στα αριστερά του κουμπιού. AllowGrayed : (bool) καθορίζει άν θα επιτρέπεται να υπάρχει ενδιάμεση κατάσταση με γκρί checkmark. Checked : (bool) καθορίζει ή επιστρέφει την κατάσταση του checkbox (true άν είναι επιλεγμένο και false αν δεν είναι ή είναι γκρί). State : (cbChecked, cbGrayed, cbUnchecked) καθοριζει την κατάσταση του checkbox. Events (TWinControl) : OnEnter, OnExit, OnKeyDown, OnKeyUp, OnKeyPress. Events (Tcontrol) : OnClick, OnContextPopup, OnDragDrop, OnDragOver, OnMouseDown, OnMouseMove, OnMouseUp, OnStartDrag, OnEndDrag, OnStartDock, OnEndDock. Κληρονομείται από την κλάση TCheckBox. Επιτρέπει την επιλογή ή όχι μίας ρύθμισης. Αποτελείται από ένα κουτί που επιλέγεται ή όχι και ένα κείμενο στα δεξιά.
Οπτικός Προγραμματισμός Published Properties (Object inspector) Alignment : (taRightJustify, taLeftJustify) καθορίζει άν το Caption θα εμφανίζεται στα δεξιά ή στα αριστερά του κουμπιού. Checked : (bool) καθορίζει ή επιστρέφει την κατάσταση του κουμπιού. (true όταν είναι επιλεγμένο και false διαφορετικά. Θέτοντάς το σε true όλα τα υπόλοιπα γίνονται false) Events (TWinControl) : OnEnter, OnExit, OnKeyDown, OnKeyUp, OnKeyPress. Events (Tcontrol) : OnClick, OnContextPopup, OnDragDrop, OnDragOver, OnMouseDown, OnMouseMove, OnMouseUp, OnStartDrag, OnEndDrag, OnStartDock, OnEndDock. Κληρονομείται από την κλάση TRadioButton. Επιτρέ- πει την επιλογή ή όχι μίας ρύθμισης από έναν αριθμό εναλλακτικών επιλογών. Αποτελείται από ένα κύκλο που επιλέγεται ή όχι και ένα κείμενο στα δεξιά.
Οπτικός Προγραμματισμός Published Properties (Object inspector) Columns : (int) αριθμός στηλών με επιλογές μέσα στο ListBox. MultiSelect και ExtendedSelect : (bool) καθορίζουν την πολλαπλή επιλογή αντικειμένων. Multi=false σημαίνει μόνο μία επιλογή. Με Multi=true, άν Ext=true τότε πολλαπλή επιλογή με Shift και Ctrl, ενώ αν Ext=false τότε πολλαπλή επιλογή με απλά κλίκ. IntegralHeight : (bool) όταν είναι true τότε το μέγεθος του παραθύρου είναι ακέραιο πολλαπλάσιο του ύψους της κάθε επιλογής. Items : (TStrings) αντικείμενο που περιέχει τις επιλογές και παρέχει ιδιότητες και μεθόδους για τον χειρισμό των επιλογών. Sorted : (bool) καθορίζει αν οι επιλογές θα εμφανιστούν ταξινομημένες. Style : (lbStandard, lbOwnerDrawFixed, lbOwnerDrawVariable) Κληρονομείται από την κλάση TListBox. Εμφανίζει μία λίστα με επιλογές και επιτρέπει την επιλογή κάποιας ή κάποιων από αυτές.
Οπτικός Προγραμματισμός Properties (συνέχεια) ItemIndex : (int) ο αύξων αριθμός του αντικειμένου που έχει επιλεγεί. Η πρώτη επιλογή έχει ItemIndex=0. Καμία επιλογή : ItemIndex=-1. SelCount : (int) ο αριθμός των επιλεγέντων αντικειμένων. Selected[i] : πίνακας bool για το άν κάθε επιλογή είναι επιλεγμένη ή όχι. Μέθοδοι (Methods): Clear() : σβήνει όλες τις επιλογές από το ListBox. ItemAtPos() : δίνεις συντ/νες του κέρσορα (ποντικιού) και επιστρέφει τον Α/Α του αντικειμένου στο οποίο αντιστοιχεί. Events (Συμβάντα) : OnDrawItem : για τον σχεδιασμό Owner Draw λιστών. OnMeasureItem :για καθορισμό ύψους αντικειμένου σε Owner Draw Var.
Οπτικός Προγραμματισμός Published Properties (Object inspector) DropDownCount : (int) αριθμός επιλογών στη drop-down λίστα. Items : (TStrings) αντικείμενο που περιέχει τις επιλογές και παρέχει ιδιότητες και μεθόδους για τον χειρισμό των επιλογών. MaxLength : (int) το μέγιστο μήκος string που μπορεί να καταχωρηθεί. Style : csDropDown=Αρχικά εμφανίζεται μόνο το Edit, και με το βελάκι εμφανίζεται η drop-down λίστα. Και επιλογή και καταχώρηση. csDropDownList=Όπως το προηγ. αλλά δεν επιτρέπεται καταχώρηση. csSimple=H λίστα εμφανίζεται μόνιμα. Και επιλογή και καταχώρηση. csOwnerDrawFixed, OwnerDrawVariable= όπως το csDropDown αλλά με προσθήκη εικονιδίων και γραφικών. Κληρονομείται από την κλάση TComboBox. Αποτελείται από ένα Edit, ένα βελάκι και μία λίστα επιλογών. Επιτρέπει τόσο πληκτρολόγηση όσο και επιλογή από τη λίστα.
Οπτικός Προγραμματισμός Properties (συνέχεια) CharCase : (ecLowerCase, ecNormal, ecUpperCase) μετατρέπει την καταχώρηση του χρήστη σε κεφαλαία ή μικρά. DroppedDown : (bool) επιστρέφει το εάν η drop-down λίστα φαίνεται. SelStart : (int) α/α χαρακτήρα που αρχίζει η επιλεγμένη περιοχή. SelLength : (int) μήκος επιλεγμένης περιοχής. Μέθοδοι (Methods) : Clear() : σβήνει το κείμενο από το Edit και τις επιλογές από τη λίστα. Focused() : επιστρέφει true ή false ανάλογα με το άν το ComboBox έχει το focus του χρήστη. SelectAll() : επιλέγει όλο το κείμενο που είναι καταχωρημένο στο Edit. Events (Συμβάντα) : OnChange, OnDrawItem, OnDropDown, OnMeasureItem
Οπτικός Προγραμματισμός Published Properties (Object inspector) Kind : (sbHorizontal, sbVertical) προσανατολισμός του ScrolBar. Max,Min : (int) μέγιστη και ελάχιστη τιμή της ιδιότητας Position. LargeChange : μέγεθος μεγάλης μετατόπισης. SmallChange : μέγεθος μικρής μετατόπισης. Position : (int) η τρέχουσα θέση του ScrollBar. Μέθοδοι (Methods) SetParams() : θέτει τα Min, Max και Position ταυτόχρονα. Events (Συμβάντα) OnChange : όταν αλλάζει το Position. OnScroll : για ρύθμιση της τιμής του Position κατά το Scrolling. Κληρονομείται από την κλάση TScrollBar. Προσδίδει scrolling σε components που δεν έχουν. Χρειάζεται προγραμματισμό.
Οπτικός Προγραμματισμός Εισάγουμε δύο RadioButtons, ένα CheckBox, ένα Edit, ένα ListBox, ένα ComboBox και δύο Buttons. Ανάλογα με την επιλογή του RadioButton ενεργοποιείται είτε ο συνδυασμός Edit-ListBox είτε το ComboBox. Το CheckBox καθορίζει άν το ListBox θα είναι πολλαπλών επιλογών ή όχι. Όταν επιλέγουμε κάτι από το ListBox, αυτόματα να εμφανίζεται και στο Edit Το κουμπί Close κλείνει την εφαρμογή. Το κουμπί Display εμφανίζει την τρέχουσα ενεργή επιλογή είτε από το Edit είτε από το ComboBox
Οπτικός Προγραμματισμός void __fastcall TForm1::RadioButton1Click(TObject *Sender) {if (RadioButton1->Checked) {Edit1->Enabled=true; ListBox1->Enabled=true; CheckBox1->Enabled=true; ComboBox1->Enabled=false;} else {Edit1->Enabled=false; ListBox1->Enabled=false; CheckBox1->Enabled=false; ComboBox1->Enabled=true;} } void __fastcall TForm1::Button1Click(TObject *Sender) {Form1->Close();} void __fastcall TForm1::ListBox1Click(TObject *Sender) {int i=ListBox1->ItemIndex; AnsiString s=ListBox1->Items->Strings[i]; Edit1->Text=s; } void __fastcall TForm1::CheckBox1Click(TObject *Sender) {if (CheckBox1->Checked) ListBox1-> MultiSelect=true; else ListBox1->MultiSelect=false;} void __fastcall TForm1::Button2Click(TObject *Sender) {AnsiString s; if (RadioButton1->Checked) s=Edit1->Text; else s=ComboBox1->Text; MessageBox(NULL,s.c_str(),"",MB_OK);}
Οπτικός Προγραμματισμός Εισάγουμε ένα EditBox, ένα ListBox, ένα Button και 3 ScrollBar. Ο χρήστης μπορεί με Drag&Drop να αλλάζει την σειρά των Items στο ListBox και να αντιγράφει Items στο EdtiBox. Τα 3 ScrollBars μετακινούν τα 3 Components οριζόντια πάνω στη φόρμα, ανεξάρτητα από το πλάτος της (ένα ScrollΒar για κάθε Component). Το κουμπί Close κλείνει την εφαρμογή.
Οπτικός Προγραμματισμός Μεταβλητές Global : bool ListBoxDrag = false; int ListBoxDragItem = -1; int Edit1Left; int ListBox1Left; int Button1Left; void __fastcall TForm1::ListBox1MouseDown (TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { int i = ListBox1-> ItemAtPos (TPoint(X,Y),true); if (i>=0 && i Items->Count) { ListBoxDrag=true; ListBoxDragItem=i; Screen->Cursor=crDrag; Application->ProcessMessages(); } }
Οπτικός Προγραμματισμός void __fastcall TForm1::ListBox1MouseUp (TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) {int i,clX,clY; AnsiString s,s2; clX=ListBox1->Left+X; clY=ListBox1->Top+Y; if (ListBoxDrag && X>=0 && Y>=0 && X Width && Y Height) {i=ListBox1-> ItemAtPos(TPoint(X,Y),false); ListBox1-> Items->Insert(i,ListBox1->Items-> Strings[ListBoxDragItem]); if (i Items-> Delete (ListBoxDragItem + 1 ); else ListBox1->Items-> Delete(ListBoxDragItem); } else if (ListBoxDrag && clX>=Edit1->Left && clX Left+Edit1->Width && clY>=Edit1->Top && clY Top+Edit1->Width ) { Edit1->Text=ListBox1->Items-> Strings[ListBoxDragItem]; } ListBoxDrag=false; ListBoxDragItem=-1; Screen->Cursor=crDefault; }