Verweis: | DragMode DragKind |
Uses: | StdCtrls |
Eingabe: | Ein Cursor-Typ |
Ausgabe: | Der gewählte Cursor-Typ in der Zielkomponente |
Funktion: | Wählt den Cursor für die Zielkomponente aus. |
Beispiel 1
Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie drei TLabel und eine TListBox auf die Form. Wenn sie nicht wissen wie man mehrere Komponenten des gleichen Typs auf die Form bringt, dann schauen sie bitte hier. Erstellen Sie zusätzlich ein OnActivate-Ereignis für die Form. Erstellen Sie zusätzlich ein DragDrop und ein DragOver Ereignis für die ListBox1.
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: integer;
State: TDragState; var Accept: boolean);
begin
//Alle Label erlauben
Accept := Source is Tlabel;
end;
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: integer);
begin
//Alle Label Beschriftungen aufnehmen
if Source is TLabel then
ListBox1.Items.Append(TLabel(Source).Caption);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
//Alle Beteiligten Komponenten auf Automatik
Label1.DragMode := dmAutomatic;
Label2.DragMode := dmAutomatic;
Label3.DragMode := dmAutomatic;
Listbox1.DragMode := dmAutomatic;
//Das Cursor Aussehen im Moment der Ablage
Label1.DragCursor := crHourGlass;
Label2.DragCursor := crSizeAll;
Label3.DragCursor := crHandPoint;
//Beschriftung
Label1.Caption := 'Bei Ablage Sanduhr.';
Label2.Caption := 'Bei Ablage Pfeile.';
Label3.Caption := 'Bei Ablage Hand.';
end;
Dieses Beispiel ist so ähnlich wie das Beispiel unter DragMode. Das DragMode-Beispiel sollten Sie sich vorher anschauen damit Sie dieses Beispiel besser verstehen. Mit der Festlegung des DragCursor können Sie das Aussehen des Mauszeigers in der Zielkomponente beim ablegen bestimmen. So habe ich hier die drei Label mit verschiedenen Cursor-Typen belegt. Interessant dürfte hier mal eine andere Vorgehensweise des Erlaubten sein ( Accept ). Hier erlauben wird allen Objekten des Typs TLabel, das Ablegen in der Liste. Dies erreichen wir mit dem Is-Befehl.