| Autor | Beitrag | 
| Tobinator Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Mo 01.02.10 22:14 
 
Hi,
 ich hoffe ich bin hier richtig... Ich habe folgendes Problem:
 ich möchte mir einen kleinen Reportdesigner bauen, auf dem ich unter anderem mehrere Objekte auswählen und verschieben kann. Ich kann schon mehrere Objekte auswählen und einzelne verschieben. Mit mehreren klappts aber noch nicht. Ich hab mit auf einem Testformular mal zwei Buttons hingepackt und wollte die beide verschieben.
 Mein Versuch:
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 
 | procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
 begin
 ReleaseCapture;
 if ssleft in Shift then
 begin
 Button1.Perform(WM_SYSCOMMAND,$F012,0);
 Button2.Perform(WM_SYSCOMMAND,$F012,0);
 end;
 end;
 |  Da wird aber nur der erste Button verschoben. Kann mir einer helfen??
 PS: Ich will am ende nicht nur einfach Button2 um die selbe Differenz wie Button1 verschieben, weil ich ja schon wärend dem Verschieben sehen möchte, wo die Objete landen.
 Danke schonmal   | 
|  | 
| Tobinator  Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Di 02.02.10 21:09 
 | 
|  | 
| Niko S. 
          Beiträge: 566
 Erhaltene Danke: 10
 
 Win 7, Ubuntu
 Lazarus, Turbo Delphi, Delphu 7 PE
 
 | 
Verfasst: Di 02.02.10 21:18 
 
Setz den Zweiten button doch selbst.
 Sprich wenn der 1 Button verschoben ist, setzt die die Position des Zweiten in der relation zum ersten.
 Ist genau wie das, was du willst, nur dass se nicht beide gleichzeitig sichtbar verschoben werden ;x
 //Edit
 Crosspost: Delphipraxis | 
|  | 
| Tobinator  Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Di 02.02.10 21:47 
 
sry wegen dem Crosspost, aber ich war ziemlich verzweifelt und es hat ja keiner geantwortet.
 Das nachträgliche verschieben wollte ich ja ebend nicht, ich wills ja schon wärend dem Verschieben sehen. Genau das ist ja mein Problem. Und alles selber machen (also left und top nach jedem mousemove neu setzen) wollte ich nach möglichkeit auch nicht. Gibts da keine andere möglichkeit, also von mir auch auch ohne Perform aber nach möglichkeit auhc nicht zu aufwendig.
 | 
|  | 
| Xentar 
          Beiträge: 2077
 Erhaltene Danke: 2
 
 Win XP
 Delphi 5 Ent., Delphi 2007 Prof
 
 | 
Verfasst: Di 02.02.10 21:56 
 
_________________ PROGRAMMER: A device for converting coffee into software.
 | 
|  | 
| elundril 
          Beiträge: 3747
 Erhaltene Danke: 123
 
 Windows Vista, Ubuntu
 Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
 
 | 
Verfasst: Di 02.02.10 22:07 
 
crossposts sind nix schlimmes aber bitte halt immer dazuschreiben. Dann rätseln nicht jeweils 800 personen untereinander. sonder 2400 miteinander    wennst verstehst was ich meine.
 lg elundril_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
 | 
|  | 
| Tobinator  Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Di 02.02.10 22:10 
 
Ok, ich schreibs in den andern auch mal dazu | 
|  | 
| Niko S. 
          Beiträge: 566
 Erhaltene Danke: 10
 
 Win 7, Ubuntu
 Lazarus, Turbo Delphi, Delphu 7 PE
 
 | 
Verfasst: Di 02.02.10 22:57 
 
Naja der eine sagte ja bereits, es funktioniert nicht mit perform, da es erst los lässt, wenn du los lässt.
Also musst du das wohl selbst programmieren.
 Einfach beim "MouseDown" die derzeitigen x/y pos merken und dann beim move die differenz abziehen und die buttons verschieben. Beim mouse up lässt du das ganze dann wieder los.
 | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: So 14.02.10 18:31 
 
Hier findest du zu dem Thema einiges:
delphi.about.com/lib...weekly/aa102505a.htm Da gehts jetzt nur um einzelne Komponenten, aber das lässt sich ja ausweiten. Idee: Beim Markieren eine Liste der Komponenten erstellen und dann alle in der Liste verschieben, egal welche angefasst wurde beim Verschieben. | 
|  |