![]() |
Drag_Drop-Beispiel
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen
Kann mir jemand weiterhelfen, wie ich beigefügtes Beispiel (angefügte Datei) lösen kann ? Ich bin totaler Anfänger was Drag n Drop - Programmierung betrifft. Vielleicht hat jemand schon an einem ähnlichen Beispiel gearbeitet. Für Eure Mithilfe danke ich Euch im voraus Gruss Spargeltarzan |
Re: Drag_Drop-Beispiel
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen
Ich hab mit einem ersten Einstieg begonnen, vielleicht können wir diesen Einstieg als Basis-Diskussion nehmen und daran weiterentwickeln: Meine Programm zum Verschieben von VCL's: (Sreenshot des Formulars beigefügt) unit MoveQuiz02; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Shellapi, DsgnBtns, mdMsgCmp, mdDrop, TxtRel; type TMain = class(TForm) Label1: TLabel; Panel1: TPanel; Label2: TLabel; Panel2: TPanel; Panel3: TPanel; TextRelief1: TTextRelief; TextRelief2: TTextRelief; TextRelief3: TTextRelief; TextRelief4: TTextRelief; TextRelief5: TTextRelief; Label3: TLabel; Label4: TLabel; Label5: TLabel; procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Label1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure Label1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } OLDX:Integer; OLDY:Integer; MOVE:BOOLEAN; public { Public-Deklarationen } end; var Main: TMain; implementation {$R *.DFM} procedure TMain.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Panel1.Perform(WM_LBUTTONUP,0,0); Panel1.Perform(WM_SysCommand,SC_MOVE+2,2); end; procedure TMain.Label1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If Button = MBLEFT then begin OLDX:=X; OLDY:=Y; MOVE:=TRUE; end; end; procedure TMain.Label1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); Var R:TRect; begin TControl(Sender).Cursor:=crdrag; if MOVE then begin //R:=TControl(sender).Boundsrect; //offsetrect(R,(X-OLDX),(Y-OLDY)); //TControl(sender).SetBounds(R.Left,R.Top,R.Right-R.Left,R.bottom-R.Top); //TControl(sender).SetBounds(TControl(sender).Left+X-OLDX,TControl(sender).Top+Y-OLDY, // TControl(sender).width,TControl(sender).height); TControl(sender).Left:=TControl(sender).Left+X-OLDX; TControl(sender).Top:=TControl(sender).Top+Y-OLDY; end; end; procedure TMain.FormCreate(Sender: TObject); begin MOVE:=FALSE; Panel2.OnMouseDown:=Label1MouseDown; Panel2.OnMouseMove:=Label1MouseMove; Panel2.OnMouseUp:=Label1MouseUp; end; procedure TMain.Label1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MOVE:=FALSE; TControl(Sender).Cursor:=crdefault; end; end. |
Re: Drag_Drop-Beispiel
Koenntest du bitte den Delphi-Code button benutzen damit dein Code sauber formatiert angezeigt wird?
Und wenns geht speichere deine Screenshots als PNG files ab dann sind die Ladezeiten fuer unsere Modemgaenger nicht so lange. Ueber 1MB is doch ziemlich heftig fuer n einfachen Screenshot. Danke! |
Re: Drag_Drop-Beispiel
Hallo
OK, ich werde die Screenshots in Zukunft komprimieren oder in einem anderen Format absenden. Ist das so gemeint mit Formattierter Delphi-Code? [unit MoveQuiz02; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Shellapi, DsgnBtns, mdMsgCmp, mdDrop, TxtRel; type TMain = class(TForm) Label1: TLabel; Panel1: TPanel; Label2: TLabel; Panel2: TPanel; Panel3: TPanel; TextRelief1: TTextRelief; TextRelief2: TTextRelief; TextRelief3: TTextRelief; TextRelief4: TTextRelief; TextRelief5: TTextRelief; Label3: TLabel; Label4: TLabel; Label5: TLabel; procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Label1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure Label1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } OLDX:Integer; OLDY:Integer; MOVE:BOOLEAN; public { Public-Deklarationen } end; var Main: TMain; implementation {$R *.DFM} procedure TMain.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Panel1.Perform(WM_LBUTTONUP,0,0); Panel1.Perform(WM_SysCommand,SC_MOVE+2,2); end; procedure TMain.Label1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If Button = MBLEFT then begin OLDX:=X; OLDY:=Y; MOVE:=TRUE; end; end; procedure TMain.Label1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); Var R:TRect; begin TControl(Sender).Cursor:=crdrag; if MOVE then begin //R:=TControl(sender).Boundsrect; //offsetrect(R,(X-OLDX),(Y-OLDY)); //TControl(sender).SetBounds(R.Left,R.Top,R.Right-R.Left,R.bottom-R.Top); //TControl(sender).SetBounds(TControl(sender).Left+X-OLDX,TControl(sender).Top+Y-OLDY, // TControl(sender).width,TControl(sender).height); TControl(sender).Left:=TControl(sender).Left+X-OLDX; TControl(sender).Top:=TControl(sender).Top+Y-OLDY; end; end; procedure TMain.FormCreate(Sender: TObject); begin MOVE:=FALSE; Panel2.OnMouseDown:=Label1MouseDown; Panel2.OnMouseMove:=Label1MouseMove; Panel2.OnMouseUp:=Label1MouseUp; end; procedure TMain.Label1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MOVE:=FALSE; TControl(Sender).Cursor:=crdefault; end; end. ] Gruss Spargeltarzan |
Re: Drag_Drop-Beispiel
Liste der Anhänge anzeigen (Anzahl: 1)
Nein eher so! Dabei den Button druecken, Code einfuegen und nochmals den Button druecken um den Tag zu schliessen.
Delphi-Quellcode:
Siehe Screenshot. Du brauchst die Bilder auch nicht komprimieren, einfach in Paint oder wo du das machst das Bild as jpg oder PNG speichern. Somit braucht man erst gar nichts wieder dekomprimieren und sieht das Bild sofort.
Code hier rein
Versuche als einfach mal mit Hilfe des Edit Buttons in deinen Post zu gehen und ein [ delphi ] und [ /delphi ] um deinen Code zu packen. Ohne die Leerstellen zwischen delphi und den Klammern. |
Re: Drag_Drop-Beispiel
An Mackhack
Danke für die Einführung in formattierter Quellcode. Hab's jetzt kappiert (Schreiner sind manchmal nicht so schnell). Gruss Spargeltarzan |
Re: Drag_Drop-Beispiel
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz