Autor |
Beitrag |
P-A-L
      
Beiträge: 30
|
Verfasst: Mi 10.09.08 17:47
Hallo zusammen,
ich werd noch irre mit diesem Problem! Seit gestern abend funktioniert das Memo.Lines.Clear in meiner Prozedur nicht mehr, obwohl ich daran gar nix geändert hab! Ich seh einfach den Fehler nicht, wahrscheinlich bin ich "betriebsblind", also bitte helft mir!!!
Zum Testen: Das funktioniert ganz normal
Delphi-Quelltext 1: 2: 3: 4:
| procedure TGrafikForm.FormCreate(Sender: TObject); begin self.Memo_BtnDetail.Lines.Clear; end; |
In einer Unit hab ich ein ListView, welches beim OnSelect-Ereignis ein Memo-Feld mit den Inhalten des ausgewählten Objekts befüllen soll. Hier der Aufruf in der OnSelect-Prozedur:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TGrafikForm.ListView_UnitsSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); var _unit:MWW2_Unit; begin _unit:=MWW2_Unit(MWW2_Game.Instance.getUnit(Item.SubItems[0])); IF _unit=NIL Then Label1.Caption:='Unit '+Item.SubItems[0]+' could not be found!' ELSE BEGIN Label1.Caption:=_unit.ID; GrafikForm.ShowUnitData(_unit); END; end; |
Die Logik darin funktioniert super, hab ich mit F7 getestet.
Nun die Prozedur, die den Text anzeigen soll - Das Problem: Gleich in der ersten Zeile bricht sie ab mit dem Fehler:
Zitat: | Im Projekt WW2.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 004720A0 in Modul 'WW2.exe'. Lesen von Adresse 00000360' aufgetreten. |
Daraufhin markiert er die Zeile 'Lines.Clear'... Ich raff's nicht!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TGrafikForm.ShowUnitData(_unit: MWW2_Unit); var itemX:TObject; bataillon:MWW2_Bataillon; subUnit:MWW2_Unit; i, max : integer; t:string; begin self.Memo_BtnDetail.Lines.Clear; ... end; |
Bitte helft mir! *Fleh*
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 10.09.08 17:58
Moin und  im Forum!
P-A-L hat folgendes geschrieben: | Seit gestern abend funktioniert das Memo.Lines.Clear in meiner Prozedur nicht mehr, obwohl ich daran gar nix geändert hab! |
Wann tritt der Fehler auf, beim Programmstart oder erst beim Anklicken eines Items im Listview?
Probier das mal:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TGrafikForm.ShowUnitData(_unit: MWW2_Unit); var itemX:TObject; bataillon:MWW2_Bataillon; subUnit:MWW2_Unit; i, max : integer; t:string; begin if Assigned(_unit) then begin Memo_BtnDetail.Lines.Clear; end else ShowMessage('_unit ist NIL!'); end; | Was passiert?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
fanspiraphi
Hält's aus hier
Beiträge: 4
|
Verfasst: Mi 10.09.08 18:02
Hmm schon mal ohne
self .memo...
versucht?
Könntest du mal mehr Zeilen von
ShowUnitData
Zeigen bitte?
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Mi 10.09.08 18:06
Hallo,
häufig wird eine falsche Zeile als die Fehlerverursachende angezeigt. Es handelt sich dann um die Zeile oben drüber, in deinem Fall:
Delphi-Quelltext 1:
| Label1.Caption:=_unit.ID; |
schau mal nach, ob "_unit:=MWW2_Unit(MWW2_Game.Instance.getUnit(Item.SubItems[0]));" funktioniert hat. vlt ist da was schief gelaufen und dann beim Zugriff auf "_unit.ID" gibts dann nen Fehler...
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Mi 10.09.08 18:15
Das Problem tritt erst auf, wenn ich etwas im ListView auswähle. Das "self" hab ich hinzugefügt, als ich die Fehlermeldung das erste Mal gesehen hatte...
Das Problem ist ja eher, dass der Parameter korrekt übergeben wird (hab's mit F7 gecheckt).
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TGrafikForm.ShowUnitData(_unit: MWW2_Unit); var itemX:TObject; bataillon:MWW2_Bataillon; subUnit:MWW2_Unit; i, max : integer; t:string; begin self.Memo_BtnDetail.Lines.Clear; max:=_unit.subUnits.Count; If max>0 Then For i:=0 to (max-1) Do Begin itemX:=_unit.subUnits[i]; If (itemX is MWW2_Bataillon) Then Begin bataillon:=MWW2_Bataillon(_unit.subUnits[i]); Str(i+1,t); Memo_BtnDetail.Lines.Add(t+'.: Bataillon '+bataillon.ID); End Else If (itemX is MWW2_Unit) THEN Begin subUnit:=MWW2_Unit(_unit.subUnits[i]); Str(i+1,t); Memo_BtnDetail.Lines.Add(t+'.: Unit '+subUnit.ID); End; End Else Memo_BtnDetail.Lines.Add('No Sub-Units'); end; |
Lines.Add funktioniert übrigens auch nicht mehr...
EDIT: Ich hab in der aufrufenden Prozedur direkt vor dm Aufruf ein Memo_BtnDetail.Lines.Add('TEST') eingefügt, es hat einwandfrei funktioniert... Aber der Parameter wird korrekt übergeben. Wenn ich die Memo-Zeilen rauskommentiere, funktioniert alles ganz normal... Mal davon abgesehen, dass "OnSelect" doppelt ausgeführt wird (ab dem zweiten click).
Zuletzt bearbeitet von P-A-L am Mi 10.09.08 18:24, insgesamt 1-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 10.09.08 18:21
Moin!
Probier das mal:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TGrafikForm.ShowUnitData(_unit: MWW2_Unit); var itemX:TObject; bataillon:MWW2_Bataillon; subUnit:MWW2_Unit; i, max : integer; t:string; begin ShowMessage(_unit.ClassName); self.Memo_BtnDetail.Lines.Clear; max:=_unit.subUnits.Count; | Was wird angezeigt?
Wenn "MWW2_Unit" ausgegeben wird, dann zeig mal die Deklaration der Klasse.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Mi 10.09.08 18:26
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 10.09.08 18:38
Moin!
Was wird hier angezeigt?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TGrafikForm.ShowUnitData(_unit: MWW2_Unit); var itemX:TObject; bataillon:MWW2_Bataillon; subUnit:MWW2_Unit; i, max : integer; t:string; begin ShowMessage(Format('%p',[Pointer(Self)])); ShowMessage(Self.ClassName); self.Memo_BtnDetail.Lines.Clear; max:=_unit.subUnits.Count; | cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Mi 10.09.08 18:44
Narses hat folgendes geschrieben: | Moin!
Was wird hier angezeigt?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TGrafikForm.ShowUnitData(_unit: MWW2_Unit); var itemX:TObject; bataillon:MWW2_Bataillon; subUnit:MWW2_Unit; i, max : integer; t:string; begin ShowMessage(Format('%p',[Pointer(Self)])); ShowMessage(Self.ClassName); self.Memo_BtnDetail.Lines.Clear; max:=_unit.subUnits.Count; | cu
Narses |
Die erste Message sagt '00000000'.
Die zweite sorgt für eine AccessViolation mit der Adresse '00000000'.
Das scheint der Fehler zu sein, danke schonmal! Woran kann das liegen? Und noch wichtiger: Wie behebe ich das???
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 10.09.08 18:49
Moin!
P-A-L hat folgendes geschrieben: | Die erste Message sagt '00000000'. |
Dachte ich´s mir doch.
P-A-L hat folgendes geschrieben: | Das scheint der Fehler zu sein, danke schonmal! Woran kann das liegen? |
Du schreibst irgendwo in Speicher, der dir nicht gehört (bzw. machst eine Bereichsüberschreitung, z.B. bei einem Array; wenn es sich dabei um ein lokales Array handelt, dann kann dabei auch schonmal die eigene Klassenreferenz betroffen sein, hatte ich auch schonmal).
P-A-L hat folgendes geschrieben: | Und noch wichtiger: Wie behebe ich das??? |
Such den fehlerhaften Zugriff.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Mi 10.09.08 18:55
Narses hat folgendes geschrieben: | P-A-L hat folgendes geschrieben: | Und noch wichtiger: Wie behebe ich das??? | Such den fehlerhaften Zugriff.
cu
Narses |
Dank Dir erstmal! Also da der Zugriff auf das Memo in den vorhergehenden Prozeduren noch funktioniert, muss der Fehler in einer dieser beiden liegen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| procedure TGrafikForm.ListView_UnitsSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); var _unit:MWW2_Unit; begin _unit:=MWW2_Unit(MWW2_Game.Instance.getUnit(Item.SubItems[0])); IF _unit=NIL Then Label1.Caption:='Unit '+Item.SubItems[0]+' could not be found!' ELSE BEGIN Label1.Caption:=_unit.ID; Memo_BtnDetail.Lines.Add('Versuche Text hinzuzufügen'); GrafikForm.ShowUnitData(_unit); END; end;
procedure TGrafikForm.ShowUnitData(_unit: MWW2_Unit); var itemX:TObject; bataillon:MWW2_Bataillon; subUnit:MWW2_Unit; i, max : integer; t:string; begin Memo_BtnDetail.Lines.Clear; max:=_unit.subUnits.Count; If max>0 Then For i:=0 to (max-1) Do Begin itemX:=_unit.subUnits[i]; If (itemX is MWW2_Bataillon) Then Begin bataillon:=MWW2_Bataillon(_unit.subUnits[i]); Str(i+1,t); Memo_BtnDetail.Lines.Add(t+'.: Bataillon '+bataillon.ID); End Else If (itemX is MWW2_Unit) THEN Begin subUnit:=MWW2_Unit(_unit.subUnits[i]); Str(i+1,t); Memo_BtnDetail.Lines.Add(t+'.: Unit '+subUnit.ID); End; End Else Memo_BtnDetail.Lines.Add('No Sub-Units'); end; |
--- Moderiert von Narses: Beiträge zusammengefasst---
Ok, ich hab den kompletten Inhalt der Methode "ShowUnitData" in die Select-Routine gesteckt, alles funktioniert perfekt. Warum ergibt es einen Fehler, wenn ich diese Dinge auslagere?
EDIT:
Selbst wenn die ShowUnitData nur eine einzige Anweisung "Memo.Lines.Clear" enthält, kommt der Fehler... Aber der Parameter '_unit' wird korrekt übergeben. Ich hab auch schon den Parametertyp auf String geändert und einen solchen übergeben, der Fehler passiert trotzdem... 
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 11.09.08 01:02
Moin!
P-A-L hat folgendes geschrieben: | Ok, ich hab den kompletten Inhalt der Methode "ShowUnitData" in die Select-Routine gesteckt, alles funktioniert perfekt. Warum ergibt es einen Fehler, wenn ich diese Dinge auslagere? |
Der Fehler könnte schon wesentlicher früher an einer anderen Stelle auftreten und wird erst da "sichtbar".
P-A-L hat folgendes geschrieben: | Selbst wenn die ShowUnitData nur eine einzige Anweisung "Memo.Lines.Clear" enthält, kommt der Fehler... Aber der Parameter '_unit' wird korrekt übergeben. Ich hab auch schon den Parametertyp auf String geändert und einen solchen übergeben, der Fehler passiert trotzdem...  |
Was passiert denn hier:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TGrafikForm.ListView_UnitsSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); var _unit:MWW2_Unit; begin ShowMessage(Format('%p',[Pointer(Self)])); ShowMessage(Self.ClassName);
_unit:=MWW2_Unit(MWW2_Game.Instance.getUnit(Item.SubItems[0])); IF _unit=NIL Then Label1.Caption:='Unit '+Item.SubItems[0]+' could not be found!' ELSE BEGIN Label1.Caption:=_unit.ID; Memo_BtnDetail.Lines.Add('Versuche Text hinzuzufügen'); GrafikForm.ShowUnitData(_unit); END;
ShowMessage(Format('%p',[Pointer(Self)])); ShowMessage(Self.ClassName); end; | cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 11.09.08 11:20
Benutzt du dynamische Arrays? Wenn ja, oder wenn du nicht sicher bist ob die irgendwo verwendet werden, schalte einfach mal die Bereichsüberprüfung unter Projekt --> Optionen --> Compiler (rechts oben) an und schau, ob dann bevor das Programm zum fraglichen Code kommt ein Fehler auftritt.
Aus Performancegründen solltest du nach dem Test die Prüfung wieder abschalten  .
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Do 11.09.08 13:49
@Narses: Teste ich, sobald ich wieder zu Hause bin. Vielen Dank schon mal! (Da hätte ich natürlich nach den vorherigen Vorschlägen selbst drauf kommen können...)
jaenicke hat folgendes geschrieben: | Benutzt du dynamische Arrays? Wenn ja, oder wenn du nicht sicher bist ob die irgendwo verwendet werden, schalte einfach mal die Bereichsüberprüfung unter Projekt --> Optionen --> Compiler (rechts oben) an und schau, ob dann bevor das Programm zum fraglichen Code kommt ein Fehler auftritt.
Aus Performancegründen solltest du nach dem Test die Prüfung wieder abschalten . |
Nein, mit arrays arbeite ich überhaupt nicht. Es ist wirklich nur das was ich hier gepostet hab. Ich kann heut abend gern die ganze Unit hier reinstellen, ich wollte euch nur nicht mit quelltext überschütten...
Ich werde den Test von Narses mal durchlaufen, wenn da auch eine ungültige Speicheradresse steht, müsste ich dieselbe Anweisung in alle vorherigen Prozeduren packen, richtig? Und wenn der Test eine plausible Adresse zeigt? Was dann?
Und wie kann sowas überhaupt passieren? Ich mach doch nix exotisches... Nur ein paar Pointer werden übergeben. Könnte es u.U. daran liegen, dass ich die temporären Objekte nicht neu erstelle (kein Create) sondern nur einen Pointer deklariere und diesem ein bestehendes Objekt zuweise? Vielleicht muss ich dann die Parameter mit irgendeinem Zusatz kennzeichnen? Oder nicht?
*verwirrt ist*
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Do 11.09.08 18:37
Die erste Message zeigt 00AD7530,
die zweite TGrafikForm,
dann stürzt das Programm wieder ab.
Wenn ich den Inhalt von ShowUnitDetails auskommentiere, zeigen die beiden letzten Messages dasselbe wie die ersten beiden.
Ich versteh das einfach nicht... 
|
|
jome
      
