Delphi-PRAXiS
Seite 1 von 3  1 23      

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&Drop (https://www.delphipraxis.net/1731-drag-drop.html)

nailor 19. Dez 2002 22:42


Drag&Drop
 
Bei Den RichEdits ist Drag&Drop ja schon eingebaut. Bei Memos nicht. Gibt es da irgendwas zu machen, oder muss ich wohl oder übel ein RichEdit nehmen???

Luckie 19. Dez 2002 23:20

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure WMDROPFILE (var msg: TMessage ); Message WM_DropFiles ;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses shellapi;

{$R *.dfm}

procedure TForm1.WMDROPFILE(var msg: TMessage);
var
  hDrop : Cardinal ;
  fName : array[0..MAX_PATH] of Char ;
begin
   hDrop := Msg.WParam ;
   fName := '' ;
   DragQueryFile(hDrop, 0, fName, MAX_PATH);
   Memo1.Lines.LoadFromFile(String(fName));
   DragFinish (hDrop);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle,True );
end;

nailor 20. Dez 2002 09:29

sorry, ich meinte: text aus dem memo markieren, mit der maus drüber und dann den text verschieben. nicht ne datei öffnen.

Luckie 20. Dez 2002 12:40

Mist 15 Minuten umsonst programmiert und im Internet zusammengesucht. Kannst du das nicht trotzdem irgendwie in dein Programm einbauen? :roll:

nailor 20. Dez 2002 13:06

Natürlich kann ich. Dann nehm ich das zum Öffnen von Dateien mit dazu. Und außerdem nehm ich jetzt doch RichEdits. Ist mir zu dumm, das mit Memos zu machen.

Eine Frage noch: Kann man irgendwie was machen in die Richtung, dass wenn man wenn man einen String auf einem Label droppt, er dann zu einem Richedit dazugefügt wird???;

Danke schonmal, für das mit Datei öffnen, und viel Spass beim meine-Fragen-beantworten! :wink: :wink: :wink:

nailor 20. Dez 2002 18:20

irgendwas in die richtung:

Delphi-Quellcode:
procedure Label1OnDrop(???);
begin
if (??? is Stirng) then
  memo.lines.append(???);
end;

Luckie 20. Dez 2002 18:23

Was soll den Auf das Label gezogen werden? Ich habe das jetzt so verstanden, dass das, was du auf das Label ziehst im Memo erscheinen soll. Aber was wird von wo auf das Label gezogen?

nailor 20. Dez 2002 18:32

Ich hab den Code jetzt getestet. Der klappt nicht richtig. Man kann zwar Dateien droppen, aber die werden dann nicht geöffnet.

Ausserdem nimmt mein Delphi
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure WMDROPFILE (var msg: TMessage ); Message WM_DropFiles ; [color=#ff0000]Das hier nicht an[/color]
  public
    { Public-Deklarationen }
  end;

Luckie 20. Dez 2002 18:32

Du brauchst: Label1 (Ziel), Label2 (Quelle) und ein Memo. Wenn du jetzt von Label2 nach Label1 ziehst, erscheint der Text von Label2 in Label1 und wird ins Memo eingefügt:
Delphi-Quellcode:
procedure TForm1.Label2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then Label2.BeginDrag(false);
end;

procedure TForm1.Label1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if Source is TLabel then Accept := true;
end;

procedure TForm1.Label1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  if Source is TLabel then
  begin
    Label1.Caption := Label2.Caption;
    Memo1.Lines.Add(Label2.Caption);
  end;
end;

Luckie 20. Dez 2002 18:35

Zitat:

Zitat von Nailor
Ich hab den Code jetzt getestet. Der klappt nicht richtig. Man kann zwar Dateien droppen, aber die werden dann nicht geöffnet.

Also jetzt doch wieder Dateien oder wie oder was oder wo? :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Seite 1 von 3  1 23      

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 by Thomas Breitkreuz