TListBox.MeasureItem begrænset til BYTE
Kan det virkelig passe at ListBox'sens MeasureItem ikke kan returnere mere end 255 (altså byte) selv om datatypen er integer. Denne fejl findes åbenbart både i Delphi 7 og 2005.Returnere MeasureItem værdier som er større end 255 bliver disse tildet - se mit eksempel. I dette eksampel bliver det andet element mindre end det første, selv om det burde være omvendt:
unit Unit1;
interface
uses
Windows, SysUtils, Forms, Classes, Controls, StdCtrls;
type
TForm1 = class(TForm)
LB: TListBox;
procedure LBMeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
LB.Style:=lbOwnerDrawVariable;
LB.Items.Add('255');
LB.Items.Add('300');
end;
procedure TForm1.LBMeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);
begin
Height:=StrToInt(LB.Items[Index]);
end;
end.
Jeg synes fa'me der er mange bugs i Delphi 2005!/
Ja, det er ikke så meget et spm. jeg manglede bare lige nogen at dele min frustration med!)