Beiträge: 29
Win 2000, XP, VISTA, WIN 7
Delphi 4,5, 2006 Pro., 2007 Pro., Delphi XE
|
Verfasst: Do 11.09.08 19:47
Hallo,
ich vermute, dass das Form nicht korrekt initialisiert wurde. Ist in der folgenden Prozedur das Objekt "Grafikform" überhaupt erzeugt? Ich verstehe nicht, warum hier "Grafikform" explizit angegeben wird. Wenn es nicht "self" entspricht, dann handelt es sich wohl um eine 2. Instanz! Damit wäre auch der 2fache Aufruf der Prozeduren erklärbar.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TGrafikForm.ListView_UnitsSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); var _unit:MWW2_Unit; begin _unit:=MWW2_Unit(MWW2_Game.Instance.getUnit(Item.SubItems[0])); IF _unit=NIL Then Label1.Caption:='Unit '+Item.SubItems[0]+' could not be found!' ELSE BEGIN Label1.Caption:=_unit.ID; Memo_BtnDetail.Lines.Add('Versuche Text hinzuzufügen'); GrafikForm.ShowUnitData(_unit); END; end; |
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Do 11.09.08 20:28
jome hat folgendes geschrieben: | Hallo,
ich vermute, dass das Form nicht korrekt initialisiert wurde. Ist in der folgenden Prozedur das Objekt "Grafikform" überhaupt erzeugt? Ich verstehe nicht, warum hier "Grafikform" explizit angegeben wird. Wenn es nicht "self" entspricht, dann handelt es sich wohl um eine 2. Instanz! Damit wäre auch der 2fache Aufruf der Prozeduren erklärbar.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TGrafikForm.ListView_UnitsSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); var _unit:MWW2_Unit; begin _unit:=MWW2_Unit(MWW2_Game.Instance.getUnit(Item.SubItems[0])); IF _unit=NIL Then Label1.Caption:='Unit '+Item.SubItems[0]+' could not be found!' ELSE BEGIN Label1.Caption:=_unit.ID; Memo_BtnDetail.Lines.Add('Versuche Text hinzuzufügen'); GrafikForm.ShowUnitData(_unit); END; end; | |
Du, Jome, bist der größte Delphologe der ganzen Welt!!! Das war tatsächlich der Fehler!!! Wie konnte ich das übersehen???
Zur Erklärung: Ich hatte den Objektnamen geschrieben, um das Prozeduren-Auswahlfenster zu bekommen... *rot werd*
Tausend Dank!!!
Jetzt hab ich noch ne andere Frage, aber dafür mach ich nen neuen Thread auf!!!
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 11.09.08 21:47
Moin!
Ähm, nochmal ganz langsam:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TGrafikForm.ListView_UnitsSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); var _unit:MWW2_Unit; begin _unit:=MWW2_Unit(MWW2_Game.Instance.getUnit(Item.SubItems[0])); IF _unit=NIL Then Label1.Caption:='Unit '+Item.SubItems[0]+' could not be found!' ELSE BEGIN Label1.Caption:=_unit.ID; Memo_BtnDetail.Lines.Add('Versuche Text hinzuzufügen'); GrafikForm.ShowUnitData(_unit); END; end; | Du möchtest also sagen, dass die markierte Objektreferenz nicht eine - und zwar in diesem Fall die einzige Instanz - von dieser Klasse hier ist:
Delphi-Quelltext 1: 2:
| procedure TGrafikForm.ListView_UnitsSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); | Wenn ja, dann machst du da ziemlich sicher immer noch was ziemlich falsch...  weil, (normalerweise) sollte das identisch zu:
Delphi-Quelltext 1: 2: 3:
| Memo_BtnDetail.Lines.Add('Versuche Text hinzuzufügen'); Self.ShowUnitData(_unit); END; | sein. Ist das tatsächlich nicht so? Und wenn ja, warum?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
P-A-L 
      
