drag and drop in aussicht ?

Für Fragen rund um die Ide und zum Debugger
Antworten
khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

drag and drop in aussicht ?

Beitrag von khh »

Hallo zusammen,
also wenn ich das jetzt richtig verstanden habe, ist drag and drop, so wie es Delphi kann, mit Lazarus _nicht_ möglich :-(.
Weiss jemand ob das in absehbarer Zeit geplant ist, oder eher nicht?

danke Gruss KH

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Wie kommst du darauf, dass es das nicht kann?
Bzw. was meinst du genau?

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo,
mh ich war der Meinung das gelesen zu haben.
Wenn ich falsch liege solls mir Recht sein.
Gibts irgendwo ein Beispiel?
Gruss KH

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Ich weiss immer noch nicht genau, welche Sorte du meinst.
Wenn du das File-Dragging von z.B. Windows Explorer oder Konqueror etc meinst, gibt's das Ereignis OnDropFiles der TForm.

Wenn du von Komponente zu Kompon. ziehen willst, dann mach im Target
DragMode auf dmAutomatic und dann z.B. Sowas (alles Events) um von Panel auf Form zu droppen:

Code: Alles auswählen

.....
type
  TTextDragObject = class(TDragControlObject)
  public
    Data: String;
  end;
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure FormDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure Panel1EndDrag(Sender, Target: TObject; X, Y: Integer);
    procedure Panel1StartDrag(Sender: TObject; var DragObject: TDragObject);
  private
    { private declarations }
    FDragObject: TTextDragObject;
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1; 
 
implementation
 
{ TForm1 }
 
procedure TForm1.Panel1StartDrag(Sender: TObject; var DragObject: TDragObject);
begin
  FDragObject:=TTextDragObject.Create(self);
  FDragObject.Data:='Mal sehen'+TimeToStr(Now);
  DragObject:=FDragObject;
end;
 
procedure TForm1.Panel1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
  if Assigned(FDragObject) then FreeAndNil(FDragObject);
end;
 
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  Caption:=TTextDragObject(Source).Data;
end;
 
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept:=True;
end;

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo.
von Componente zu Componente ist das was ich möchte.
Ich danke dir.

Gruss KH

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Kleiner Tipp: Vieles Was für Delphi gilt kannst du mit einer gewissen Vorsicht auch auf Lazarus anwenden.
Am besten suchst du jew. mal im Web danach.
Da finden sich Artikel wie dieser:
http://www.blong.com/Conferences/BorCon ... p/4114.htm" onclick="window.open(this.href);return false;

Antworten