Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: In HintWindowClass eigenes Form verwenden

  Alt 25. Sep 2023, 16:34
Das mit dem HintData ist aber der Weg, den Windows da vorgibt. Dafür braucht man dann auch keine globalen Variablen o.ä.. Wenn der Hint angezeigt werden soll, werden über das HitInfo-Konstrukt die Daten übergeben, die die HintWindow-Klasse (bzw. die gerade erzeugt Instanz) zum Zeichnen benötigt.

Das lässt sich natürlich auch in eigene (oder fremde) Controls auslagern, so dass man nicht immer das Application-Objekt dafür heranziehen muss. Das geht dann aber afaik nicht direkt mit TForm.

Ich hab z.B. für meinen Player neulich die Hints im VirtualStringTrees ein wenig erweitert. Der VST bietet da ja ein solides Grundgerüst, um das Hintfenster komplett selbst zu malen.

Da läuft das im Prinzip so, dass in procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW; des VirtualStringTree die HintWindow-Klasse bestimmt wird (eben die vom VST definierte zum Selbermalen, nicht die Standard-Klasse), und dann das HintData-Konstrukt mit allen Infos gefüllt wird, die hinterher im Paint nützlich sein können - u.a. der Tree , der den Hint anzeigen soll, und dazu Infos zum Knoten, Spalte etc. pp.
Im Paint des HintWindow wird dann im Wesentlichen HintData.Tree.OnDrawHint(...) aufgerufen, so dass die Anwendung sich in dem Eventhandler um das Zeichnen des Hints kümmern kann - inkl. aller Daten, Bitmaps, sonstwas, die an dem Knoten hängen, der im HintData verknüpft ist.

Alternativ könnte man in dem OnDrawHint-Event einer eigenen Komponente natürlich auch diverse Var-Parameter mitgeben (u.a. ein Bitmap?) welche dann von der Paint-Methode des HintWindow verarbeitet und passend an eine vordefinierte Stelle gezeichnet werden.

Oder eben im OnShowHint der Application alles mitgeben, was du zum Zeichnen brauchst - das könnte ja auch ein fertiges Bitmap sein (inkl. Hinttext und allem), das das HintWindow nur noch auf sein Canvas kopiert.
Miniaturansicht angehängter Grafiken
hint.png  
The angels have the phone box.
  Mit Zitat antworten Zitat