Control-unabhängigen Hint anzeigen
- 
					
					
					
					
 Hallo, ich habe eine von TWinControlabgeleitete Komponente, auf der ich in Abhängigkeit der Mausposition einen Hint anzeigen möchte. Leider unterstütztTWinControlvon sich aus keine Hints, sodass ich mich selbst darum kümmern muss.
 Gibt es eine Möglichkeit, mit VCL Standardmitteln einen Hint anzuzeigen?
 Ich möchte jetzt nichts mit Timern und nicht-modalen Fenster basteln.Edit: 
 Ich habe Folgendes schon probiert, leider ohne ErfolgApplication->CancelHint(); Application->Hint = "Test-Text"; Application->ShowHint = true; Application->ActivateHint( Mouse->CursorPos );
 
- 
					
					
					
					
 Du könntest mal Application->OnShowHint ausprobieren. In der Ereignismethode teste ich dann immer mittels TControl *pCtrl = HintInfo.HintControl; if(pCtrl->ClassNameIs("TMyWinControl")) // <-- hier dein Controlnamen eintragen { if(IsPointInRect(HintInfo.CursorPos, HintRect)) { // ... } }
 
- 
					
					
					
					
 Danke für deine Antwort, Th69, dein Beispiel hat mich veranlasst, noch mal in die Hilfe zu gucken und dabei die Lösung zu finden. Ich bin (manchmal) so doof, dass mich die Schweine beißen... Nur weil der Codeinspector keinen Vorschlag für Hint gemacht hat und ich nicht die vollständige Hilfe für TWinControlgelesen habe war ich der Meinung, dassTWinControlkeine Hints unterstützt. Wenn man aber in der Hilfe zuTWinControlganz nach unten scrollt steht da unter den __published EigenschaftenHint.
 Lange Rede, kurzer Sinn: Hab´s mit Bordmitteln hinbekommen.
 
- 
					
					
					
					
 Ja, das wollte ich dir auch erst schreiben (also daß Hint schon in der Basisklasse TControl deklariert ist). 
 Jedoch hast du jaDocShoe schrieb: ... auf der ich in Abhängigkeit der Mausposition einen Hint anzeigen möchte. geschrieben, so daß ich davon ausgegangen bin, daß du noch bestimmte Berechnungen anstellen möchtest, ob und wie der Hint-Text angezeigt wird (und dann würde dir ja der statische Hint-Text nicht reichen). 
 
- 
					
					
					
					
 Epilog: Th69 schrieb: if(pCtrl->ClassNameIs("TMyWinControl")) // <-- hier dein Controlnamen eintragenif (pCtrl->ClassType() == __classid(TMyWinControl)) // <-- hier dein Control eintragenOder noch besser: if (dynamic_cast<TMyWinControl*> (pCtrl) != 0) // <-- hier dein Control eintragen
 
- 
					
					
					
					
 Th69 schrieb: Ja, das wollte ich dir auch erst schreiben (also daß Hint schon in der Basisklasse TControl deklariert ist). 
 Jedoch hast du jaDocShoe schrieb: ... auf der ich in Abhängigkeit der Mausposition einen Hint anzeigen möchte. geschrieben, so daß ich davon ausgegangen bin, daß du noch bestimmte Berechnungen anstellen möchtest, ob und wie der Hint-Text angezeigt wird (und dann würde dir ja der statische Hint-Text nicht reichen). Ja, das ist auch so richtig. Ich habe einen Callback auf dem OnMouseMove Event, in dem ich die Hinteigenschaften in Abhängigkeit der Mausposition einstelle: void __fastcall TMyForm::OnMouseMove( TObject* Sender, TShiftState ShiftState, int X, int Y ) { ShowHint = check_something( X,Y ); if( ShowHint ) Hint = "Criteria met!"; else Hint = ""; }
 
 
			
			
		