Walczę z problemem i nie mogę dojść do finału.
Chcę zapamiętać najszerszy wpisany tekst w ListBoxie, aby ustawić ListBox1.ScrollWidth na długość tego najszerszego wpisu.
Owszem zapamiętuje najwyższą wartość, ale do czasu aż będzie podana mniejsza wartość od tej najwyższej. Wtedy pomimo że podaję kolejne szersze wpisy to on pamięta wartość kiedy ostatni raz był wpis przed zmiejszeniem.
Zagmatwane nie ? :D
var
x, y : integer;
begin
ListBox1.Items.Add(Edit1.Text); // dowolnej długości tekst
x := ListBox1.Canvas.TextWidth(Edit1.Text);
if x > ListBox1.ScrollWidth then
begin
ListBox1.ScrollWidth := x;
y := x;
// Label1.Caption := inttostr(x);
// Label2.caption := inttostr(y);
end
else
if x < ListBox1.ScrollWidth then
begin
ListBox1.ScrollWidth := y;
// Label1.Caption := inttostr(x);
// Label2.caption := inttostr(y);
end;
end;
Wydaje mi się że brakuje w tym przykładzie jesze jednego porównania, ale w którym miejscu. heh :]