Autor Beitrag
aM0xACiLLiN
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64



BeitragVerfasst: 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:
ausblenden 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64



BeitragVerfasst: 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



BeitragVerfasst: Di 06.05.03 05:26 
Puh mal so aus dem Kopf:
ausblenden 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);