Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Arrastrar un Label sobre un edit (https://www.clubdelphi.com/foros/showthread.php?t=74922)

CarlosAlberto 18-07-2011 20:10:08

Arrastrar un Label sobre un edit
 
Estimados amigos del club: ¿cómo hago para colocar el texto de un componente label sobre un componente edit, arrastrándolo. Ejemplo: arrastro label1 sobre edit1 y el texto del label se copia en el edit.

Muchas gracias.
Carlos

Paulao 18-07-2011 20:18:00

Bueno, si lo que quieres es solo tener el caption del Label en su Edit, puede hacer asi:

Código Delphi [-]
Edit1.Text := Label1.Caption;

Caro 18-07-2011 20:49:24

Hola CarlosAlberto, debes utilizar los eventos OnDragDrop y OnDragOver de tu Edit y la propiedad DragMode de tus Labels en dmAutomatic.

Código Delphi [-]
procedure TDualListDlg.EditDragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  if (Sender is TEdit) and (Source is TLabel) then
    TEdit(Sender).Text := TLabel(Source).Caption;
end;
 
procedure TDualListDlg.EditDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
 Accept := (Source is TLabel);
end;

Saluditos

Neftali [Germán.Estévez] 19-07-2011 10:59:34

También puedes hacerlo con el DragMode manual, programando estos tres eventos:

Código Delphi [-]

procedure TForm1.Edit1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if (Source is TLabel) then begin
    Accept := True;
  end;
end;

procedure TForm1.Label1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
  if (Target is TEdit) then begin
    TEdit(Target).Text := TLabel(Sender).Caption;
  end;
end;

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TLabel(Sender).BeginDrag(True);
end;

Los de los Labels los asignas a todos los labels que quieras y los de los edits a todos los edits que quieras, y podrás arrastrar cualquier Label sobre cualquiera de los Edits.


CarlosAlberto 19-07-2011 21:25:03

Arrastrar y soltar un Label sobre un edit
 
Amigos del club: ¡muchas gracias!. Probé el código que me envió Neftali y resultó como lo esperaba.
Gracias a Caro y a Paulao.
Saludos.
Carlos Alberto


La franja horaria es GMT +2. Ahora son las 19:53:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi