Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Checkbox Quadrat setzen (https://www.delphipraxis.net/192732-checkbox-quadrat-setzen.html)

SneakyBagels 15. Mai 2017 13:49

Checkbox Quadrat setzen
 
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.

Daniel 15. Mai 2017 13:56

AW: Checkox Quadrat setzen
 
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

SneakyBagels 15. Mai 2017 14:32

AW: Checkbox Quadrat setzen
 
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.

Uwe Raabe 15. Mai 2017 15:59

AW: Checkbox Quadrat setzen
 
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.

SneakyBagels 15. Mai 2017 16:51

AW: Checkbox Quadrat setzen
 
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.

Uwe Raabe 15. Mai 2017 20:36

AW: Checkbox Quadrat setzen
 
Zitat:

Zitat von SneakyBagels (Beitrag 1371504)
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.

SneakyBagels 15. Mai 2017 21:18

AW: Checkbox Quadrat setzen
 
Ich habe StateImages doch zum Test eine Imagelist zugewiesen ;)

Uwe Raabe 15. Mai 2017 22:03

AW: Checkbox Quadrat setzen
 
Zitat:

Zitat von SneakyBagels (Beitrag 1371530)
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.

SneakyBagels 15. Mai 2017 22:20

AW: Checkbox Quadrat setzen
 
Das war eine bereits existierende ImageList mit 20 oder mehr Icons drin.
Ich probier es später einfach nochmal.

Uwe Raabe 15. Mai 2017 22:24

AW: Checkbox Quadrat setzen
 
Es wäre auch interessant zu erfahren, wie die Ableitung von TShellTreeView erfolgt. Vielleicht kann man ja auch da ansetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:15 Uhr.
Seite 1 von 2  1 2      

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