Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - EAccessViolation at address 0043AF7C. Read of addr 00000070
DSl1mSh4dy - So 11.04.10 11:07
Titel: EAccessViolation at address 0043AF7C. Read of addr 00000070
Moin,
habe mal wieder einen Fehler und weiß nicht so genau warum.
Hier mal der Code:
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:
| procedure TForm1.FormCreate(Sender: TObject); var Ini: TIniFile; Speichern: Boolean; begin ProgrammOrdner := ExtractFilePath(Application.ExeName) + 'Produkte.ini'; Ini := TIniFile.Create(ProgrammOrdner); Ampel.Visible := false; Rot.Visible := false; Gelb.Visible := false; Gruen.Visible := false; Memo2.Width := 633; Try Speichern := Ini.ReadBool('Optionen', 'Speichern', false); finally Ini.Free; end; if Speichern then begin Speichern1.Checked := true; end else begin Speichern1.Checked := false; end; end; |
Kann mir denn jemand sagen, was ich da falsch mache???
Danke schonmal und Gruß
Moderiert von
Narses: Topic aus Dateizugriff verschoben am So 11.04.2010 um 12:13
DSl1mSh4dy - So 11.04.10 11:43
Fehler gefunden - aber noch ist mir unklar was genau ich falsch mache - aus einer funktion raus die ich in Unit1 programmiert habe müsste ich doch die Farbe von Form2 ändern können, oder?
Code dazu:
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: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| function changeColor(Farbe: String): Integer; begin if Farbe = 'BrownGreen' then begin Form1.Color := clMaroon; Form1.Memo1.Color := clLime; Form1.Memo2.Color := clLime; Form1.Label1.Font.Color := clWhite; Form2.Color := clMaroon; Form2.Label1.Font.Color := clWhite; Form2.Label2.Font.Color := clWhite; Form2.Label3.Font.Color := clWhite; Form2.Edit1.Color := clLime; Form2.Edit2.Color := clLime; Form2.Edit3.Color := clLime; Form2.Edit4.Color := clLime; Form2.Edit5.Color := clLime; Form2.Edit6.Color := clLime; Form2.Edit7.Color := clLime; Form2.Edit8.Color := clLime; Form2.Edit9.Color := clLime; Form2.Edit10.Color := clLime; Form2.Edit11.Color := clLime; Form2.Edit12.Color := clLime; Form2.Edit13.Color := clLime; Form2.Edit14.Color := clLime; Form2.Edit15.Color := clLime; Form2.Edit16.Color := clLime; Form2.Edit17.Color := clLime; Form2.Edit18.Color := clLime; Form2.Edit19.Color := clLime; Form2.Edit20.Color := clLime; Form2.Edit21.Color := clLime; Form2.Edit22.Color := clLime; Form2.Edit23.Color := clLime; Form2.Edit24.Color := clLime; Form2.Edit25.Color := clLime; Form2.Edit26.Color := clLime; Form2.Edit27.Color := clLime; Form2.Edit28.Color := clLime; Form2.Edit29.Color := clLime; Form2.Edit30.Color := clLime; Form2.Edit31.Color := clLime; Form2.Edit32.Color := clLime; end; if Farbe = 'Pink' then begin Form1.Color := $00ff00ff; Form1.Memo1.Color := $00ffaaff; Form1.Memo2.Color := $00ffaaff; Form1.Label1.Font.Color := clWhite; end; result := 1; end; |
Bei den ganzen Sachen wo "Form2" davor steht kommt der EAccessViolation Fehler - aber das müsste doch funktionieren?
Gruß
der organist - So 11.04.10 12:02
DSl1mSh4dy hat folgendes geschrieben : |
Fehler gefunden - aber noch ist mir unklar was genau ich falsch mache - aus einer funktion raus die ich in Unit1 programmiert habe müsste ich doch die Farbe von Form2 ändern können, oder?
Code dazu:
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: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| function changeColor(Farbe: String): Integer; begin if Farbe = 'BrownGreen' then begin Form1.Color := clMaroon; Form1.Memo1.Color := clLime; Form1.Memo2.Color := clLime; Form1.Label1.Font.Color := clWhite; Form2.Color := clMaroon; Form2.Label1.Font.Color := clWhite; Form2.Label2.Font.Color := clWhite; Form2.Label3.Font.Color := clWhite; Form2.Edit1.Color := clLime; Form2.Edit2.Color := clLime; Form2.Edit3.Color := clLime; Form2.Edit4.Color := clLime; Form2.Edit5.Color := clLime; Form2.Edit6.Color := clLime; Form2.Edit7.Color := clLime; Form2.Edit8.Color := clLime; Form2.Edit9.Color := clLime; Form2.Edit10.Color := clLime; Form2.Edit11.Color := clLime; Form2.Edit12.Color := clLime; Form2.Edit13.Color := clLime; Form2.Edit14.Color := clLime; Form2.Edit15.Color := clLime; Form2.Edit16.Color := clLime; Form2.Edit17.Color := clLime; Form2.Edit18.Color := clLime; Form2.Edit19.Color := clLime; Form2.Edit20.Color := clLime; Form2.Edit21.Color := clLime; Form2.Edit22.Color := clLime; Form2.Edit23.Color := clLime; Form2.Edit24.Color := clLime; Form2.Edit25.Color := clLime; Form2.Edit26.Color := clLime; Form2.Edit27.Color := clLime; Form2.Edit28.Color := clLime; Form2.Edit29.Color := clLime; Form2.Edit30.Color := clLime; Form2.Edit31.Color := clLime; Form2.Edit32.Color := clLime; end; if Farbe = 'Pink' then begin Form1.Color := $00ff00ff; Form1.Memo1.Color := $00ffaaff; Form1.Memo2.Color := $00ffaaff; Form1.Label1.Font.Color := clWhite; end; result := 1; end; |
Bei den ganzen Sachen wo "Form2" davor steht kommt der EAccessViolation Fehler - aber das müsste doch funktionieren?
Gruß |
Bei deiner AV kann ich dir nich helfen, aber ich empfehle dir FindComponent, dann wird dein Code besser (=übersichtlicher, kürzer...). ;)
Gruss, Lukas
BenBE - So 11.04.10 21:39
Ferner ist Speichern nicht initialisiert in deiner ersten geposteten Routine.
Außerdem: Wo stellst Du sicher, dass Form2 initialisiert ist?
Ferner: Die Initialisierung einer Variable, die von einerm Resourcenschutzblock geschützt werden soll, sollte direkt vor dem Block erfolgen und nicht noch durch weitere Anweisungen abgetrennt sein.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!