Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Soltar y arrastrar no aceptar (https://www.clubdelphi.com/foros/showthread.php?t=87980)

emeritos 23-03-2015 10:02:34

arrastar y soltar DBGrild a un DBEdit
 
Hola dilferos.

Necesito Arrantar la fila seleccionada de un DBGrild para despues soltarla en un DBEdit y actuar en consecuencia, es decir, tratar esa informacion como yo quiera.

En definitiva un arrastar y soltar desde un DBGrild a un DBEdit, y no se como funciona eso aunque he mirado por este foro, no me aclara nada.

Neftali [Germán.Estévez] 23-03-2015 12:12:11

Si no recuerdo mal Zarko ha tratado este tema en varios artúculos en su web.
Revisa esta página, aunque creo que hay alguna más relacionada, a ver si consigues lo que necesitas. No es exactamente con un Edit, pero el funcionamiento debe ser casi idéntico.

emeritos 23-03-2015 13:41:45

Muchas gracias me puede valer.

emeritos 27-03-2015 13:32:57

Soltar y arrastrar no aceptar
 
Hola dilferos,

Estoy haciendo un cuadro de un campeonato y necesito por ejemplo en semifinales pasar un ganador a la final, es de un TDBedit a otro. Lo he realizado asi:
Código Delphi [-]
procedure Tfrmcombates.DBEdit3Click(Sender: TObject);
begin
     DBEdit3.BeginDrag(true);
end;
procedure Tfrmcombates.DBEdit21DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
     Accept := Source IS TDBEdit
end;

procedure Tfrmcombates.DBEdit21DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
    // lo que sea;
end;

Esto me funciona. Pero mi pregunta es la siguiente. ¿ Como tengo otro TDBedit en la final del cuadro de semifinales de abajo, no quiero aceptar si el arrastar y soltar viene desde arriba y viceversa? No se si me he explicado bien.
Lo he intentado asi: Pero no me funciona: vamos que me sale error en el NOT
Código Delphi [-]
procedure Tfrmcombates.DBEdit3Click(Sender: TObject);
begin
     DBEdit3.BeginDrag(true);
end;

procedure Tfrmcombates.DBEdit21DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
    If MQcuaparti2['numero'] = 1
       Then Accept := Source IS TDBEdit
       Else Accept := Source NOT IS TDBEdit;
end;

procedure Tfrmcombates.DBEdit21DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
    // lo que sea;    
end;

Muchas gracias.

ecfisa 27-03-2015 15:05:47

Hola emeritos.

La verdad es que no entiendo el planteo, pero mirando el código, creo que deseas que se acepte cuando Source es un TDBEdit y el valor de MQcuaparti2['numero'] sea igual a 1.

Eso sería:
Código Delphi [-]
procedure Tfrmcombates.DBEdit21DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
   Accept:= Source.ClassNameIs('TDBEdit') and (MQcuaparti2['numero'] = 1); 
end;

Saludos :)


La franja horaria es GMT +2. Ahora son las 10:15:51.

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