Abnormal Program Termination / EEFFACE
-
Hi! Ich habe dieses Problem: Wenn ich folgenden Code zweimal ausführe, kommt beim Beenden des Programmes der Fehler "Abnormal Program Termnation". Wenn ich ein exit(0); ins OnClose-Ereignis schreibe, kommt ein "External exception EEFFACE"-Fehler.
void __fastcall TForm1::Tabschlieen1Click(TObject *Sender) { for(int i=TabControl1->TabIndex;i<=TabControl1->Tabs->Count-1;i++) { SynLines[i]=SynLines[i+1]; SynLineX[i]=SynLineX[i+1]; SynLineY[i]=SynLineY[i+1]; SynFileName[i]=SynFileName[i+1]; SynHighlight[i]=SynHighlight[i+1]; } TabControl1->Tabs->Delete(TabControl1->TabIndex); }Das Tab wird geschlossen, das heißt der Code an sich funktioniert, nur wenn ich mehr als zwei Tabs während der Laufzeit schließe, beendet das Programm nicht mehr richtig. Der Debugger hilft mir nicht.
-
Hallo
Aus dem Codeausschnitt läßt sich für uns hier nicht sagen, woher dieser Fehler kommt.
Vermutlich wird beim Schließen des ersten Tabs ein Wert (Größe eines Arrays?) irgendwo nicht korrekt aktualisiert, so das beim zweiten Schließen auf einen ungültigen Speicherbereich zugegriffen wird.bis bald
akari
-
Ich habe herrausgefunden, dass der Fehler nicht auftritt, wenn ich Zeile 11 auskommentiere.
Doch wie kaann ich jetzt diesen Eintrag löschen?
-
Hallo
weil Tabs nicht die richtige Eigenschaft ist. Das ist nur das Array der Beschriftungen der Tabs.
Du must das Löschen so machen
delete TabControl1->Pages[TabControl1->ActivePageIndex];bis bald
akari
-
Hallo.
Bei mir gibt es die Eigenschaft Pages nicht:
[C++ ERROR] HTMLpro.cpp(1445): E2316 'Pages' is not a member of 'TTabControl'Ich habs jetzt so gelöst:
TStringList *j; j=new TStringList; for(i=0;i<=TabControl1->Tabs->Count-1;i++) { if(i!=TabControl1->TabIndex)j->Add(TabControl1->Tabs->Strings[i]); } TabControl1->Tabs=j; delete j;
-
Hallo
weil ich bei TPageControl nachgeschaut habe.
bis bald
akari