Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Arrastrar desde un StringGrid para luego borrar (https://www.clubdelphi.com/foros/showthread.php?t=83140)

Carmelo Cash 16-05-2013 04:48:28

Arrastrar desde un StringGrid para luego borrar
 
1 Archivos Adjunto(s)
Hola Foro.

Estoy trabajando con delphi 7 y StringGrid.

Empecé este tema en

http://www.clubdelphi.com/foros/showthread.php?t=82634

pero creo que para esta consulta debe iniciar un nuevo hilo.


Esta aplicación que adjunto permite ordenar los items de un StringGrid en forma manual,

También permite eliminar una fila del StrinGrid.

En este EJEMPLO lo logro seleccionando la fila en cuestión y lUego hago Click en el botón [ < ]

Lo que necesito hacer es poder eliminar una fila pero arrastrandola hacia otro sector, en este ejemplo un tmemo.

Cómo la selección se hace en el evento "onMouseDown" del stringgrid, el memo no reconoce el evento "onMouseUp".


Bueno, esta es la ayuda que necesito.

<desde ya muchas gracias

Neftali [Germán.Estévez] 16-05-2013 11:22:01

1 Archivos Adjunto(s)
¿Y si utilizas los métodos estandard de drag and drop?

Una modificaciones para arrastrar al memo (he desactivado las otras).

Carmelo Cash 21-05-2013 05:55:53

Gracias Neftali. Pero no encuentro que se modificó del código porque no se arrastra nada. ¿?. :confused:

Carmelo Cash 21-05-2013 06:24:28

Cita:

Empezado por Carmelo Cash (Mensaje 460828)
Gracias Neftali. Pero no encuentro que se modificó del código porque no se arrastra nada. ¿?. :confused:

Lo que ví es que se en el evento onMouseDown del StringGrid, coloco StringGrid1.enable:=false. Entonces si funciona el OnMouseUp del Memo2

ecfisa 21-05-2013 07:30:18

1 Archivos Adjunto(s)
Hola Carmelo Cash.

Cita:

Lo que necesito hacer es poder eliminar una fila pero arrastrandola hacia otro sector, en este ejemplo un tmemo.
Para hacer mas claro el ejemplo, quité casi todo el código de tu adjunto; agregando el necesario para hacer lo que solicitas arriba.

Saludos. :)

Neftali [Germán.Estévez] 21-05-2013 11:12:04

Cita:

Empezado por Carmelo Cash (Mensaje 460828)
Pero no encuentro que se modificó del código porque no se arrastra nada. ¿?. :confused:

Cita:

Empezado por Carmelo Cash (Mensaje 460829)
Lo que ví es que se en el evento onMouseDown del StringGrid, coloco StringGrid1.enable:=false. Entonces si funciona el OnMouseUp del Memo2

Tienes razón. Acabo de descargar el ejemplo que he subido y está incompleto. :(:(
No se que hice, pero so subí la versión correcta. A ver si luego puedo recuperar el ejemplo final y lo vuelvo a subir.

Carmelo Cash 23-05-2013 21:08:05

Casi Listo
 
1 Archivos Adjunto(s)
Gracias ecfisa, Neftali.

Adjunto el modelo terminado tiene una sola cosa que no me gusta, es que para arrastrar y eliminar un registro del StringGrid hay que tener la tecla Ctrl apretada.

Me gutaría poder eliminar esta restricción para poder utiliar este programa con un monitor táctil sin utilizar mouse y/o teclado.

Este programa que adjunto permite mover los registros y arrastrarlos al sector de "Eliminados".

Desde ya muchas gracias por todo.^\||/

ecfisa 24-05-2013 00:35:16

Cita:

Empezado por Carmelo Cash (Mensaje 461129)
Me gutaría poder eliminar esta restricción para poder utiliar este programa con un monitor táctil sin utilizar mouse y/o teclado.

Hola Carmelo.

Del código correspondiente al evento OnMouseDown quita o comentá las siguientes líneas:
Código Delphi [-]
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  with TStringGrid(Sender) do
  begin
  //  if ssCtrl in Shift then
  //  begin
      MouseToCell(X, Y, FCol, FRow);
      BeginDrag(True);
 //   end;
  end;
end;

Saludos. :)

Carmelo Cash 25-05-2013 01:18:07

Hola ecfisa, gracias por tu ayuda, pero si hago tu propuesta en el programa de ejemplo se deshabilita la opción de Mover los registros.

ecfisa 25-05-2013 09:18:18

Cita:

Empezado por Carmelo Cash (Mensaje 461215)
Hola ecfisa, gracias por tu ayuda, pero si hago tu propuesta en el programa de ejemplo se deshabilita la opción de Mover los registros.

Hola CarmeloCash.

Si estas hablando sobre el código del adjunto del mensaje #5 y no modificaste nada más que las tres líneas que te mencioné, sencillamente no es posible. El único comportamiento que se cambia al anular o eliminar esas líneas, es que se contemple o nó la presión de la tecla Ctrl cuando un botón del mouse es presionado.

Ahora si es sobre otro codigo, tendrías que adjuntarlo (o ponerlo en un mensaje) para que lo podamos revisar.

Saludos. :)

Carmelo Cash 16-07-2013 04:57:47

Me faltan 5 para el peso.
 
1 Archivos Adjunto(s)
Hola foro.
Retomo ete tema que dejé en el freezzer un par de meses. el 99,9% ya está listo.

Les recuerdo que el objetivo era poder ordenar manualmente con el mouse una lista. también poder eliminar items de la lista arrastrando la fila seleccionada hacia fuera de la grilla.

Esto ya se logró y se puede eliminar sin apretar "Ctrl" que era lo último pendiente.

Ahora bien...

Me gustaría que cuando se va a eliminar un item, en el cursor del mouse (debajo de la flecha) , se muestre el nombre de la persona que se va a eliminar.

o sea algo como esto:
//Screen.Cursor.text:= StringGrid1.Hint; (por supuesto esto no anda)

Bueno. Espero se entienda lo que necesito.

Adjunto el proyecto como va quedando.

Gracias por su atención.


La franja horaria es GMT +2. Ahora son las 11:55:59.

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