AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Class Helper Problem für TListItem

Ein Thema von Roaster · begonnen am 8. Jan 2009 · letzter Beitrag vom 29. Jan 2009
Antwort Antwort
Roaster

Registriert seit: 21. Jul 2004
Ort: bei mir zu Hause
107 Beiträge
 
#1

Class Helper Problem für TListItem

  Alt 8. Jan 2009, 12:53
Hi,

ich habe eine neue Klasse abgeleitet von TCustomListView erzeugt:
TMyListView = class(TCustomListView) Die Listitems dort sollten eine Checkbox oder Radiobutton erhalten, dies klappte bisher auch ganz gut, ist aber auch nicht das Problem hier.
Ich habe die Klasse TListItem mit Hilfe einer Helper Klasse erweitert um dort ein Property Checked einzufügen. Mein Problem ist jetzt, wie kann ich diese Property, oder besser die dazugehörige Variable FChecked auf einen initialen Wert setzen.

Delphi-Quellcode:
  TListItemHelper = class helper for TListItem
  class var
    FChecked: Boolean;
    procedure SetChecked(Value : Boolean);
    function GetChecked : Boolean;
  published
    property Checked : Boolean read GetChecked write SetChecked;
  end;
Ein Coding aus der Hauptklasse TMyListView, wie beispielsweise
Delphi-Quellcode:
procedure TMyListView.ToggleSelectedCheck;
var
    ListItem : TListItem;
begin
[..]
    ListItem := GetNextItem(nil, sdAll, [isSelected]);
           ListItem.Checked := not ListItem.Checked;
funktioniert sehr gut, nur wie kann ich beim Hinzufügen eines neuen Listitems die Variable FChecked auf False setzen?
cu, Michael

Windows 7, WinXP Pro, Vista, WinXP Home, Win98 SE
D4 C/S, D7 Enterprise, Turbo Delphi Pro, Delphi 2009
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#2

Re: Class Helper Problem für TListItem

  Alt 8. Jan 2009, 13:11
Was soll denn der Class-Helper bewirken? TListItem hat doch bereits ein Checked property (zumindest bei D2007).

Weiterhin bezweifle ich das Funktionieren, da FChecked als Class-Var angelegt ist und somit sein Wert für alle ListItems im Scope des Class-Helpers gilt.
Uwe Raabe
  Mit Zitat antworten Zitat
Roaster

Registriert seit: 21. Jul 2004
Ort: bei mir zu Hause
107 Beiträge
 
#3

Re: Class Helper Problem für TListItem

  Alt 8. Jan 2009, 14:27
Zitat von Uwe Raabe:
Was soll denn der Class-Helper bewirken? TListItem hat doch bereits ein Checked property (zumindest bei D2007).
Hallo Uwe, ja ,du hast natürlich recht, auch in Turbo Delphi Pro gibt es bereits dieses Property im TListView, nur ich hatte das Problem, dass wenn ich TListView bzw. TMyListView.Checkboxes auf True gesetzt habe, ich dann Problem in meiner abgeleiteten Klasse beim Zeichnen der Radiobuttons oder den eigenen Checkboxen hatte.
Hintergrund: Meine Klasse sollte in der Lage sein, entweder Checkboxen (alle Items können ggf. abgehakt werden) oder Radiobuttons (nur eines der Items soll abgehakt sein) darstellen zu können.

Zitat von Uwe Raabe:
Weiterhin bezweifle ich das Funktionieren, da FChecked als Class-Var angelegt ist und somit sein Wert für alle ListItems im Scope des Class-Helpers gilt.
Da hast du wiederum recht, dies ist mein zweites Problem hier, dass ich aber erst habe, seitdem ich jetzt auf die class helpers umstellen wollte. Zuvor habe ich einen etwas unschönen Hack benutzt, der eine abgeleitet TMyListItem Klasse verwendete und ich dann das Check property nur mehr mit sowas wie:
TMyListItem(Item).Checked ansprechen konnte. Dies funktionierte wunderbar, war aber etwas umständlich und unschön. Jetzt wollte ich wie bereits bekannt auf die class helper ausweichen.

Da ich in den class helpers aber keine lokalen (private) Vars verwenden kann, suche ich somit noch immer nach einer Lösung, dass Checked property der Listitems für meine Zwecke zu missbrauchen.
cu, Michael

Windows 7, WinXP Pro, Vista, WinXP Home, Win98 SE
D4 C/S, D7 Enterprise, Turbo Delphi Pro, Delphi 2009
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Class Helper Problem für TListItem

  Alt 29. Jan 2009, 20:36
Zitat von Roaster:
Hintergrund: Meine Klasse sollte in der Lage sein, entweder Checkboxen (alle Items können ggf. abgehakt werden) oder Radiobuttons (nur eines der Items soll abgehakt sein) darstellen zu können.
wie meinst du das jetzt genau?

meinst du sowas wie:
graues Häkchen > mindestens ein und nicht alle untergeordneten Elemente/Checkboxen sind abgehakt
schwarzes Häkchen > alle untergeordneten Elemente/Checkboxen sind abgehakt
kein Häcken > kein untergeordnetes Element/Checkbox ist abgehakt
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz