Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
Delphi 10.4 Sydney
|
Re: Flackern bei onshow vehindern
26. Apr 2007, 22:40
Hallo,
[/delphi]
Pseudo-Code
type
TForm1
// das sind Form-Variablen
iCurLeft: Integer;
iCurTop: Integer;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
i:integer;
iLeft, iTop: Integer;
bPosChanged: Boolean;
begin
bPosChanged:= Fklse;
for i:=0 to max-1 do
if (x>PosArray[i,1]) and (x<PosArray[i,3]) and (y>PosArray[i,2]) and (y<PosArray[i,4]) then begin
hintid:=PosArray[i,0];
if not Form4.Showing=true then
Form4.Show;
iLeft:= X+200;
iTop:= Y+150;
// 3 ist ein Beispiel
// Diff mussu mal selber coden
// iLeft kann groesser werden (Maus nach rechts) oder kleiner)
// Diff:= Abs(iLeft,iCurLeft)
// habe gerade keine Lust mehr zum guggern
if Diff(iLeft, iCurLeft)>3 then
begin
iCurLeft:= iLeft;
bPosChanged:= True;
end;
// mit Top das gleiche
und dann
if bPosChanged then
begin
Form.Left:= iCurLeft;
Form.Top := ...
end;
end;
[delphi]
Damit wird das Neupositionieren nur dann gemacht,
wenn die Maus sich ein bissel mehr bewegt hat.
Heiko
insert hoika into bett
delete hoika from arbeitsplatz
Heiko
|