Autor Beitrag
Malte1231
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ausblenden 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 user profile iconGausi: Code-Tags hinzugefügt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 26.08.11 10:23 
Hallo und :welcome: 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



BeitragVerfasst: Fr 26.08.11 11:55 
:lupe:
Vermutung: Entweder begin und end vergessen oder erst gar keine if-Abfrage gemacht.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if SaveDialog1.Execute then
begin

end;
Malte1231 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 26.08.11 14:05 
ausblenden 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.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
program saveuopen;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$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 user profile iconGausi: Delphi-Tags hinzugefügt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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. :mrgreen:

Korrekt mit Schutzblock sollte es so aussehen:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: Fr 26.08.11 14:15 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Di 30.08.11 07:50 
user profile iconMalte1231 hat folgendes geschrieben Zum zitierten Posting springen:

Ja den Crashkurs brauche ich unbedingt ^^ bin ja kompletter Delphi Neuling XD


Gute Einsicht!

user profile iconMalte1231 hat folgendes geschrieben Zum zitierten Posting springen:

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



BeitragVerfasst: 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. ;)