PDA

Ver la Versión Completa : Activar form endbgrid en renglon


eldonfsr
06-10-2011, 04:06:25
Hola saludos a todos tengo aplicacion pequeña con 3 tablas, tengo la necesida de hacer una captura type mestro detalle para la una notaremision mas el catalogo de productos es muy extenso para desplegarlo en un dbloockcombobox asi que se me ocurrio poner un buttoen edit y llamarlo al momento de la captuar en la celda hats aqui todo bien el problema es que cuando doy click en el botton y activo una forma para seleccione o buscar en articulo la forma me la despliega en la posicion de deseño y yo quiero que se despliegue debajo del renglon donde estoy capturando en el dbgrid alguna idea o otra opcion que pueda solvetar esto.

gracias.
saludos a todos.

roman
06-10-2011, 04:30:41
Sólamente tienes que ajustar las propiedades Left y Top del formulario para colocarlo donde quieras.

// Saludos

eldonfsr
07-10-2011, 05:30:19
Bueno Roma es una buena idea pero el problema es como saber la posicion del renglon en la pantalla para pasar ese valor a Top de la nueva ventana.

DBGParts.CellRect(Column.Index+1,SQLQPartArt.RecNo+1);

me trae el cuadro de la column del Dbgird.

gracias, saludos.

ecfisa
07-10-2011, 09:00:47
Hola.

Algo que se me ocurrió es:

type
TDBGridExt = class(TDBGrid);

procedure PosicionarForm(AGrid: TDBGrid; AFormClass: TFormClass);
var
i,L: Integer;
P: TPoint;
begin
with TDBGridExt(AGrid) do
begin
L:= ColWidths[0];
for i:= 1 to Col-1 do L:= L + ColWidths[i];
P.X:= L + 4; // + 4 por que me gusta más... :p
P.Y:= RowHeights[0] + Row * DefaultRowHeight + 4;
P:= ClientToScreen(P);
with AFormClass.Create(Application) do
try
Left:= P.X;
Top:= P.Y;
ShowModal;
finally
Free;
end;
end;
end;


Llamada:

PosicionarForm(DBGrid1, TForm2);

Pero si hay una mejor manera de hacerlo, sin dudas que román la conocerá. :)

Un saludo.

eldonfsr
16-10-2011, 10:14:03
Mil Gracias amigo le batalle algo por las declaraciones y en donde ponerlas ya que como lo tengo es algo diferente pero despues de todo pude arreglarlo, faltan algunos detalles pero hay los voy corrigiendo o agregandoselos lo mas importante ya esta... gracas mil gracias....


saludos.
fernando