Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - PageControl --> TabSheetCaption
OsCor - Mo 06.02.12 17:32
Titel: PageControl --> TabSheetCaption
Hallo!
D2007
die User meiner Anwendung sollen per Änderung der Caption-Eigenschaft eines speziellen Tabs (fett/farbig) auf ein im Hintergrund auftretendes Ereignis aufmerksam gemacht werden.
Das klappt bei mir aber nur, wenn dieses Ereignis vor dem Start der Anwendung schon statt gefunden hat.
Ich weiß nämlich nicht, wie ich zwischendurch das Ereignis OnDrawTab auslösen und damit meine Caption ändern kann. Bei einem Wechsel des aktiven Tabsheets wird das Ereignis scheinbar nicht ausgelöst. Nur beim Programmstart und wenn man explizit auf den Reiter drückt.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin if (TabIndex=6) and (vf.Count > 0) then begin Control.Canvas.FillRect(Rect); Control.Canvas.Font.Style := [fsBold]; Control.Canvas.Font.Color := clBlue; end else if (TabIndex=6) and (vf.Count = 0) then begin Control.Canvas.FillRect(Rect); Control.Canvas.Font.Style := []; Control.Canvas.Font.Color := clBlack; end; Control.Canvas.TextOut(rect.Left +4, rect.Top+4,TPageControl(Control).Pages[TabIndex].Caption); end; |
Hat jemand eine Idee oder kann mir vom Schlauch runterhelfen?
Oswald
jaenicke - Mo 06.02.12 17:42
Funktioniert <DeinPageControl>.Invalidate nicht?
OsCor - Mo 06.02.12 18:04
Ich versuche gerade, in der Hilfe Auskunft darüber zu erhalten, was Invalidate genau tut, finde aber nichts.
jaenicke - Mo 06.02.12 18:29
Invalidate benachrichtigt Windows darüber, dass das Control (oder ein Bereich) neu gezeichnet werden muss. Es macht daher den Inhalt "ungültig". ;-)
OsCor - Di 07.02.12 17:18
So. Endlich bin ich dazu gekommen, dieses Invalidate auszuprobieren: Es klappt! Hurra!
Natürlich gibt es auch noch andere Möglichkeiten, die Alarmierung eines Users zu bewerkstelligen. Aber wenn man eine Möglichkeit mal als ultimatives Mittelding zwischen Erschrecken und bloßem Anstupsen betrachtet, mag man nur ungern davon lassen :)
Ganz nebenbei habe ich noch einiges über das Hilfesystem gelernt. Leider fehlt mir zu einer ausgedehnten Safari darin die Zeit - und die braucht man alleine schon, um das Hilfesystem überhaupt zu verstehen.
Vielen Dank, Sebastian!
Oswald
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!