Ich habe einen weiteren Bugfix. Wenn eine Zeile leer war, dann sind die Zeilen ineinandergerutscht.
Delphi-Quellcode:
procedure TMDIEditor.CheckListBox1MeasureItem(Control: TWinControl;
Index: Integer; var Height: Integer);
var
tempCanvas: TCanvas;
notUsed: HWND;
destRect: TRect;
txt: PChar;
begin
tempCanvas := TCanvas.Create;
try
tempCanvas.Handle := GetDeviceContext(notUsed);
destRect := CheckListBox1.ClientRect;
if CheckListBox1.Items[Index] = '' then
txt := ' '
else
txt := PChar(CheckListBox1.Items[Index]);
Height := DrawText(tempCanvas.Handle, txt, -1, destRect, DT_WORDBREAK);
finally
tempCanvas.Free;
end;
end;
PS: Bitte interpretiert das nicht als "gemecker" am Code. Ich freue mich sehr über diesen Code und wäre selbst nicht darauf gekommen und habe den Code jetzt ein wenig korrigiert, damit die Gemeinschaft ihn fehlerfrei nutzen kann.
Gruß
blackdrake