Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [drag'n'drop] panels auf images legen/anpassen (https://www.delphipraxis.net/31218-%5Bdragndrop%5D-panels-auf-images-legen-anpassen.html)

Fluffy 6. Okt 2004 09:24


[drag'n'drop] panels auf images legen/anpassen
 
hi!

ich erstelle panels zur laufzeit und sollte diese dann in verschiedene images legen. mein drag and drop-code ist bisher folgender:
Delphi-Quellcode:
procedure TForm1.OnMD(Sender: TObject; Button: TMouseButton; // onmousedown
      Shift: TShiftState; X, Y: Integer);
begin
  if not Drag then begin
    Drag:=True;
    Kx:=X;
    Ky:=Y;
  end;
end;

procedure TForm1.onMU(Sender: TObject; Button: TMouseButton; // onmouseup
      Shift: TShiftState; X, Y: Integer);
begin
  if Drag then
    Drag:=False;
end;

procedure TForm1.OnMM(Sender: TObject; Shift: TShiftState; X,Y: Integer); // onmousemove
begin
  if Drag then begin
    TControl(Sender).Left:=Min(Max( 10,TControl(Sender).Left+X-Kx),
                               Form1.ClientWidth -TControl(Sender).Width -10);
    TControl(Sender).Top :=Min(Max(200,TControl(Sender).Top +Y-Ky),
                               Form1.ClientHeight-TControl(Sender).Height-30);
  end;
end;
das drag and drop der panels funktioniert also bis jetzt, nun muss ich noch die panels "ausrichten", also wenn man ein panel über ein image zieht, dann soll es z.b. 5 pixel vom oberen und linken rand entfernt sein. also so dass es immer im image zentriert ist.
wie finde ich heraus, ob das panel überhaupt über einem image ist?

greetz
fluffy

ps: programmiere gerade mein erstes kleines projekt über drag and drop, deshalb könnte es zuweilen sein, dass man :wall: macht... ihr wisst schon :mrgreen:

Fluffy 6. Okt 2004 09:48

Re: [drag'n'drop] panels auf images legen/anpassen
 
achja, die images sind in einem zweidimensionalen array angeordnet:
Delphi-Quellcode:
image:array[0..25,0..14] of TImage;
und ich komm nicht weiter... schon seit zwei tagen :gruebel:

Fluffy 6. Okt 2004 11:06

Re: [drag'n'drop] panels auf images legen/anpassen
 
okay, habs rausgefunden :mrgreen:
das ist immer so komisch, wenn man eine frage erst mal formuliert hat und danach drüber nachdenkt, kommt einem plötzlich eine mögliche antwort in den sinn ^^

ich hab jetzt in diesem fall einfach das onmousemove-ereignis modifiziert, indem ich mir die koordinaten von form1 gemerkt habe und dann (weil die images schön angeordnet sind) einfach die koordinaten verändert, so dass die panels zentriert erscheinen.

aber keine sorge, meine fragen sind noch nicht zu ende :mrgreen:

greetz
fluffy


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz