Przenoszenie Image za pomoca myszki...

0

Chcialbym sie dowiedziec czy isnieje mozliwosc przeniesienie jakiegos obrazka z jednego miesjca na drugie po kliknieciu i przytrzymaniu tego obrazka...?
Chcialbym aby w momencie przenoszenia obrazek byl widoczny...--take care,

Wodzu

0

W FAQ chyba jest opisane "przenoszenie formy...." spróbuj to przenieść na imaga.

0

public
przeciaganie : boolean;
x2,y2 : integer;

teraz w implementation

on mousedown (w image)
begin
przeciaganie := true;
x2 :=x;
y2 :=y;
end;

onmnousemove (w image)
begin
if przeciaganie = true then
begin

if x &lt x2 then *w lewo
begin
image1.left := image1.left- 3;
end;

if x &gt x2 then *w prawo
begin
image1.left := image1.left + 3;
end;

if y &lt y2 then *chyba w dół
begin
image1.top := image1.top - 3;
end;

if y &gt y2 then *chyba w gore
begin
image1.top := image1.top + 3;
end;

end;//koniec drag

end;

onmouseup (w image)
begin
przeciaganie := false;
end;

Piszę z pamieci bo jestem w szkole. nie wiem czy zadziala

0

Image jest na formie.

Ustaw DragMode Image'u na dkAutomatic (jesli dkManual, musisz sam oprogramowac OnMouseDown z metoda BeginDrag).

a w formie:
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if Source is Timage then
begin
Accept:=True;
(Source as TImage).Left:=x;
(Source as TImage).Top:=y;
end
else
Accept:=false
end;

procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if Source is TImage then
begin
(Source as Timage).Left:=x;
(Source as TImage).Top:=y;
end;
end;

To jeszcze wymaga poprawek (czasem np wyswietla zly kursor),a le mi sie nie chce

Aha, Form1.DoubleBuffered:=True pomaga na wyglad (jak zwykle)
--Pawel

Delphi6

1 użytkowników online, w tym zalogowanych: 0, gości: 1