PDA

Visualizza la versione completa : [Delphi] Disegnare sulla status bar


peste1
23-02-2005, 13:33
Ciao a tutti,
fino ad ora, per disegnare un'immagine presa da una ImageList e scrivere un testo in due differenti colori sulla StatusBar, ho utilizzato qs codice:



Immagini: TImageList;
Status: TStatusBar;

with Status.Canvas do
begin
FillRect(Rect);
Immagini.Draw(Status.Canvas, Rect.Left + 5, Rect.Top, 0);
TextOut(Rect.Left + Immagini.Width + 10, Rect.Top + 1, 'Lingua:');
Font.Color := clGreen;
TextOut(Rect.Left + Immagini.Width + 50, Rect.Top + 1, 'Italiano');
end;


Il problema Ŕ che gestivo un solo Panel con la proprietÓ psOwnerDraw e tutto funzionava. Ora ho bisogno di fare qs operazione di immagine + testo su due differenti pannelli della stessa StatusBar. Come potrei fare?

Come sempre... grazie!

alka
23-02-2005, 14:50
Forse non ho capito bene qual Ŕ il problema, ad ogni modo dovresti giÓ aver fatto uso dell'evento OnDrawPanel, il quale viene richiamato ogni volta che Ŕ necessario disegnare un pannello del controllo StatusBar.

Attraverso i parametri che ti vengono forniti dall'evento, dovrebbe risultare molto semplice tracciare quello che vuoi nell'area grafica corrispondente utilizzando i metodi del Canvas.

Hai giÓ consultato la Guida in linea?

Ciao! :ciauz:

AlbertoPicca
23-02-2005, 14:52
L'oggetto canvas cambia ogni volta che viene disegnata un'area della statusBar.
Quindi potresti implementare il codice nell'evento OnDrawPanel e utilizzare i parametri che vengono messi a disposizione nella procedura per verificare quale pannello stÓ per essere disegnato.

:ciauz:

peste1
23-02-2005, 15:38
Ottima idea ;)

Grazie a tutti e due!

Loading