Hi Jungs,
Ich habe ein Problem beim arbeiten mit chars. In C kann ich den char einfach als "int" benutzen und als char ausgeben.... In Delphi ist das ganze nicht so einfach wie ich sehe....
Hier Mein Codeschnippsel wie ich dachte das zu machen... aber auch nach einiger Zeit googlen bin ich nicht weiter...
Delphi-Quellcode:
adoQuery := objDatabase.SQLExecSelect('SELECT * FROM Series');
for i := 1 to 26 do // Hier gehe ich das Alphabet durch. Hier erstelle ich Nodes von "A" bis "Z"
begin // Element 0 ist für Zahlen vorgesehen
achar := Chr(64 + i);
Nodes[i] := TreeView.Items.Add(nil,achar); // Nodes ist nur ein TTreeNode Array
end;
while not adoQuery.Eof do // Hier möchte ich die Sachen einordnen
begin
// Hier ist mein Problem.....
TreeView.Items.AddChild(Nodes[Ord(UpperCase(Copy(adoQuery['Name']-65,0,1)))],adoQuery['Name']);
adoQuery.Next;
end;
......
// Kurze erklärung:
Copy(adoQuery['Name'],0,1) // <-- Erstes Zeichen als String
UpperCase(x) // <-- Zeichen umformatieren als Großzeichen (A: sollte den Int-Wert haben von 65)
Ord(x) // <-- Hier sollte es theoretisch 65 sein
Nodes[x-65] // <-- Und hier zurückrechnen auf das Element von einem TTreeNode Array (-65) somit ist es bei A die 1 ...
Gibt es da noch ein Trick ?
Gruß, Real-TTX