Przesuwanie formy... :/

0

Ergh! Nie wiem o co chodzi!! Chciałem dodać do swojego kodu funkcję przesuwania formy za pomocą myszy, jeżeli BorderStyle:=bsNone; Już wcześniej zastosowywałem tą funkcję, ale teraz jakoś przestało działać. Mam coś takiego:

var
  MD: boolean;
  P: TPoint;

procedure Tlcform.topMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  MD := True;
  P := Point(X, Y);
end;

procedure Tlcform.topMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if MD then 
  begin
    Left := Left + (X - P.X);
   Top := Top + (Y - P.Y);
  end;
end;

procedure Tlcform.topMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 MD := False;
end;

Niby powinno wszystko działać a program się nie uruchamia, debugger zatrzymuje się przy linijce

Top := Top + (Y - P.Y); 

i wypisuje tekst "Incopatible types". Co jeeest ludzie :( Co w tym wszystkim najśmieszniejsze? Identyczny kod wklepałem [wcześniej] do innego programu i działało bez problemu.. Help! [???]

0

Ja zamiast Top dałbym Form1.Top dla pewności.
Ale to tylko taka mała dygresja...

0

Niestety, nie pomogło :(

0

No nie wiem, mi to działą... Może masz w programie coś o nazwie Top i Left? I jeśli zmieniasz, to nie na Form1 jeden tylko na lcform oczywiście, bo może przegapiłeś...

0

Ych... [glowa] [glowa] [glowa] damn... chyba sobie okulary muszę dorobić :) Jeez.. taki głupi błąd... dzięki za pomoc! :)

[dopisane]

Błąd popełniłem przy dawaniu nazwy panelu na "top". Uch...

0

Temat juz był wiele razy. Jest łatwiejszy sposób...
OnMouseDown formy:

if Button = mbLeft then
begin
       ReleaseCapture;
       SendMessage(Handle, WM_NCLButtonDown, htCaption, 0);
end;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.