OnDragOver (Delphi)
Description
This code requires a list box and three labels, each with a different font and color. The DragMode property for each of the labels is dmAutomatic. You can select a label and drag it to a list box and drop it. When the label is dropped, the items in the list box assume the color and font of the dropped label.
Code
procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Items.Add('Not');
ListBox1.Items.Add('In');
ListBox1.Items.Add('Alphabetical');
ListBox1.Items.Add('Order');
end;
// This OnDragOver event handler allows the list box to
// accept a dropped label.
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := Source is TLabel;
end;
// This OnDragDrop event handler implements the drop behavior.
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if (Sender is TListBox) and (Source is TLabel) then
begin
with Sender as TListBox do
begin
Font := (Source as TLabel).Font;
Color := (Source as TLabel).Color;
DoubleBuffered := true;
Color := clWindow;
end;
end;
end;
Uses
- Vcl.Controls.TControl.OnDragOver ( fr | de | ja )
- Vcl.Controls.TControl.OnDragDrop ( fr | de | ja )
- Vcl.Controls.TWinControl.DoubleBuffered ( fr | de | ja )