Avatar billede hrc Mester
16. januar 2007 - 14:32 Der er 2 kommentarer og
1 løsning

Værdier i ListViews TCustomDrawState

I et listview kører jeg DefaultDraw via et AdvancedCustomDrawSubItem event.

I parameterhovedet er der bl.a. "State : TCustomDrawState" som er et set af enums fra 0..8, sådan som der også vises i ComCtrls.
Men når jeg debugger kan jeg se en 10'ende værdi som debuggeren ikke kan fortolke: "[cdsSelected cdsFocused, (out of bound) 9]".

Nu er det netop den tilstand jeg skal bruge - hvordan gør jeg det uden at kunne se denne værdi?
Avatar billede kroning Nybegynder
17. januar 2007 - 17:09 #1
Findes sikkert en smart måde, men kan du ikke bruge:

  if (Word(State) and 512)=512 then
        Showmessage('9 in state');
Avatar billede kroning Nybegynder
17. januar 2007 - 20:48 #2
Jeg tænkte på at man måske også bare kunne typecaste:

Type
  TFusk = set of 0..9;

.
.
    if (9 in TFusk(State)) then
      ShowMessage('9 in state');
Avatar billede hrc Mester
21. januar 2007 - 13:37 #3
Jeg har ikke fået det til at virke - er nu rapporteret på "Quality Central" som en mindre fejl i VCL'et. Fandt en anden, fusket, løsning til ikke at tegne for mange gange oven i det samme.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester