--> Erledigt <-- class in Map Container Grenze vorhanden? (std::map<int,meine klasse> ...)
-
Hallo Zusammen
In meinem Programm welches ich zurteit entwickle, tritt folgende Struktur auf.
Ausgangslage:
Ich habe eine Klasse (Global definiert):class clFenster { public: int ID; HWND Handle; AnsiString Fenstertitel; int TaskButtonIndex; bool Versteckt; bool Transparent; bool Taskleiste; bool Vordergrund; bool Durchklicken; bool Bearbeitet; };
Einen Globalen map.container + Iterator:
int G_iAnzahlElemente; std::map<int,clFenster> G_mapFenster; std::map<int,clFenster>::iterator G_itmapFenster;
Anschliessend wird der Container in einer Callback-Funktion abgefüllt.
Problem
Das Abfüllen klappt problemlos. Solange der Code so aussieht:BOOL CALLBACK bcGetWindows(HWND hwnd,LPARAM lParam) { clFenster clfNeuesFenster; clfNeuesFenster.ID=G_iAnzahlElemente; clfNeuesFenster.Handle=hwnd; clfNeuesFenster.Fenstertitel=cFenstername; clfNeuesFenster.Versteckt=bVisible; clfNeuesFenster.Transparent=F_Hauptformular->bf_IsWindowTransparent(hwnd); //Ermittelt ob das Fenster Transparent ist clfNeuesFenster.Taskleiste=F_Hauptformular->bf_IsTaskButtonVisible(F_Hauptformular->hf_GetTaskbarHandle(),false,iTaskbarIndex,cFenstername); clfNeuesFenster.TaskButtonIndex=iTaskbarIndex; clfNeuesFenster.Durchklicken=F_Hauptformular->bf_IsWindowClickThrough(hwnd); clfNeuesFenster.Vordergrund=F_Hauptformular->bf_IsWindowForeground(hwnd); G_mapFenster.insert(std::pair<int,clFenster>(G_iAnzahlElemente,clfNeuesFenster)); ++G_iAnzahlElemente; }
Bei der Erneuerung der Liste, wird der Container mit G_mapFenster.clear(); geleert.
Will ich nun noch ein weiteres Feld
clfNeuesFenster.Bearbeitet=bBearbeitet;
abfüllen, so kann ich die Liste 1 mal erstellen. das zweite und dritte,... Mal bleibt die Anwendung stehen und macht nichts mehr.Nun denn. Anschliessen habe ich die Variabel bool Bearbeitet zu einem Integer verwandelt. Jedoch hatte ich auch mit diesem Datentyp kein erfolt.
Kurz und Knapp ist mein Problem:
Sobald ich einen Wert mehr abfüllen will, läuft das Programm nicht mehr.Anhang:
Ich weiss, globale Variabeln sollte man nicht nutzen. Jedoch sind Sie klar deklariert ("G_") und vereinfachen das Ganze.Wenn es jemand bei sich ausprobieren will, dann werde ich den Code gerne zur verfügung stellen.
Ich bedanke mich Herrzlich, dass Ihr euch Gedanken über mein Problem macht.
Erledigt
Der fehler lag anderswo.