Hallo zusammen,
ich will eine Form und die Listbox darin auf die Maximale Textlänge vergrößern.
Wie folgt habe ich es versucht! Es geht auch bei einem und 2 einträgen aber mehr gehen einfach nicht! keine Ahnung wieso!
Delphi-Quellcode:
procedure TForm3.Edit3Change(Sender: TObject);
var
Item : TIntArray;
max,I,l:Integer;
begin
max:=0;
Listbox1.Height:=5;
ClientHeight:=30;
If Form1.Schnellsuchean1.Checked=True Then Begin
Listbox1.Clear;
Form1.FindStringInListBox(Edit3.Text,Item,0);
If length(Item) > 0 Then Begin
For i:= 0 to length(Item)-1 do Begin
Listbox1.Height:=Listbox1.Height+15;
ClientHeight:=ClientHeight+15;
Listbox1.Items.Add(Form1.Listbox1.Items[Item[i]]);
end;
If Listbox1.Items.Count>0 Then Begin
For l:=0 to Listbox1.Items.Count-2 do Begin
If max < Listbox1.Canvas.TextWidth(Listbox1.Items[Item[l]])
Then Max:=Listbox1.Canvas.TextWidth(Listbox1.Items[Item[l]]);
end;
end;
//ClientWidth:=max+11;
//Listbox1.Width:=max+10;
ClientWidth:=Listbox1.Canvas.TextWidth(Listbox1.Items[Item[0]]);
Listbox1.Width:=Listbox1.Canvas.TextWidth(Listbox1.Items[Item[0]]);
end Else Begin
Listbox1.Height:=Listbox1.Height+17;
ClientHeight:=ClientHeight+17;
Listbox1.Items.Add('Keine Ergebnisse');
end;
end;
end;
Der Fehler liegt irgentwo hier!
Delphi-Quellcode:
ClientWidth:=Listbox1.Canvas.TextWidth(Listbox1.Items[Item[0]]);
Listbox1.Width:=Listbox1.Canvas.TextWidth(Listbox1.Items[Item[0]]);
Ist etwas ausfürhlich dürfte aber zu verstehen sein, ansonsten einfach fragen! bin Online!
Besten dank an alle!
Cyberbob