|
||||||
|
||||||
|
Capitolo 2Figura
Selezionando una delle 4 forme, la figura cambia di conseguenza in base alla selezione. Selezionando o deselezionando trasparente, la figura mostra il colore selezionato, oppure mostra il colore dello sfondo. Infine, cambiando il colore selezionato, la figura cambia di colore, se non è selezionato trasparente. Il primo componente presente in alto a sinistra nella form è un RadioGroup
rappresentato dall'icona Il secondo componente sotto il RadioGroup è un CheckBox, ovvero
un componente che può possedere i due stati di Vero o di Falso,
a seconda che sia o meno selezionato. (In realtà c'è un 3º stato
possibile di cui non parleremo ora). Il componente è rappresentato
dall'icona Il terzo componente è un ComboBox, rappresentato dall'icona Il quarto e ultimo componente rappresentato dall'icona N.B. Assegnare sempre ad un oggetto Brush prima il colore (Color) e dopo lo stile (Style), poiché l'assegnamento del colore dopo lo stile fa perdere il valore precedentemente assegnato allo stile. Per esempio se si imposta Style a bsClear, il successivo assegnamento di un qualunque valore di colore a Color riporta il valore di Style a bsSolid. Passiamo alla procedura, che è la stessa per tutti i 3 oggetti: RadioGroupForma, CheckBoxTrasparente e ComboBoxColore. Selezioniamo con un click del mouse l'oggetto RadioGroupForma e portiamo in primo piano la linguetta Events dell'Object inspector. Clicchiamo due volte con il mouse nella casella vuota a destra dell'evento OnClick: viene generata automaticamente la procedura RadioGroupFormaClick. Poiché il nome non ci piace (infatti la procedura dovrà essere associata anche agli altri oggetti), modifichiamo manualmente il nome nell'Object inspector (non nel listato del programma!) in CambiaProprieta (non CambiaProprietà: i caratteri accentati non sono ammessi nei nomi) e diamo Invio; subito il nome della procedura nel listato si modifica in CambiaProprieta. Selezioniamo con un click del mouse l'oggetto CheckBoxTrasparente e impostiamo il suo evento OnClick a CambiaProprieta, usando il menu a tendina del ComboBox a destra di OnClick. Infine, selezioniamo con un click del mouse l'oggetto ComboBoxColore e impostiamo il suo evento OnChange (o OnClick, di fatto è lo stesso) a CambiaProprieta, usando il menu a tendina del ComboBox a destra del nome dell'evento. Ora spostiamoci nel listato e scriviamo la procedura CambiaProprieta. procedure TFormFigura.CambiaProprieta(Sender: TObject);
begin
case RadioGroupForma.ItemIndex of
0: ShapeDisegno.Shape:=stSquare;
1: ShapeDisegno.Shape:=stRectangle;
2: ShapeDisegno.Shape:=stCircle;
3: ShapeDisegno.Shape:=stEllipse;
end;
case ComboBoxColore.ItemIndex of
0: ShapeDisegno.Brush.Color:=clWhite;
1: ShapeDisegno.Brush.Color:=clBlack;
2: ShapeDisegno.Brush.Color:=clRed;
3: ShapeDisegno.Brush.Color:=clYellow;
4: ShapeDisegno.Brush.Color:=clGreen;
5: ShapeDisegno.Brush.Color:=clAqua;
6: ShapeDisegno.Brush.Color:=clBlue;
7: ShapeDisegno.Brush.Color:=clPurple;
end;
if CheckBoxTrasparente.Checked then
ShapeDisegno.Brush.Style:=bsClear
else
ShapeDisegno.Brush.Style:=bsSolid;
end;
Osserviamo l'uso della nuova istruzione Pascal case of, che è algoritmicamente equivalente ad una sequenza di if then else, come si vede qui di seguito:
Nella sintassi, l'ultima istruzione else è facoltativa e può essere omessa se non serve. L'elenco completo dei valori che possono assumere le proprietà Color e Style di Brush può essere visto premendo il tasto funzione F1, con la proprietà selezionata nell'Object inspector, e quindi è lasciata al lettore. Come già detto, vedremo in dettaglio le caratteristiche degli oggetti grafici Pen, Brush e Font, nel prossimo capitolo.
|
|||||
|
||||||