onDrawItem
onDrawItem
Hallo,
gegeben ist eine CheckListBox. Im ObjektInpector habe ich das Ereignis onDrawItem ausgewählt das mir im Editor eine Procedure CheckListBox1DrawItem bereit stellt.
Nun habe ich das Problem das diese Procedure nie angesprungen wird, oder nicht verstanden wann sie angesprungen wird. Hintergrund ist, ich möchte die Schriftfarbe eines Items in einer CheckListBox ändern.
Lazarus Version 0.9.26.2 Beta
Viele grüße voko
gegeben ist eine CheckListBox. Im ObjektInpector habe ich das Ereignis onDrawItem ausgewählt das mir im Editor eine Procedure CheckListBox1DrawItem bereit stellt.
Nun habe ich das Problem das diese Procedure nie angesprungen wird, oder nicht verstanden wann sie angesprungen wird. Hintergrund ist, ich möchte die Schriftfarbe eines Items in einer CheckListBox ändern.
Lazarus Version 0.9.26.2 Beta
Viele grüße voko
Re: onDrawItem
Ich würde mal sagen, das Event ist fälschlicherweise published und sollte es wahrsch. nicht sein.
Wenn du ins Zeichnen eingreifen willst, würde ich besser bei TListBox anfangen und gleich alles selber zeichnen.
Style auf OwnerDraw... setzen.
Wenn du ins Zeichnen eingreifen willst, würde ich besser bei TListBox anfangen und gleich alles selber zeichnen.
Style auf OwnerDraw... setzen.
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: onDrawItem
Auch die CheckListBox kennt Stile. Style muss lbOwnerDrawFixed (oder -Fixed) sein, damit das OnDrawItem-Ereignis ausgelöst wird.
Re: onDrawItem
Funzt aber nicht bei der CheckListBox (mind. unter GTK2). Das Property "Style" ist somit eigentlich auch überflüssig.
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: onDrawItem
Tatsächlich! Bug? Unter XP wird die Prozedur aufgerufen...
Re: onDrawItem
Der Bug Report ist "acknowledged" seit 2009-06-28
http://bugs.freepascal.org/view.php?id=14071" onclick="window.open(this.href);return false;
Hat wahrsch. nicht die höchste Priorität.
http://bugs.freepascal.org/view.php?id=14071" onclick="window.open(this.href);return false;
Hat wahrsch. nicht die höchste Priorität.
Re: onDrawItem
Hallo,
erst mal Danke an theo und Scotty für eure prompten Antworten.
Ich habe das ganze dann mal, statt unter GTK2, unter GTK laufen lassen und siehe da die Procedure wird angesprungen. Nur das Aussehen von GTK ist nicht gerade der Brüller. Mal schauen wie ich weiter vorgehen werde, und evtl. auch mal die TListBox anschauen.
Das ganze läuft auf Opensuse 11.0
Danke und viel grüße voko
erst mal Danke an theo und Scotty für eure prompten Antworten.
Ich habe das ganze dann mal, statt unter GTK2, unter GTK laufen lassen und siehe da die Procedure wird angesprungen. Nur das Aussehen von GTK ist nicht gerade der Brüller. Mal schauen wie ich weiter vorgehen werde, und evtl. auch mal die TListBox anschauen.
Das ganze läuft auf Opensuse 11.0
Danke und viel grüße voko
Re: onDrawItem
Falls du die Ansicht weitergehend anpassen willst, gibt's natürlich noch den VirtualTreeview
http://www.soft-gems.net/index.php?opti ... &Itemid=33" onclick="window.open(this.href);return false;
Benötigt aber etwas Einarbeitung.
Lazarus Version Download hier beschrieben: http://forum.lazarus.freepascal.org/ind ... l#msg31596" onclick="window.open(this.href);return false;
http://www.soft-gems.net/index.php?opti ... &Itemid=33" onclick="window.open(this.href);return false;
Benötigt aber etwas Einarbeitung.
Lazarus Version Download hier beschrieben: http://forum.lazarus.freepascal.org/ind ... l#msg31596" onclick="window.open(this.href);return false;
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: onDrawItem
Den Sinn einer TCheckListBox habe ich noch nie ganz verstanden (mal abgesehen von den Annehmlichkeiten beim Programmieren). Entweder TListBox oder TCheckBox - oder versteht ein unbedarfter Anwender den Unterschied zwischen einigen einzelnen und vielen scrollbaren CheckBoxen. Andererseits benutze ich die TCheckListBox auch gern 
BTW: Vielleicht klappt es ja unter QT.

BTW: Vielleicht klappt es ja unter QT.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: onDrawItem
Der Unterschied der Sinnhaftigkeit liegt wohl eher im Anwendungsgebiet: Wenn du deinem Benutzer eine Liste gibst, und er daraus bestimmte Elemente auswählen soll, ist es angenehmer diese zu scrollen, wenn viele Elemente vorhanden sind. Das ganze kann man dann natürlich auch über eine TScrollBox realisieren, wo man dann auch für jede CheckBox alle Eigenschafte ändern kann.Scotty hat geschrieben:Den Sinn einer TCheckListBox habe ich noch nie ganz verstanden (mal abgesehen von den Annehmlichkeiten beim Programmieren). Entweder TListBox oder TCheckBox - oder versteht ein unbedarfter Anwender den Unterschied zwischen einigen einzelnen und vielen scrollbaren CheckBoxen. Andererseits benutze ich die TCheckListBox auch gern
BTW: Vielleicht klappt es ja unter QT.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein