PDA

Ver la Versión Completa : Drag & Drop Tedit?


Carlos Arevalo
06-11-2003, 21:06:01
Como hago para hacer drag & drop del contenido de un tedit a otro.

Gracias compañeros.

roman
06-11-2003, 21:40:43
Lo veo un poco difícil ya que el edit no está diseñado para ello.

Puedes intentar esto:

Pones Edit1.DragMode en dmAutomatic y en los eventos OnDragOver y OnDragDrop de Edit2 pones:


procedure TForm1.Edit2DragOver(...);
begin
Accept := true;
end;

procedure TForm1.Edit2DragDrop(...);
begin
if (Sender = Edit2) and (Source = Edit1) then
TEdit(Sender).SelText := TEdit(Source).SelText;
end;


Desafortunadamente esto inhabilita el uso del ratón en Edit1 para cualquier otra cosa que no sea arrastrar el contenido.

// Saludos

Ruben_Cu
07-11-2003, 02:43:43
roman comentó:

Desafortunadamente esto inhabilita el uso del ratón en Edit1 para cualquier otra cosa que no sea arrastrar el contenido.

// Saludos

Esta claro lo que dice roman, de cierta manera es así, pero si se requiere usar y no deshabilitar el uso del ratón en el edit una forma de hacerlo sería auxiliandonos de la teclas, por ejemplo agregando esto a lo ya escrito:procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Shift=[ssShift] then
Edit1.BeginDrag(false,-1);
end;
En este caso debemos pasar la propiedad DragMode a dmManual y entonces con la tecla shift presionada podríamos llamar al método BeginDrag y comenzar entonces el arrastre hasta el Edit2.
mientras no usemos la tecla el edit1 tendrá un comportamiento normal.
En cuanto a los edit creo que es mejor usar la propiedad Text que la propiedad SelText esta última puede tener algún problema ya que para que funcione bien requiere que el texto del edit1 este seleccionado y que el edit2 este vacío.
Saludos

Carlos Arevalo
08-11-2003, 17:02:57
Gracias muchachos por la asistencia