"Klaus Dewald" schrieb:
> zunächst einmal Danke für den Hinweis. Im Prinzip funktioniert das Event.
> Es wird zumindest gefeuert. Leider jedoch bei jeder noch so kleinen
> Mausbewegung. Dies hat zur Folge das der Hint nicht angezeigt wird, da er
> immer wieder durch das Event überschrieben wird. Ich habe das so gemacht:
OnMouseMove ist schon der richtige Event für so etwas. Du darfst den
TToolTip nur nicht im OnMouseMove erzeugen, sondern in OnFormCreate. Dann
kannst du ihn auch im OnFormDestroy wieder sauber entfernen.
Verlagere das
Edit135ToolTip := TToolTip.Create(Self);
ins OnFormCreate
(oder muss dass TToolTip.Create(suiEdit135) heißen?)
> If (X > 0) and (X < suiEdit135.Width) then
> If (Y > 0) and (Y < suiEdit135.Height) then
Wozu das? MouseMove wird eh nur gefeuert, wenn sich die Maus über dem
Editfeld befindet.
Dein OnMouseMove reduziert sich dann zu:
procedure TMainForm.suiEdit135MouseMove(Sender: TObject; Shift:
TShiftState; X,
Y: Integer);
begin
If Length(Trim(suiEdit135.Text)) > 40 then
begin
Edit135ToolTip.Text := Trim(suiEdit135.Text);
Edit135ToolTip.ShowBalloonTip;
end;
end;
Und nicht vergessen in OnFormDestroy:
Edit135ToolTip.Free;
Getestet mit deiner Klasse TToolTip aus
http://newsgroups.derkeiler.com/Arch.../msg00048.html
(Was Google so alles findet...)
Gruß
Burkhard Schneider