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 & Drop über Frames (https://www.delphipraxis.net/106917-drag-drop-ueber-frames.html)

GreenHorn3600 18. Jan 2008 19:23


Drag & Drop über Frames
 
Hallo zussammen,

wie kann ich ein drag & drop realisieren, von einer listbox in einem frame auf ein ttreeview in einem formular?

wenn ich onOverDrag abfage, kennt er die listbox nicht... :-(

danke für euere hilfe ... :-)

semo 18. Jan 2008 21:33

Re: Drag & Drop über Frames
 
wo fragste du denn onOverDrag ab?

GreenHorn3600 19. Jan 2008 00:23

Re: Drag & Drop über Frames
 
@Marcus Hassmann, tja, im formular, im tTreeView, wo das Item hingezogen werden soll ... nur die Listbox, liegt halt in einem Frame.. und dort soll sie auch bleiben.. wird noch an etlichen anderen stellen verwendet...

omata 19. Jan 2008 00:31

Re: Drag & Drop über Frames
 
Das sollte kein Problem sein...

Delphi-Quellcode:
procedure TFrame.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  accept:=(Source is TListBox);
end;

procedure TFrame.TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer);
var ListBox:TListBox;
begin
  if Source is TListBox then begin
    ListBox:=TListBox(Source);
    showmessage(ListBox.Name);
  end;
end;
Gruss
Thorsten

GreenHorn3600 19. Jan 2008 00:37

Re: Drag & Drop über Frames
 
Zitat:

Zitat von omata
Das sollte kein Problem sein...

Delphi-Quellcode:
procedure form1.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  accept:=(Source is TListBox);
end;

procedure form1.TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer);
var ListBox:TListBox;
begin
  if Source is TListBox then begin
    ListBox:=TListBox(Source);
    showmessage(ListBox.Name);
  end;
end;
Gruss
Thorsten

das sagst du ...

nur hier:
Delphi-Quellcode:
procedure form1.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  accept:=(Source is TListBox); // <-- hier
end;
kommt leider nie true an :-(

die listbox liegt in frame, nicht das tTreeView...

omata 19. Jan 2008 00:52

Re: Drag & Drop über Frames
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wo die Elemente liegen ist dabei völlig egal.

Wird das Ereignis überhaupt ausgelöst? Hast du den DragMode auf Automatic gestellt?

Edit: ich habe mal ein Beispiel angehängt.

GreenHorn3600 19. Jan 2008 01:01

Re: Drag & Drop über Frames
 
Zitat:

Zitat von omata
Wo die Elemente liegen ist dabei völlig egal.

Wird das Ereignis überhaupt ausgelöst? Hast du den DragMode auf Automatic gestellt?

scheint nicht so zu sein, dass es egal ist. ja das event wird gefeuert.. aber manuell.. und im debugger wird es dann auch abgefragt. aber da kann ich setzen was ich will ob sender oder source, es wird kein tListbox erkannt.. obgleich diese den DragMode überhaupt auslöst... kann mir nur vorstellen, dass es daran liegt, dass die listbox in 'ner FRAME ist und das empfangende objekt (tTreeView) in einer Form, auf dem das Frame eingebettet ist... :-(

bitsetter 19. Jan 2008 08:20

Re: Drag & Drop über Frames
 
Dann lass dir doch mal zum Test den Namen des Objektes anzeigen.
Delphi-Quellcode:
procedure form1.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  ShowMessage(Source.ClassName);
end;

GreenHorn3600 19. Jan 2008 08:30

Re: Drag & Drop über Frames
 
Zitat:

Zitat von bitsetter
Dann lass dir doch mal zum Test den Namen des Objektes anzeigen.
Delphi-Quellcode:
procedure form1.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  ShowMessage(Source.ClassName);
end;

dank für den tipp. jetzt ist es klar, als klassenname wird der frame verwendet, nicht die listbox... dank und gruss Greeny


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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 by Thomas Breitkreuz