AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStatusbar, OnDrawPanel und TMainMenu

Ein Thema von sECuRE · begonnen am 4. Mai 2003 · letzter Beitrag vom 9. Sep 2003
Antwort Antwort
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#1

TStatusbar, OnDrawPanel und TMainMenu

  Alt 4. Mai 2003, 14:31
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:
Delphi-Quellcode:
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;
  Mit Zitat antworten Zitat
Blechwolf

Registriert seit: 9. Sep 2003
Ort: Aachen
126 Beiträge
 
Delphi 7 Professional
 
#2

Re: TStatusbar, OnDrawPanel und TMainMenu

  Alt 9. Sep 2003, 14:17
Salut,

ich habe ein ganz ähnliches Problem.
Bei mir zeigt der am Anfang, wenn ich das Programm starte, irgendwelche wilden Icons auf den drei Panels in der Ecke an. Erst wenn ich das Programm mal in den Hintergrund verschiebe, oder die Größe des Fensters ändere kommen die drei Buttons, die ich haben will.
In der OnResize Funktion der Statusbar wird die Größe der Panels dynamisch angepaßt (siehe Topic weiß nich welches) und dann mit StatusBar.Refresh neu aktualisiert. Sonst behalte ich immer meine komischen symbole.
Ein StatusBar.Refresh in der Oncreate, OnShow, OnActivate des Forms hat keinen Effekt.


EDIT:
Um die Verwirrung perfekt zu machen:
Wenn ich den Panel[0], der bisher auf psText steht, auf psOwnerDraw setze, malt der mit ganz brav den Button dahin, den ich haben will...

EDV: Ende Der Vernunft

Grüße

Blechwolf
Ein Schiff im Hafen ist sicher. Aber dafür werden Schiffe nicht gebaut. (engl. Sprichwort)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz