ich möchte BitBtns zur Laufzeit erzeigen. So ähnlich wie eine Leiste.
Eigentlich auch kein Problem. Allerdings stimmt die Breite der Buttons nicht. Ich habe AutoSize auf True geschaltet und es sieht so aus wie das Bild im Anhang. Ich habe folgenden Code dafür erstellt:
Code: Alles auswählen
var
i,n,px,py:Integer;
BitBtn:TBitBtn;
s:TCaption;
begin
n:=NumToken(aDir,DirectorySeparator);
px:=0; py:=0;
for i:=1 to n do begin
s:=GetToken(aDir,DirectorySeparator,i);
if s <> '' then begin
BitBtn:=TBitBtn.Create(self);
BitBtn.AutoSize:=True;
BitBtn.left:=px;
BitBtn.Top:=py;
BitBtn.Caption:=s;
writeln('"',s,'"');
BitBtn.Parent:=self;
BitBtn.AdjustSize;
px:=px+BitBtn.Width;
end;
end; // for i
und wenn ich BitBtn.Width mir ausgeben lasse per writeln steht da immer 75 drin. Egal wie breit der Text auch sein mag. Immer 75. Wo habe ich hier mein Fehler ? Ist das evlt. ein BUG von Lazarus ?
Ich verwende übrigst seit einigen Tagen die neuste Version: 0.9.25. Und das unter KDE 4.0(glaube ich).