Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #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: 19.478
Poder: 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
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ver estado de mi UPS santi33a Varios 3 08-10-2010 22:19:58
Estado Dataset vtdeleon Conexión con bases de datos 2 18-04-2007 02:14:45
problemas para averiguar el estado de la conexion jorch_yr Internet 4 28-05-2004 08:17:45
Estado de MSN jmselesan PHP 1 24-10-2003 15:02:38


La franja horaria es GMT +2. Ahora son las 08:36:03.


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
Copyright 1996-2007 Club Delphi