Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Acces Violation


chickenfigt1989 - Di 19.07.11 09:48
Titel: Acces Violation
Hallo,

Wieso bekomm ich hier wenn ich im Mainmenü auf löschen klick eine Access Violation?


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:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, IniFiles, UrlMon, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    MainMenu1: TMainMenu;
    Men1: TMenuItem;
    Neu1: TMenuItem;
    Lschen1: TMenuItem;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Edit16: TEdit;
    Edit17: TEdit;
    Edit18: TEdit;
    Button1: TButton;
    Button2: TButton;
    IdFTP1: TIdFTP;
    procedure Neu1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Lschen1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MeinLabel:TLabel;
implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.Neu1Click(Sender: TObject);
begin
Form2.show;
Form2.Edit1.clear;
Form2.Edit2.clear;
Form2.Edit3.clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
application.Terminate;
end;

procedure TForm1.FormCreate(Sender: TObject);
var 
  ini: TIniFile;
  filename: String;
begin
  UrlDownloadtofile(nil,PChar('http://www.farm-house.de/bigpoint/einstellungen.ini'),PChar(ExtractFilePath(Application.Exename) + 'einstellungen.ini'),0,nil);
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'einstellungen.ini');
if ini.SectionExists('Code1'then
begin
Edit1.Visible:=true;
Edit2.visible:=true;
Edit1.Text:=ini.ReadString('Code1''Code''');
Edit2.Text:=ini.ReadString('Code1''Preis''');
Edit2.Hint:=ini.ReadString('Code1','Hint','');
end;
if ini.SectionExists('Code2'then
begin
Edit3.Visible:=true;
Edit4.visible:=true;
Edit3.Text:=ini.ReadString('Code2''Code''');
Edit4.Text:=ini.ReadString('Code2''Preis''');
Edit4.Hint:=ini.ReadString('Code2','Hint','');
end;
if ini.SectionExists('Code3'then
begin
Edit5.Visible:=true;
Edit6.visible:=true;
Edit5.Text:=ini.ReadString('Code3''Code''');
Edit6.Text:=ini.ReadString('Code3''Preis''');
Edit6.Hint:=ini.ReadString('Code3','Hint','');
end;
if ini.SectionExists('Code4'then
begin
Edit7.Visible:=true;
Edit8.visible:=true;
Edit7.Text:=ini.ReadString('Code4''Code''');
Edit8.Text:=ini.ReadString('Code4''Preis''');
Edit8.Hint:=ini.ReadString('Code4','Hint','');
end;
if ini.SectionExists('Code5'then
begin
Edit9.Visible:=true;
Edit10.visible:=true;
Edit9.Text:=ini.ReadString('Code5''Code''');
Edit10.Text:=ini.ReadString('Code5''Preis''');
Edit10.Hint:=ini.ReadString('Code5','Hint','');
end;
if ini.SectionExists('Code6'then
begin
Edit11.Visible:=true;
Edit12.visible:=true;
Edit11.Text:=ini.ReadString('Code6''Code''');
Edit12.Text:=ini.ReadString('Code6''Preis''');
Edit12.Hint:=ini.ReadString('Code6','Hint','');
end;
if ini.SectionExists('Code7'then
begin
Edit13.Visible:=true;
Edit14.visible:=true;
Edit13.Text:=ini.ReadString('Code7''Code''');
Edit14.Text:=ini.ReadString('Code7''Preis''');
Edit14.Hint:=ini.ReadString('Code7','Hint','');
end;
if ini.SectionExists('Code8'then
begin
Edit15.Visible:=true;
Edit16.visible:=true;
Edit15.Text:=ini.ReadString('Code8''Code''');
Edit16.Text:=ini.ReadString('Code8''Preis''');
Edit16.Hint:=ini.ReadString('Code8','Hint','');
end;
if ini.SectionExists('Code9'then
begin
Edit17.Visible:=true;
Edit18.visible:=true;
Edit17.Text:=ini.ReadString('Code9''Code''');
Edit18.Text:=ini.ReadString('Code9''Preis''');
Edit18.Hint:=ini.ReadString('Code9','Hint','');
end;
end;
procedure TForm1.Lschen1Click(Sender: TObject);
begin
Form3.show;
Form3.CheckBox1.checked:=false;
Form3.CheckBox2.checked:=false;
Form3.CheckBox3.checked:=false;
Form3.CheckBox4.checked:=false;
Form3.CheckBox5.checked:=false;
Form3.CheckBox6.checked:=false;
Form3.CheckBox7.checked:=false;
Form3.CheckBox8.checked:=false;
Form3.CheckBox9.checked:=false;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  IdFTP1.Username := 'xxxxxxx';
  IdFTP1.Password := 'xxxxxxxxxxx';
  IdFTP1.Host := 'xxxxxxxxxxxxxxx';
  IdFTP1.Connect;
  IdFTP1.ChangeDir('xxxxx');
   IdFTP1.ChangeDir('xxxxxxxxxxx');
   IdFTP1.Put(ExtractFilePath(Application.Exename) + 'einstellungen.ini',
  ExtractFileName('einstellungen.ini'));
  IdFTP1.Quit;
  Button1.enabled:=true;
end;

end.


Horschdware - Di 19.07.11 09:55

Ich gebe die Frage zurück: Was glaubst du denn war um das auftreten könnte? Kannst du die Fehlerstelle in obigem Coding ganz grob eingrenzen? Hast du dir Gedanken dazu gemacht? Wenn nein: Thread bitte schliessen


chickenfigt1989 - Di 19.07.11 09:59

Ich weis es ja nicht drum frag ich ja um Hilfe.


Xion - Di 19.07.11 10:03

Also erstmal:
Wenn du Breakpoints setzt, dann siehst du in welcher Zeile der Fehler kommt.

Außerdem machst du bei Löschen nur Sachen auf Form3. Der Code von Form1 bringt uns da nichts. Ich rate mal ins Blaue: Du hast bei deinen Checkboxen ein OnChange oder so definiert, und dort krachts. Es kann natürlich auch im OnShow der Form3 sein.


Horschdware - Di 19.07.11 10:04

Kurz: Du hast wieder einen Quelltext blind hin und herkopiert, dir null Gedanken gemacht und ignorierst immer noch die Empfehlungen hier im Forum, dich mit den Grundlagen zu beschäftigen.

Warum willst du also Hilfe?
Schreib doch in die Jobbörse, dass dir jemand für günstig Geld ein Progrämmchen schreiben soll.

Oder streng selbst deinen Kopf an - dann wird dir auch gerne geholfen


chickenfigt1989 - Di 19.07.11 10:34

Hat sich erledigt dankeschön.
Hab bemerkt das irgendwie Form3 fehlte.

lg