Avatar billede ladyhawke Novice
11. december 2002 - 13:49 Der er 1 løsning

CustomSort til TTreeNode i C++ Builder...

Jeg vil gerne lave en CustomSort funktion i C++ Builder, men jeg kan ikke få eksemplet fra builders hjælp til at virke.

Jeg har erklæret denne funktion uden for min hovedklasse:

int __stdcall CompareFunc(TTreeNode *Node1,TTreeNode *Node2, int Reverse)
{
  int GT = AnsiStrIComp(Node1->Text.c_str(), Node2->Text.c_str());
  if (Reverse)
    return -GT;
  return GT;
}

og jeg prøver så følgende kald:


pNode->CustomSort(CompareFunc, 0);

Det giver følgende fejl:
[C++ Error] MainGui.cpp(264): E2034 Cannot convert 'int (__stdcall *)(TTreeNode *,TTreeNode *,int)' to 'int (__stdcall *)(long,long,long)'
og
[C++ Error] MainGui.cpp(264): E2342 Type mismatch in parameter 'SortProc' (wanted 'int (__stdcall *)(long,long,long)', got 'int (__stdcall *)(TTreeNode *,TTreeNode *,int)')

Hvis jeg prøver (står sådan i eksemplet):
pNode->CustomSort((CommCtrl::TTVCompare)CompareFunc, 0);

får jeg følgende fejl:
[C++ Error] MainGui.cpp(264): E2090 Qualifier 'CommCtrl' is not a class or namespace name

Er der nogen der ved hvordan jeg kan lave en customsort af mine tree nodes, som rent faktisk virker?
Avatar billede ladyhawke Novice
12. december 2002 - 07:34 #1
hmmm... fandt selv en løsning. Argumenterne erklæres alle som long og castes i selve funktionen til TTreeNode (int kan bruges direkte).
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