Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

Re: CheckListBox und virtuelle Einträge - wieso kein Checked

  Alt 19. Mai 2010, 14:24
In Delphi 2010 - mit Debug-DCUs compiliert:

Delphi-Quellcode:
CheckListBox1.Style := lbVirtual;
CheckListBox1.Count := 10;
CheckListBox1.State[1] := cbChecked;
CheckListBox1.State[1] := cbChecked;
Beim ersten Aufruf/Setzen von State wird ein "Wrapper" erzeugt (ohne diesen "Wrapper" wird immer nur der Standardwert angezeigt)

Delphi-Quellcode:
function TCheckListBox.GetState(Index: Integer): TCheckBoxState;
begin
  if HaveWrapper(Index) then
    Result := TCheckListBoxDataWrapper(GetWrapper(Index)).State
  else
    Result := TCheckListBoxDataWrapper.GetDefaultState;
end;

function TCheckListBox.GetWrapper(Index: Integer): TObject;
begin
  Result := ExtractWrapper(Index);
  if Result = nil then
    Result := CreateWrapper(Index);
end;
Nur irgendwie ist er beim 2. Aufruf wieder weg, so daß der gesetzte/geänderte Wert wieder verschwunden ist.
Dieser "Wrapper" wird in ItemData gespeichert und beim Auslesen dessen kommt NIL zurück.

(Frag mich bloß nicht nach dem Wieso.)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat