Ver Mensaje Individual
  #4  
Antiguo 25-05-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.286
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si activas el modo Automático de Drag&Drop en ambos componentes, sólo debes obtener el texto que quieres "arrastrar" (este es el paso más complicado) y luego configurar los componentes para que acepten funcionen con el Drag&Drop automático.
Como hablamos de diferentes formularios, puedes usar alguna propiedad para apoyarte en el proceso.

Como he dicho el más complejo es obtener el texto que estás "arrastrando" a partir de las coordenadas del ratón (en un DGBrid); Para eso puedes utilizar un procedimiento como este:

Código Delphi [-]
type
  THackGrid = class(TDBGrid);

...

function TForm1.GetDBGridText(AGrid:TDBGrid; X, Y: Integer): string;
var
  Cell: TGridCoord;
  ActRec: Integer;
begin
  // Por defecto vacío
  Result := string.Empty;
  // coordenados del Grid (fila/columna) a partir del ratón
  Cell := AGrid.MouseCoord(X, Y);
  // ajustar, segun si hay el indicador
  if dgIndicator in AGrid.Options then
    Dec(Cell.X);
  // Ajustar segun si hay títulos
  if dgTitles in AGrid.Options then
    Dec(Cell.Y);
  // Si está activado... seguimos.
  if THackGrid(AGrid).DataLink.Active and (Cell.X >= 0) and (Cell.Y >= 0) then begin
    ActRec := THackGrid(AGrid).DataLink.ActiveRecord;
    try
      // Obtener el dato del dataset
      THackGrid(AGrid).DataLink.ActiveRecord := Cell.Y;
      Result := AGrid.Columns[Cell.X].Field.AsString;
    finally
      THackGrid(AGrid).DataLink.ActiveRecord := ActRec;
    end;
  end;
end;

A partir de ahí es utilizar una propiedad para pasar ese TEXTO al segundo formulario, y configurar ambos componentes con el Drag&Drop automático.
En este ejemplo te lo muestro con cualquier texto, pero podrías hacer que para cualquier columna, te devuelva por ejemplo, siempre el código de empleado (si te interesa).



Te adjunto el ejemplo con el código completo y lo subo al FTP:
http://terawiki.clubdelphi.com/Delph...DropDBGrid.zip
Archivos Adjuntos
Tipo de Archivo: zip DragDropDBGrid.zip (91,9 KB, 4 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita