![]() |
Kompontenten dynamisch
Hi ich hab mir einige TLabels dynamisch erzeugt (per Schleife), wie bekomm ich sie nun dazu, dass sie einen regelmäßigen Abstand zwischen sich haben (zb. 20 Pixel) ect.?
|
Re: Kompontenten dynamisch
Hallo,
Du kannst den TLabels doch Koordinatenwerte zuweisen, also Top und Left. Um immer 20 Pixel Abstand zu haben musst Du einfach Top auf den Topwert des darüberliegenden TLabels +20 +Höhe des darüber liegenden TLabels setzen. Hoffe, das wahr einigermassen verständlich. |
Re: Kompontenten dynamisch
Das hier ist meine Schleife:
Delphi-Quellcode:
Wie muss ich das denn jetzt einbauen? Also Top iss mal nebensächlich, da sie ja auf einem QuickReport-Band liegen, also müsste ich nur noch Left ändern, was ich aber nicht schaffe. Hat jemand nen Ansatz dafür?
procedure TQuickReport3.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean); var i: Integer; begin for i := 0 to Form1.DBGrid1.Columns.Count-1 do begin if TQRLabel(FindComponent('RLabel_'+IntToStr(i))) = nil then begin Lab := TQRLabel.Create(Self); Lab.Font.Style := [fsBold]; Lab.Parent := QuickReport3.ColumnHeaderBand1; Lab.Name := 'RLabel_'+IntToStr(i); Lab.AlignToBand := True; Lab.Caption := Form1.DBGrid1.Columns[i].Title.Caption; end; end; end; |
Re: Kompontenten dynamisch
Ein Hallöle von
![]()
Delphi-Quellcode:
http://www.delphipraxis.net/images/common/divider.jpg
Procedure TQuickReport3.QuickRepBeforePrint(Sender: TCustomQuickRep; Var PrintReport: Boolean);
Var i, T: Integer; Begin {} T := 30; {Position des obersten Labels} For i := 0 to Form1.DBGrid1.Columns.Count - 1 do If TQRLabel(FindComponent('RLabel_' + IntToStr(i))) = nil Then Begin Lab := TQRLabel.Create(Self); Lab.Font.Style := [fsBold]; Lab.Parent := QuickReport3.ColumnHeaderBand1; Lab.Name := 'RLabel_' + IntToStr(i); Lab.AlignToBand := True; Lab.Caption := Form1.DBGrid1.Columns[i].Title.Caption; {} Lab.Left := 10; {Position von Links} {} Lab.Top := T; {} Inc(T, Lab.Height + 20{Abstand}); End; End; ![]() ![]() ![]() |
Re: Kompontenten dynamisch
Hallo himitsu, leider funktioniert dein Beispiel auch nicht. Habe grad vorher geschrieben, dass ich die Höhe nicht verändern muss, da die Labels auf einem Band plaziert sind :-D
Ich hab es mal wie folgt geändert, was aber ebensowenig funktioniert:
Delphi-Quellcode:
Er plaziert mir immer alle Labels aufeinander, wodurch der Text logischerweise nicht mehr lesbar ist. :(
procedure TQuickReport3.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean); var i,T: Integer; begin T := 0; for i := 0 to Form1.DBGrid1.Columns.Count-1 do begin if TQRLabel(FindComponent('RLabel_'+IntToStr(i))) = nil then begin Lab := TQRLabel.Create(Self); Lab.Font.Style := [fsBold]; Lab.Parent := QuickReport3.ColumnHeaderBand1; Lab.Name := 'RLabel_'+IntToStr(i); Lab.AlignToBand := True; Lab.Caption := Form1.DBGrid1.Columns[i].Title.Caption; // Ab hier Lab.Left := T; {Position von Links} Inc(T, Lab.Width + 50{Abstand}); end; end; end; |
Re: Kompontenten dynamisch
Hoi, ich hab das so gelöst:
Delphi-Quellcode:
[edit]da bei mir i mit 1 beginnt muss das -1 bei dir raus!
lab.left := ((i-1)*(lab.width + 20));
|
Re: Kompontenten dynamisch
Wenn die Label's automatisch ausgerichtet werden, könntest du es ja mal so versuchen:
Delphi-Quellcode:
Oder du legst eine andere, nicht sichtbare Komponente, als Abstandshalter, dazwischen.
Procedure TQuickReport3.QuickRepBeforePrint(Sender: TCustomQuickRep; Var PrintReport: Boolean);
Var i: Integer; Begin For i := 0 to Form1.DBGrid1.Columns.Count - 1 do If TQRLabel(FindComponent('RLabel_' + IntToStr(i))) = nil Then Begin Lab := TQRLabel.Create(Self); {} Lab.AutoSize := True; Lab.Font.Style := [fsBold]; Lab.Parent := QuickReport3.ColumnHeaderBand1; Lab.Name := 'RLabel_' + IntToStr(i); Lab.AlignToBand := True; Lab.Caption := Form1.DBGrid1.Columns[i].Title.Caption; {} Lab.AutoSize := False; {} Lab.Width := Lab.Width + 50{Abstand}; End; End; (Angaben ohne Gewähr) http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz