Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.02.2013, 12:37
Аватар для JunkieBeat
JunkieBeat JunkieBeat вне форума
Прохожий
 
Регистрация: 01.02.2013
Сообщения: 48
Версия Delphi: Delphi7 Lite Ed
Репутация: 10
По умолчанию Project Project1.exe raised exception class EAccessViolation with message

На моментв ызова 2 формы кикает и пишет "Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00456B02 in module 'Project1.exe'. Read of address 000002F4"
Вчера было все нормально,потом что то дописал и походу не так,вроде все снес в коменты что добавлял,но все равно вылетает
Форма 1
Код:
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Menus, ComCtrls,FileCtrl, OleCtrls, SHDocVw,XPMan;
 
type
  TForm1 = class(TForm)
    mmo1: TMemo;
    mm1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Button1: TButton;
    lst1: TListBox;
    cbb1: TComboBox;
    RadioGroup1: TRadioGroup;
    PageControl1: TPageControl;
    PopupMenu1: TPopupMenu;
    N3: TMenuItem;
    TabSheet1: TTabSheet;
    WebBrowser1: TWebBrowser;
    N4: TMenuItem;
    a1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure cbb1Change(Sender: TObject);
    procedure lst1Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure lst1DblClick(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure a1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Put,ServerDir,Choyse,sel,sel2:string;
  kol:integer;
  btn:TButton;
implementation
 
uses
  Unit2;
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var
  ServerAdress:System.text;
begin
  kol:=0;
  Put:='C:\Ñåòåâîå ïîñîáèå\ServerAdress.txt';
  CreateDir('C:\Ñåòåâîå ïîñîáèå');
      Mmo1.Lines.LoadFromFile(Put);   //èñïîëüçîâàíèå äèðåêòîðèè áàçû
      ServerDir:=Mmo1.Lines[0];
      Mmo1.Clear;
      ServerDir:=ServerDir+'\';
      Button1.Click;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  papki:TSearchRec;
begin
  cbb1.Clear;
 if FindFirst(ServerDir+'*',faDirectory,papki) =0 then  //çàãðóçêà âñåõ ïàïîê â Cbb1
 begin
   repeat
      if (papki.Attr and faDirectory)=faDirectory then
      begin
        if (papki.Name<>'.') and  (papki.Name<>'..') then
        begin
          cbb1.Items.Add(papki.Name);
        end;
      end;
   until FindNext(papki) <> 0;
   FindClose(papki);
 end;
 {if cbb1.Items.Count=1
 then cbb1.ItemIndex:=0;}
end;
 
procedure TForm1.cbb1Change(Sender: TObject);
var
  papki:TSearchRec;
begin
  RadioGroup1.Items.Clear;
  sel:=cbb1.Items[cbb1.itemindex];  //âûáðàíûé èòåì cbb1-ãî
  lst1.Clear;
 if FindFirst(ServerDir+sel+'\*',faDirectory,papki) =0 then  //çàãðóçêà âñåõ ïàïîê â ÐàäèîÃðóïïó
  begin
    repeat
       if (papki.Attr and faDirectory)=faDirectory then
       begin
         if (papki.Name<>'.') and  (papki.Name<>'..') and (papki.Name<>'Òåñòû') then
         begin
           RadioGroup1.Items.Add(papki.Name);
         end;
       end;
    until FindNext(papki) <> 0;
    FindClose(papki);
  end;
  {if RadioGroup1.Items.Count=1
  then RadioGroup1.ItemIndex:=0; }
 
end;
 
procedure TForm1.lst1Click(Sender: TObject); 
Begin
PageControl1.Pages[0].Caption:=lst1.Items[lst1.itemindex];
WebBrowser1.Navigate(ServerDir+sel+'\'+sel2+'\'+lst1.Items[lst1.itemindex]+'.mht');//ïðîãðóçêà â áðàóçåð
end;
 
procedure TForm1.RadioGroup1Click(Sender: TObject);
var
sr:TSearchRec;
format:string;
begin
  sel2:=RadioGroup1.Items[RadioGroup1.ItemIndex];  //âûáðàíûé èòåì Ðàäèîãðóïïû
  lst1.Clear;
if FindFirst(ServerDir+sel+'\'+sel2+'\*.mht',faAnyFile,sr) = 0 then  //Ïîèñê ôàéëîâ
 begin
  repeat
    begin
      format:=sr.Name;
      Delete(format,Pos('.mht',format),Length(format));//Îòðåçàåì ôîðìàò
      lst1.Items.Add(format); //âûãðóçêà â ËñòÁ1
    end;
  until FindNext(sr) <> 0;
  FindClose(sr);
 end;
end;
 
procedure TForm1.lst1DblClick(Sender: TObject);
var
NewPage:TTabSheet;
Newbr:TWebBrowser;
cap:string;
begin
  if Kol<10 then
begin
 NewPage:=TTabSheet.Create(Self);   //Ñîçäàíèå âêëàäêè
 NewPage.PageControl:=PageControl1;
 cap:=Lst1.Items[Lst1.ItemIndex];
 Delete(cap,9,Length(cap));
 NewPage.Caption:=cap;
 NewPage.tag:=kol;
 PageControl1.ActivePage:=NewPage;
 Newbr:=TWebBrowser.Create(NewPage);
 TWinControl(Newbr).Parent:=NewPage;
 Newbr.Align:=alClient;
 kol:=kol+1;
 Newbr.Navigate(ServerDir+sel+'\'+sel2+'\'+lst1.Items[lst1.itemindex]+'.mht');//ïðîãðóçêà â áðàóçåð
end;
end;
 
 
 
procedure TForm1.a1Click(Sender: TObject);
begin
Form2.Show;
end;
 
end.
Фома 2
Код:
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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm2 = class(TForm)
    Panel1: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Button1: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    ListBox1: TListBox;
    RadioGroup1: TRadioGroup;
    ComboBox2: TComboBox;
    Label4: TLabel;
    Button2: TButton;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
   Form2: TForm2;
   group,fio,pred,tst:string;
   Nach,Kon,ver,never,kolvop:integer;
implementation
 
uses
  Unit1;
 
{$R *.dfm}
 
procedure TForm2.Button1Click(Sender: TObject);
var
  i:Integer;
begin
  if Edit1.Text<>'' then
  begin
    if Edit2.Text<>'' then
     begin
       if ComboBox2.ItemIndex=0 then
        begin
          fio:=Edit1.Text;           //Çàïèñü äàííûõ
          group:=Edit2.Text;
          pred:=ComboBox2.Items[ComboBox2.ItemIndex];
          Panel1.Visible:=false;    //ñêðûòèå íà÷àëüíîãî îêíà
          Form2.Caption:='Òåìà:'+pred;
          Memo1.Lines.LoadFromFile(ServerDir+ComboBox1.Items[ComboBox1.Itemindex]+'\Òåñòû\'+
          pred+'.txt'); //çàãðóçêà â ìåìî1
          for i:=0 to Memo1.Lines.Count -1 do       //öèêë ñîçäàíèå âîïðîñîâ
           begin
             if Pos('¹',Memo1.Lines[i])<>0 then
             begin
              ListBox1.Items.Add('Âîïðîñ '+inttostr(Listbox1.Items.Count+1));
             end;
             if i=Memo1.Lines.Count -1 then
             begin
               Memo1.Lines.Add('¹'+inttostr(Listbox1.Items.Count+1)); //Äîáàâëåíèå ïóñòîãî âîïðîñà ÷òî áû íå áàãàëñÿ ïîä÷åò
             end;
           end;   //ñîçäàëè âîïðîñû
           {kolvop:=ListBox1.Items.Count;
           label7.Caption:='Îñòàëîñü:'+inttostr(kolvop)+' âïîðîñîâ'; }
        end
       else
        begin
         ShowMessage('Óêàæèòå òåìó');
        end;
     end
    else
     begin
      ShowMessage('Óêàæèòå ãðóïïó');
     end;
  end
  else
  begin
    ShowMessage('Çàïîëíèòå ïîëå Ô.È.Î.');
  end;
end;
 
procedure TForm2.FormActivate(Sender: TObject);
var
  papki:TSearchRec;
begin
 if FindFirst(ServerDir+'*',faDirectory,papki) =0 then  //çàãðóçêà âñåõ ïðåäìåòîâ â Cbb1
 begin
   repeat
      if (papki.Attr and faDirectory)=faDirectory then
      begin
        if (papki.Name<>'.') and  (papki.Name<>'..') then
        begin
          ComboBox1.Items.Add(papki.Name);
        end;
      end;
   until FindNext(papki) <> 0;
   FindClose(papki);
 end;
 {if ComboBox1.Items.Count=1
 then ComboBox1.ItemIndex:=0;}
end;
 
procedure TForm2.ComboBox1Change(Sender: TObject);
var
  tema:TSearchRec;
begin     //çàãðóçêà òåñòîâ â ñáá2
ComboBox2.Items.Clear;
if FindFirst(ServerDir+ComboBox1.Items[ComboBox1.Itemindex]+'\Òåñòû\*.txt',faAnyFile,tema) =0 then
  begin
    repeat
     if (tema.Name<>'.') and  (tema.Name<>'..') then
       begin
         Delete(tema.Name,Pos('.txt',tema.Name),Length(tema.Name));
        ComboBox2.Items.Add(tema.Name);
       end;
    until FindNext(tema) <> 0;
    FindClose(tema);
  end;
 { if ComboBox2.Items.Count=1
  then ComboBox2.ItemIndex:=0;}
end;
 
procedure TForm2.ListBox1Click(Sender: TObject);
var
  vopN,vopk,vr,vb:string;
  i,j,z:integer;
begin
  Memo2.Clear;
  RadioGroup1.Items.Clear;
  vopN:='¹'+inttostr(ListBox1.ItemIndex+1);
  vopk:='¹'+inttostr(ListBox1.ItemIndex+2);
 for i:=0 to memo1.Lines.count-1 do
 begin
   if Pos(vopN,Memo1.Lines[i])<>0 then  //íà÷àëî âûäåëåííîãî âîïðîñà
   begin
    Nach:=i;
   end;
   if Pos(vopk,Memo1.Lines[i])<>0 then //ñëåäóþùèé âîïðîñ
   begin
    kon:=i;
   end;
 end;
 for j:=Nach to Kon-1 do
 begin
   if Pos('@',memo1.Lines[j])<>0 then   //ïðîãðóçêà âàðèàíòîâ îòâåòà â ðã1
    begin
      vr:=memo1.Lines[j];
      Delete(vr,1,1);
      RadioGroup1.Items.Add(vr);
    end
   else
    begin
      Memo2.Lines.Add(Memo1.Lines[j]);  //çàãðóçêà âîïðîñà â ìåìî2
    end;
 end;
  for z:=0 to RadioGroup1.Items.Count-1 do
  begin
    if Pos('`',RadioGroup1.Items[z])<>0 then  //âûðåçàåì èíäèêàòîð ïðàâåëüíî îòâåòà
    begin
      vb:= RadioGroup1.Items[z];
      Delete(vb,Pos('`',vb),1);
      RadioGroup1.Items[z]:=vb;
    end;
  end;
 
end;
 
procedure TForm2.Button2Click(Sender: TObject);
var
  otv:string;
begin  //Ïðîöåäó ïîä÷åòà è ñâåðêè îòâåòà
 kolvop:=kolvop-1;//ïîä÷åò îñòàâøèõñÿ âîïðîñîâ
 otv:=RadioGroup1.Items[RadioGroup1.ItemIndex];
 otv:='@'+otv+'`';
 if Memo1.Lines[Nach+memo2.Lines.Count+RadioGroup1.ItemIndex]=otv
 then Ver:=ver+1
 else Never:=never+1;
 label6.Caption:='Íåâåðíî:'+inttostr(never);
 label5.Caption:='Âåðíî:'+inttostr(ver);
 label7.Caption:='Îñòàëîñü:'+inttostr(kolvop)+' âïîðîñîâ';
end;
 
end.
Ответить с цитированием
  #2  
Старый 09.02.2013, 14:06
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Вызываешь что-то с несозданного объекта.
Весь твой код смотреть лень, но скорее всего где-то конструктор не вызван.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 07.03.2013, 01:00
Аватар для darktmlr
darktmlr darktmlr вне форума
Прохожий
 
Регистрация: 12.07.2010
Адрес: Северодвинск
Сообщения: 19
Версия Delphi: 7, 2010
Репутация: 10
По умолчанию

На такой случай рекомендую почаще запускать программу дабы потом не искать место где выскакивает неизвестная ошибка.
Ответить с цитированием
  #4  
Старый 10.03.2013, 22:22
Аватар для BBBCat
BBBCat BBBCat вне форума
Новичок
 
Регистрация: 10.03.2013
Сообщения: 73
Репутация: 10
Вопрос

N2Click(Sender: TObject) и procedure N3Click(Sender: TObject) объявлены,
но не описаны. Остальное всё работает. В чём проблема-то?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025