Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Flackern bei onshow vehindern

  Alt 26. Apr 2007, 21: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
  Mit Zitat antworten Zitat