Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
Turbo Delphi für Win32
|
Re: Listbox zeichen in Zeilen zählen
16. Nov 2007, 13:54
Hallo,
probiere das mal:
Delphi-Quellcode:
{ Hier die Einträge machen }
{ Dabei wird die Länge als Integer anstatt eines Objektes angehangen }
procedure TForm1.btnAddItemsClick(Sender: TObject);
var
Eintrag: string;
begin
Eintrag:= 'c:\pfad0';
Listbox1.Items.AddObject(Eintrag, TObject(Length(Eintrag)));
Eintrag:= 'c:\pfad0\Dies ist ein ganz langer Pfad';
Listbox1.Items.AddObject(Eintrag, TObject(Length(Eintrag)));
end;
{ Wichtig: Eigenschaft "Style" der Listbox muss auf
etwas wie "lbOwnerDrawFixed" gestellt, werden damit das
Ereignis aufgerufen wird.
Dann einfach die Länge des aktuellen Items auslesen und
entsprechend rot schreiben, wenn es die max. Länge überschreibt }
procedure TForm1.Listbox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
const
AbstandLinks = 5;
MaxLength = 10;
begin
with Control as TListBox do
begin
Canvas.FillRect(Rect);
If Integer(items.objects[ Index ]) > MaxLength then
Canvas.Font.Color:= clred else
Canvas.Font.Color:= clBlack;
Canvas.TextOut ( Rect.Left + AbstandLinks, Rect.Top, Items[ Index ]);
end;
end;
Gruß
Pfoto
Jürgen Höfs
|
|
Zitat
|