Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   establecer el left y el top de un laber en runtime (https://www.clubdelphi.com/foros/showthread.php?t=1361)

tango01 11-06-2003 22:01:17

establecer el left y el top de un laber en runtime
 
hola gente.
tengo almacenado en una db la posicion de los tqrdbtext. para lo cual intento establecer su posicion en runtime pero no consigo resultados.
uso el evento beforeprint del qreport.
aca va el codigo.:

try
datos.q_x.Close;
datos.q_x.SQL.Text := 'select * from posiciones where banco = ' + QuotedStr( datos.q_qr.fieldbyname('banco').AsString);
datos.q_x.Open;

while not datos.q_x.Eof do
begin
tqrdbtext(FindComponent(datos.q_x.fieldbyname('label').AsString)).Left := datos.q_x.fieldbyname('left').AsInteger;
tqrdbtext(FindComponent(datos.q_x.fieldbyname('label').AsString)).Top := datos.q_x.fieldbyname('top').AsInteger;
tqrdbtext(FindComponent(datos.q_x.fieldbyname('label').AsString)).Parent := self;
datos.q_x.Next;
end;
except
end;

tango01 11-06-2003 22:03:32

tambien probe sin el parent := self

pero igual no anda.

procedure Tqr_print.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
try
datos.q_x.Close;
datos.q_x.SQL.Text := 'select * from posiciones where banco = ' + QuotedStr( datos.q_qr.fieldbyname('banco').AsString);
datos.q_x.Open;

while not datos.q_x.Eof do
begin
tqrdbtext(FindComponent(datos.q_x.fieldbyname('label').AsString)).Left := datos.q_x.fieldbyname('left').AsInteger;
tqrdbtext(FindComponent(datos.q_x.fieldbyname('label').AsString)).Top := datos.q_x.fieldbyname('top').AsInteger;
datos.q_x.Next;
end;
except
end;
end;

José Luis Garcí 12-06-2003 11:09:24

Yo tambien lo he usado tan simple como en la banda, por ejmplo del Detail en su beforeprint,

QrLabel1.top:=xx;
qrLAbel1.left:=xx;

dosnde xx es el valor integer del campo a leer;

y me funciona, siempre que no mexedo del tamaño establecido en la banda.

Un saludo desde Cnarias.

tango01 12-06-2003 20:46:19

la verdad es que no se porque no funciona. es algo bastante basico, tendrá que ver que uso delphi7 ?

jhonny 12-06-2003 21:14:12

Trata de hacerlo en e evento beforeprint de la banda a la que pertenecen los TQRLabel,

tango01 13-06-2003 22:10:15

hola, tengo que decir que siempre funciono, el que no funcionaba era mi cerebro. el evento beforeprint de qreport es correcto y el codigo tambien. yo me eqivoque y mandaba a imprimir cheques de bancos que no tenian la configuracion en la DB, por eso.... cuando probe con los cheques de banco que habia definido, se ubicaron los tqrdbtext en el lugar correcto.
pido disculpas por hacerles perder el tiempo.

hasta la proxima.


La franja horaria es GMT +2. Ahora son las 06:51:47.

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