| Autor |
Beitrag |
aM0xACiLLiN
      
Beiträge: 64
|
Verfasst: So 04.05.03 17:10
hi!
hab in meiner TStatusBar icons angezeigt, mit dem "bekannten code" (canvas usw). jetz passiert es allerdings, dass manchmal einfach item sauf meinem TMainMenu auf die Panels 1,2 und 3 gezeichnet werden, wenn ich den task wechsle wieso passiert das und wie kann ich das verhindern?
der code für die icons ist:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin if (Statusbar = StatusBar1) then begin if (Panel.DisplayName = 'Network') then begin Imagelist1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,0); StatusBar.Canvas.Textout(Rect.Left+20, Rect.top, spanel[0]); end else if (Panel.DisplayName = 'Nickname') then begin Imagelist1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,1); StatusBar.Canvas.Textout(Rect.Left+20, Rect.top, spanel[1]); end else if (Panel.DisplayName = 'Lag') then begin Imagelist1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,2); StatusBar.Canvas.Textout(Rect.Left+20, Rect.top, spanel[2]); end else if (Panel.DisplayName = 'Status') then begin Imagelist1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,3); StatusBar.Canvas.Textout(Rect.Left+20, Rect.top, spanel[3]); end; end; end; |
danke schonmal 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 04.05.03 19:22
| aM0xACiLLiN hat folgendes geschrieben: |
hab in meiner TStatusBar icons angezeigt, mit dem "bekannten code" (canvas usw).
|
Bekannt? Na ich verstehe unter bekannt was anderes.
| Zitat: |
jetz passiert es allerdings, dass manchmal einfach item sauf meinem TMainMenu auf die Panels 1,2 und 3 gezeichnet werden, wenn ich den task wechsle wieso passiert das und wie kann ich das verhindern?
|
Weil deien "bekannte" Methode nicht nur schlecht ist, sondern sogar überflüssig.
Die Statusbar kennt die Nachricht: SB_SETICON.
|
|
aM0xACiLLiN 
      
Beiträge: 64
|
Verfasst: So 04.05.03 19:34
aha.. naja, "deine" methode hat bei mir nich gefunzt, keine ahnung wieso. wenn du bitte nochmal den sourcecode so posten könntest, das man bloß filename und statusbar-name ersetzen muss.. danke
die styles müssen ja nich townerdraw sein für deine methode,oder?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 06.05.03 05:26
Puh mal so aus dem Kopf:
Quelltext 1: 2: 3: 4: 5:
| var hIcon: Cardinal; begin hIcon := LoadImage(hInstance, 'c:\Test\MeinIcon.ico', IMAGE_ICON, 12, 12, LR_DEFAULTCOLOR or LR_LOADFROMFILE); SendMessage(Statusbar1.Handle, SB_SETICON, 0 { 1. Panel }, hIcon); |
|
|
|