PDA

Ver la Versión Completa : establecer el left y el top de un laber en runtime


tango01
11-06-2003, 22:01:17
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.