Elemente ablegen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Mit Steuerelementen arbeiten - Index

Gibt ein Steuerelement an, dass ein gezogenes Element angenommen werden kann, muss es dieses Element auch verarbeiten können, wenn es tatsächlich abgelegt wird. Um mit den abgelegten Objekten Aktionen durchzuführen, ordnen Sie dem Ereignis OnDragDrop des Steuerelements eine Behandlungsroutine zu. Dieses Drag&Drop-Ereignis gibt wie OnDragOver die Quelle des gezogenen Objekts und die Koordinaten des Mauszeigers an. Mithilfe der Koordinaten kann der Pfad des gezogenen Elements überwacht werden, um beispielsweise die Farbe der Komponenten zu ändern, wenn ein Element abgelegt wird.

Im folgenden VCL-Beispiel nimmt eine Verzeichnisstrukturansicht die aus einer Dateiliste gezogenen Elemente entgegen und verschiebt diese in das Verzeichnis, auf dem sie abgelegt werden:



 procedure TFMForm.DirectoryOutline1DragDrop(Sender, Source: TObject; X,
   Y: Integer);
 begin
   if Source is TFileListBox then
     with DirectoryOutline1 do
       ConfirmChange('Move', FileListBox1.FileName, Items[GetItem(X, Y)].FullPath);
 end;



 void __fastcall TForm1::TreeView1DragDrop(TObject *Sender, TObject *Source,
   if (Source->InheritsFrom(__classid(TFileListBox)))
   {
     TTreeNode *pNode = TreeView1->GetNodeAt(X,Y); // pNode ist Ablegeziel
     AnsiString NewFile = pNode->Text + AnsiString("//") +
       ExtractFileName(FileListBox1->FileName); // Dateiname für das Ablegeziel erstellen
     MoveFileEx(FileListBox1->FileName.c_str(), NewFile.c_str(),
       MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED); // Datei verlagern
   }
 }



Siehe auch