Hallo!
Ich habe eine PaintBox mit verschiedenen gezeichneten Objekten drauf.
Nun möchte ich, wenn der Benutzer mit der Maus auf ein solches Objekt zeigt, dass ein Hilfetext (gelbes Schildchen) mit einer Beschreibung angezeigt wird.
Das funktioniert auch mit meinem Code.
Das erste Problem besteht darin, dass, wenn ich die Maus wieder bewege, und ich sie dann auf eine freie Fläche bewege, wieder der selbe Text dargestellt wird. Dort soll aber nix kommen, da da ja kein Objekt ist.
Da sind wir gleich beim zweiten Problem: Ich verwende das Ereignis OnMouseMove der PaintBox. Solange ich mich mit der Muas auf der PaintBox befinde, wird nur ein Hilfe Text dargestellt. Ich möchte aber, dass er beim wandern über die Objekte jeweils einen neuen anderen Hilfetext darstellt.
Vielleicht könnt ihr mir helfen...
Hier mein bisheriger Code:
Delphi-Quellcode:
procedure PaintBox1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var mausPos: TPoint;
zma, i: Integer;
begin
mausPos.X := x-hRand; //Mausposition
mausPos.Y := y-vRand;
zma := length(zimmerObj); //anzahl der zu durchlaufenden Objekte
for i := 0 to zma-1 do
begin
if zimmerObj[i].clicked(mausPos) = true then //gibt true zurück wenn mausPos in zimmerObj
begin
PaintBox1.Hint := 'Zimmer ' + zimmerObj[i].zimNum + ': wieder frei am ' +
FormatDateTime('dd.mm.yyyy', zimmerObj[i].buchung.abreise);
PaintBox1.ShowHint := true;
end
else
begin
//?????? //in diesem Fall soll nix angezeigt werden
end;
end;
end;
edit: Schreibfehler korrigiert!