Beiträge: 30
|
Verfasst: Fr 12.09.08 00:35
Doch, es war tatsächlich die einzige Instanz dieser Klasse.  Wie gesagt, die Prozedur wurde ja auch aufgerufen, nur eben hat das Objekt sich gleichzeitig im Speicher verlaufen...
Als ich GrafikForm gelöscht hab, lief die ganze Sache fehlerfrei...
Ich hab ja gesagt, dass ich den Fehler nicht verstehe. Aber jetzt weiß ich wenigstens, was es war.
Moderiert von Narses: Komplettzitat des letzten Beitrags entfernt
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 12.09.08 00:49
Moin!
P-A-L hat folgendes geschrieben: | Doch, es war tatsächlich die einzige Instanz dieser Klasse. |
OK, hatte ich vermutet.
P-A-L hat folgendes geschrieben: | Wie gesagt, die Prozedur wurde ja auch aufgerufen, nur eben hat das Objekt sich gleichzeitig im Speicher verlaufen... |
Prozeduren (und Methoden) verlaufen sich nicht im Speicher...
P-A-L hat folgendes geschrieben: | Als ich GrafikForm gelöscht hab, lief die ganze Sache fehlerfrei... |
Du sagst damit, dass dieses Konstrukt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); begin Form1.Button2Click(Self); end;
procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage(Format('%p %p',[Pointer(Self),Pointer(Sender)])); end; | nicht funktioniert, wenn da Form1 steht. Der Code beweist aber das Gegenteil!
P-A-L hat folgendes geschrieben: | Ich hab ja gesagt, dass ich den Fehler nicht verstehe. Aber jetzt weiß ich wenigstens, was es war. |
IMHO hast du da immer noch einen fetten Bug drin, aber OK, du weißt halt nicht wo.  Ich würde ihn suchen, denn das wird früher oder später wieder komische Effekte geben, die du dir nicht erklären kannst...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
|