AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi CheckListBox und virtuelle Einträge - wieso kein Checked?

CheckListBox und virtuelle Einträge - wieso kein Checked?

Offene Frage von "Voyager07"
Ein Thema von Sir Rufo · begonnen am 19. Mai 2010 · letzter Beitrag vom 14. Apr 2017
 
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

AW: CheckListBox und virtuelle Einträge - wieso kein Checked?

  Alt 22. Mär 2012, 13:05
So wie der Quelltext der Checklistbox aussieht ist das ganz nicht vorgesehen das jemand auf virtuell stellt.
Eine direkte Abfrage ob checked bzw. des State gibt es nicht. Das läuft (wie himitsu bereits erwähnt hat) intern alles über einen Wrapper. Und dieser wird per lb_setitemdata gesetzt und über lb_getitemdata abgefragt. Bei Virtual hat lb_setitemdata allerdings keinen Effekt so das man selbst auf die messages reagieren müsste.

Unvollständiges Beispiel (auf Löschen von Items wird zum Beispiel nicht reagiert):
Delphi-Quellcode:
  TCheckListbox = class(vcl.CheckLst.TCheckListBox)
  private
    fDict: TDictionary<Integer,TListBoxItemData>;
    procedure LBGetItemData(var amsg: TMessage); message LB_GETITEMDATA;
    procedure LBSetItemData(var amsg: TMessage); message LB_SETITEMDATA;
  public
    constructor Create(aOwner: TComponent); override;
    destructor Destroy; override;
  end;
[...]
{ TCheckListbox }

constructor TCheckListbox.Create(aOwner: TComponent);
begin
  inherited;
  fDict := TDictionary<Integer,TListBoxItemData>.Create;
end;

destructor TCheckListbox.Destroy;
begin
  fDict.Free;
  inherited;
end;

procedure TCheckListbox.LBGetItemData(var amsg: TMessage);
begin
  fDict.TryGetValue(aMsg.WParam, aMsg.Result);
end;

procedure TCheckListbox.LBSetItemData(var amsg: TMessage);
begin
  fDict.AddOrSetValue(amsg.WParam, aMsg.LParam);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz