Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2011
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
supongamos 3 grids en sus ventanas "apiladas" (tile), tome la que quiero usar como "maestra" y veo que tiene 5 filas, las demás tienen igual 5 o menos, pero los campos son exactamente las mismas.

El comportamiento a reproducir es que si movemos el scrollbar o bien la celda con el foco en nuestro grid maestro, esto se replique en los demás grids, obviamente los que tengan menos filas o solo una quedarían en el mismo lugar, la idea principal es que en todo momento todas las grids tengan seleccionado el mismo campo ya que su estructura es idéntica.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #2  
Antiguo 23-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por AzidRain Ver Mensaje
supongamos 3 grids en sus ventanas "apiladas" (tile), tome la que quiero usar como "maestra" y veo que tiene 5 filas, las demás tienen igual 5 o menos, pero los campos son exactamente las mismas.

El comportamiento a reproducir es que si movemos el scrollbar o bien la celda con el foco en nuestro grid maestro, esto se replique en los demás grids, obviamente los que tengan menos filas o solo una quedarían en el mismo lugar, la idea principal es que en todo momento todas las grids tengan seleccionado el mismo campo ya que su estructura es idéntica.
Hola AzidRain.

Hice este código que creo que en líneas generales hace lo que buscas.

MDIForm:
Código Delphi [-]
...
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus,
  Unit2; // form DBGrid emisor (maestro)

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
     procedure GridChange(Sender: TObject; Valor: string);
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses Unit3, Unit4; // forms con DBGrids receptores

procedure TForm1.FormShow(Sender: TObject);
begin
  with TForm2.Create(Self) do
    GridOnChange:= GridChange;
  TileMode:= tbVertical;
  Tile;
end;

procedure TForm1.GridChange(Sender: TObject; Valor: string);
begin
  Form3.DBGrid1.DataSource.DataSet.Locate('Campo',Valor,[]);
  Form4.DBGrid1.DataSource.DataSet.Locate('Campo',Valor,[]);
  // demas forms si los hay
end;
...

MDIChild emisor (maestro):
Código Delphi [-]
...
type
  TGridChangeEvent = procedure(Sender: TObject; Valor: string) of object;
  TForm2 = class(TForm)
    DataSet: TTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    procedure DataSetAfterScroll(DataSet: TDataSet);
  private
    FGridChange: TGridChangeEvent;
  public
    property GridOnChange: TGridChangeEvent read FGridChange write FGridChange;
  end;

var
  Form2: TForm2;

implementation {$R *.dfm}

procedure TForm2.DataSetAfterScroll(DataSet: TDataSet);
begin
  if Assigned(FGridChange) then
    FGridChange(Self,DataSet.FieldByName('Campo').AsString);
end;
...
Es decir el MDIForm es el encargado de posicionar los DBGrids receptores cuando es disparado el evento TGridChangeEvent en el form que contiene el DBGrid 'maestro' (Form2 en el ejemplo).

Espero te ayude o al menos te hacerque alguna idea...

Un saludo.

Edito: (El tercer y cuarto MDIChilds están en creación automática para simplificar el ejemplo)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-12-2011 a las 13:28:43. Razón: agregar comentario
Responder Con Cita
Respuesta



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
como sincronizar 2 DBLookupComboBox JerS Varios 4 12-04-2011 04:49:08
Cómo sincronizar Query y tabla David Conexión con bases de datos 2 13-07-2006 11:18:50
Grids.pas Pook Varios 3 05-05-2006 13:11:13
String Grids naker OOP 4 02-09-2004 07:12:46
Grids... superhopi Conexión con bases de datos 3 17-08-2004 16:22:41


La franja horaria es GMT +2. Ahora son las 18:24:57.


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