Autor |
Beitrag |
Malte1231
Hält's aus hier
Beiträge: 3
|
Verfasst: Fr 26.08.11 10:08
Hallo,
Ich bin ein Delphi anfänger und habe Delphi 7 .
nun habe ich mit meinem Bekannten versucht ein OpenDiaog und ein Savedialog zu erstellen
das ganze sah ganz einfach auch
2 Edit Felder
1 save und ein load Button
so alles eingegeben im code
und programm startet auch nur wen ich jetzt in das Edit feld was eingeb (Kann es auch leer lassen) Und dan auch Save gehe kommt immer die Meldung
Quelltext 1: 2:
| 'Projeckt "Saveuopen.exe" raised exception EAccessViolation with message Access Violation at address 00403498 in module ' ''saveuopen.exe' read of address 8BD88B4F' Process Stopped. Use step or run for Continue ' |
Könnt Ihr mir helfen was das beheben könnte
Lg Marvin
Ps Falsch der threat Falsch gestellt wurden ist möchte ich mich dafür entschuldigen
Ich habe über die suche nichts gefunden dazu und google spukte mir auch nicht wirklich was hilfreiches aus.
Moderiert von Gausi: Code-Tags hinzugefügt
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 26.08.11 10:23
Hallo und  in der Entwickler-Ecke,
Zeig doch bitte mal den Code, der ausgeführt wird, wenn du auf Save klickst. Da ist wohl irgendwas nicht ganz richtig. 
_________________ We are, we were and will not be.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 26.08.11 11:55
|
|
Malte1231 
Hält's aus hier
Beiträge: 3
|
Verfasst: Fr 26.08.11 14:05
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button2Click(Sender: TObject); var Ini : TIniFile; filename : String; begin Ini.Free; SaveDialog1.Execute (); filename := SaveDialog1.FileName; Ini := TInifile.Create (filename); Ini.Writestring ('Benutzer','Vorname',Edit1.Text); Ini.Writestring ('Benutzer','Nachname',Edit1.Text);
showmessage ('Daten wurden erfolgreich gespeichert');
end;
end. |
das ist der code..
den vorschlag habe ich probiert Gleiche fehlermeldung
Er weist mich nach der fehler meldung auf folgenden code zusätzlich.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program saveuopen;
uses Forms, Unit1 in 'Unit1.pas' ;
{$R *.res}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; ->end. |
Lg Marvin
und Danke für die schnellen Antworten
ps. Mein bekannter vermutet das es was mit meinem Betriebssysthem zu tun haben könnte
Windows 7 64 bit
2. vermutung war das vlt sogar der Virus blocker da mitmischen wollte desswegen Kaspersky Abgeschaltet
aber auch das half nichts ...
Moderiert von Gausi: Delphi-Tags hinzugefügt
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 26.08.11 14:14
Dein Bekannter kann auch nicht so gut Delphi, oder?
Der Fehler liegt an dem Ini.Free am Anfang. Du versuchst da etwas freizugeben, was gar nicht existiert, und sowas mag Delphi nicht. Lass das Ini.Free am Anfang weg, dann ist auch der Fehler weg.
Damit ist dann zwar ein Speicherleck entstanden, aber das ist am Anfang ja egal.
Korrekt mit Schutzblock sollte es so aussehen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button2Click(Sender: TObject); var Ini : TIniFile; filename : String; begin if SaveDialog1.Execute then begin Ini := TIniFile.Create(SaveDialog1.FileName); try Ini.Writestring ('Benutzer','Vorname',Edit1.Text); Ini.Writestring ('Benutzer','Nachname',Edit1.Text); showmessage ('Daten wurden erfolgreich gespeichert'); finally Ini.Free; end; end; end; |
Edit: ein "end;" zuwenig
_________________ We are, we were and will not be.
|
|
guinnes
      
Beiträge: 182
Erhaltene Danke: 14
|
Verfasst: Fr 26.08.11 14:15
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button2Click(Sender: TObject); var Ini : TIniFile; filename : String; begin Ini.Free; SaveDialog1.Execute (); filename := SaveDialog1.FileName; Ini := TInifile.Create (filename); Ini.Writestring ('Benutzer','Vorname',Edit1.Text); Ini.Writestring ('Benutzer','Nachname',Edit1.Text);
showmessage ('Daten wurden erfolgreich gespeichert');
end;
end. |
Als allererstes zerstörst du eine noch gar nicht vorhandene TIniFile. Savedialog.Execute ist eine Function, die ein Ergebniss zurückliefert, das wird von dir nicht ausgewertet.
Danach versuchst du auf eine nicht vorhandene IniFile Instanz zuzugreifen
Eigentlich lässt du keinen Fehler aus, den man machen könnet
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Fr 26.08.11 15:52
Hey,
das schreit nach einem Crashkurs^^ Da wird alles was man als Anfänger braucht gut erklärt. Code Bsp. gibts auch genug.
MfG Bergmann.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
Malte1231 
Hält's aus hier
Beiträge: 3
|
Verfasst: Di 30.08.11 01:10
Vielen lieben Dank jetzt haut das hin
Ja den Crashkurs brauche ich unbedingt ^^ bin ja kompletter Delphi Neuling XD
naja mein kumpel hatt das eigentlich gelernt aber manchmal sieht man in den codes nicht durch und dadurch das Delphi xe und Delphi 7 eh manchmal unterschidlich sind kann selbst einem profi mal nen fehler unterlaufen
also Danke noch mal für die Hilfe jetzt funktiniert es einwandfrei ^^
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Di 30.08.11 07:50
Malte1231 hat folgendes geschrieben : |
Ja den Crashkurs brauche ich unbedingt ^^ bin ja kompletter Delphi Neuling XD
|
Gute Einsicht!
Malte1231 hat folgendes geschrieben : |
naja mein kumpel hatt das eigentlich gelernt aber manchmal sieht man in den codes nicht durch und dadurch das Delphi xe und Delphi 7 eh manchmal unterschidlich sind kann selbst einem profi mal nen fehler unterlaufen
|
Sorry, aber kommt die Ausrede der Versionsunterschiede von dem "Profi" ? Das sind ganz banale Anfängerfehler gewesen und jemand der das gelernt hat, sollte das sofort erkennen und erklären können.
Mach den Crashkurs, ich glaub, dann kannste es schon mit dem 'Profi' aufnehmen
Viel Spass beim Delphi lernen 
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 30.08.11 09:33
Hm, ich glaube meine Glaskugel funktioniert wieder so halbwegs. Müssen wohl nur noch ein paar kleine Feinjustierungen vorgenommen werden, dann passt es wieder. 
|
|