AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Checkbox Quadrat setzen

Ein Thema von SneakyBagels · begonnen am 15. Mai 2017 · letzter Beitrag vom 20. Mai 2017
Antwort Antwort
Seite 1 von 2  1 2   
SneakyBagels
(Gast)

n/a Beiträge
 
#1

Checkbox Quadrat setzen

  Alt 15. Mai 2017, 14:49
Ich habe eine Stelle im Code an der ich per Hand den Haken in eine Checkbox setze
Delphi-Quellcode:
var
 Item: TTVItem;
begin
 Item.hItem := Node.ItemId;
 Item.Mask := TVIF_STATE;
 Item.StateMask := TVIS_STATEIMAGEMASK;

 Item.State := $2000; // checken
 // bzw
 Item.State := $2000 shr 1; // un-checken
end;
Welcher Wert ist denn für ein Quadrat zuständig? $2000 ist ja der Tick. Aber ich finde keine Informationen wo geschrieben steht welchen Wert das Quadrat hat.
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
15.477 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Checkox Quadrat setzen

  Alt 15. Mai 2017, 14:56
Eine klassische TCheckBox bringt alles mit, was sie braucht.
Du hingegen möchtest im Rahmen einer anderen Komponente eine Checkbox anzeigen. Mutmaßlich in einem TreeView. Beschreib doch mal im Ganzen, was Du möchtest.

//edit: Wenn es denn ein TreeView ist, könnte folgender Thread helfen:
http://stackoverflow.com/questions/3...kbox-behaviour
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#3

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 15:32
Danke für die Antwort. Das hilft leider nicht.
Meine CheckBoxen werden bereits alle korrekt angezeigt. Es handelt sich hierbei um eine abgeleitete Form des TShellTreeView nur mit CheckBoxen.
Durch obigen Code wird der Haken gesetzt oder entfernt. Dafür ist $2000 verantwortlich. Nur kenne ich den Wert von diesem soliden Quadrat nicht welches man anstatt eines Hakens verwenden kann.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.791 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 16:59
In den oberen 4 Bits des State-Felds wird der Index der Bitmap in der unter StateImages verlinkten ImageList angegeben. Je nachdem wie die aufgebaut ist, musst du dir den passenden Index halt aussuchen. Also probier doch mal Werte wie $1000, $2000, $3000 usw. aus.

Das entspricht übrigens direkt dem Property StateIndex eines TTreeNode.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#5

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 17:51
Das mit der StateImageList war eine gute Idee funktioniert nur leider nicht.
Egal was ich an Werten teste, ich bekomme nicht da Quadrat. StateImages ist übrigens nicht gesetzt und dann ergibt $2000 den Haken.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.791 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 21:36
Das mit der StateImageList war eine gute Idee funktioniert nur leider nicht.
Egal was ich an Werten teste, ich bekomme nicht da Quadrat. StateImages ist übrigens nicht gesetzt und dann ergibt $2000 den Haken.
Und warum versuchst du es dann nicht mit einer Zuweisung an StateImages? Dafür ist es ja schließlich da.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#7

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 22:18
Ich habe StateImages doch zum Test eine Imagelist zugewiesen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.791 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 23:03
Ich habe StateImages doch zum Test eine Imagelist zugewiesen
Und in dieser ImageList waren wie viele Images? Wurden die entsprechend angezeigt?

Bei einem simplen TreeView funktioniert das immerhin, wenn ich den Nodes bei StateImage einen Wert größer 0 zuweise.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#9

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 23:20
Das war eine bereits existierende ImageList mit 20 oder mehr Icons drin.
Ich probier es später einfach nochmal.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.791 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Checkbox Quadrat setzen

  Alt 15. Mai 2017, 23:24
Es wäre auch interessant zu erfahren, wie die Ableitung von TShellTreeView erfolgt. Vielleicht kann man ja auch da ansetzen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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