Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
Delphi 6-7

Ошибка: List index out of bounds(2)

01.06.2018, 23:40. Показов 5833. Ответов 52
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, ошибка вылетает на end. запуск происходит нормально, но при запуске главной формы и выборе кнопки, происходит переход, а после вылетает эта ошибка. помогите пожалуйста. скорее всего формы не в том порядке, но какой будет правильный
Delphi
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
program Manager;
 
uses
  Forms,
  GlavnUnit1 in 'GlavnUnit1.pas' {Glavn},
  DataModule1 in 'DataModule1.pas' {DataModule2: TDataModule},
  TablUnit1 in 'TablUnit1.pas' {TKlienti},
  O_progeUnit1 in 'O_progeUnit1.pas' {Oproge},
  PoiskUnit1 in 'PoiskUnit1.pas' {Poisk},
  NewKlientUnit1 in 'NewKlientUnit1.pas' {NewKlient},
  NewTovarUnit1 in 'NewTovarUnit1.pas' {NewTovar},
  NewPostav4ikUnit1 in 'NewPostav4ikUnit1.pas' {NewPostav4ik},
  pe4atUnit1 in 'pe4atUnit1.pas' {Pe4atPrixodTovarov},
  TklientiUnit1 in 'TklientiUnit1.pas' {TTovari},
  TprixodUnit1 in 'TprixodUnit1.pas' {TPrixod},
  TrasxodUnit1 in 'TrasxodUnit1.pas' {TRasxod},
  PribilUnit1 in 'PribilUnit1.pas' {OPribil},
  OprixodtovarovUnit1 in 'OprixodtovarovUnit1.pas' {Oprixodtovarov},
  OrasxodTovarovUnit1 in 'OrasxodTovarovUnit1.pas' {ORasxodTovarov},
  pe4atRasxodUnit1 in 'pe4atRasxodUnit1.pas' {Pe4atPasxod},
  Postav4ikUnit1 in 'Postav4ikUnit1.pas' {Postavsh},
  PrixodTovUnit2 in 'PrixodTovUnit2.pas' {TPrixodTov},
  TrasxodTovUnit2 in 'TrasxodTovUnit2.pas' {TrasxodTov},
  Unit2 in 'Unit2.pas' {Avtoriz},
  Unit3 in 'Unit3.pas' {Main},
  Unit4 in 'Unit4.pas' {Rabochie},
  Unit5 in 'Unit5.pas' {SpecRab},
  Unit6 in 'Unit6.pas' {FormUslugi},
  Unit1 in 'Unit1.pas' {FormSpec},
  Unit7 in 'Unit7.pas' {FormDobRab},
  Unit8 in 'Unit8.pas' {FormBrigads},
  Unit9 in 'Unit9.pas' {FormBR},
  Unit10 in 'Unit10.pas' {FormGrafik},
  Unit11 in 'Unit11.pas' {Admin},
  Unit12 in 'Unit12.pas' {Spravka},
  Unit13 in 'Unit13.pas' {FormSmeta};
 
{$R *.res}
 
begin
  Application.Initialize;
    Application.CreateForm(TDataModule2, DataModule2);
  Application.CreateForm(TAvtoriz, Avtoriz);
  Application.CreateForm(TMain, Main);
  Application.CreateForm(TRabochie, Rabochie);
  Application.CreateForm(TSpecRab, SpecRab);
  Application.CreateForm(TFormUslugi, FormUslugi);
  Application.CreateForm(TFormSpec, FormSpec);
  Application.CreateForm(TFormDobRab, FormDobRab);
  Application.CreateForm(TFormBrigads, FormBrigads);
  Application.CreateForm(TFormBR, FormBR);
  Application.CreateForm(TFormGrafik, FormGrafik);
  Application.CreateForm(TAdmin, Admin);
  Application.CreateForm(TSpravka, Spravka);
  Application.CreateForm(TFormSmeta, FormSmeta);
  Application.CreateForm(TGlavn, Glavn);
  Application.CreateForm(TTKlienti, TKlienti);
  Application.CreateForm(TOproge, Oproge);
  Application.CreateForm(TPoisk, Poisk);
  Application.CreateForm(TNewKlient, NewKlient);
  Application.CreateForm(TNewTovar, NewTovar);
  Application.CreateForm(TNewPostav4ik, NewPostav4ik);
  Application.CreateForm(TPe4atPrixodTovarov, Pe4atPrixodTovarov);
  Application.CreateForm(TTTovari, TTovari);
  Application.CreateForm(TTPrixod, TPrixod);
  Application.CreateForm(TTRasxod, TRasxod);
  Application.CreateForm(TOPribil, OPribil);
  Application.CreateForm(TOprixodtovarov, Oprixodtovarov);
  Application.CreateForm(TORasxodTovarov, ORasxodTovarov);
  Application.CreateForm(TPe4atPasxod, Pe4atPasxod);
  Application.CreateForm(TPostavsh, Postavsh);
  Application.CreateForm(TTPrixodTov, TPrixodTov);
  Application.CreateForm(TTrasxodTov, TrasxodTov);
  Application.Run;
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2018, 23:40
Ответы с готовыми решениями:

Ошибка List index out of bounds (8)
Здравствуйте уважаемые форумчане. Подскажите где я неправ- при использовании кода вылетает Ошибка List index out of bounds (8) (ну...

Ошибка List index of bounds(10)
procedure TForm1.CreateDiagramm; var SER: TLineSeries; i,j,Temp: integer; Color: TColor; Max: Real; begin ...

Ошибка: list index out of bounds 12
Здраствуйте, в общем вот такая вот проблемка...

52
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
02.06.2018, 19:36
Студворк — интернет-сервис помощи студентам
сколько прелести в одном флаконе
я даже не пожалел времени и вычистил формы с QuickReport из проекта, чтобы запустить на 10.1

начнем с того, что вирус и правда есть. тот самый Induc, который как оспа, никто из ныне живущих уже и не видел.
Хотите посмотреть - вилькоммен зи! У нас есть его! )))

потом 100 раз посмотрел чудесное окно про путь к БД. прикрепил. ясно, таблицы они же все открыты и хотят любви коннекта
ведь тут на форуме всего раз в неделю эту тему обсасывают
блаблабла указывать путь к базе и все такое
Путь к БД

в свете вышесказанного - вишенка на торте.
если даже путь к БД правильно настроить кодом, то мне теперь нужно открывать все датасеты, которые автор считает что открываются сами...

потом чесал репу, почему TDatamodule2 находится в файле Datamodule1.pas (!) а например Main:TMain - в Unit3.pas (!!)
враги. вокруг враги. надо шифроваться!

потом дивился странному использованию DBLookupCombo
ну да бог с ним.. прорвался.
ах да, главное окно открывается у меня посередине двух экранов ))

нажимаем Бригады и ! бах
вылетаем нафиг на END. END В DPR, КАРЛ!
Все как указано у автора ))))

Но мы же знаем секретную кнопку F8. Ее использование строго запрещено Гаагской конвенцией, но ставки слишком высоки)))

Короче. Часики-то тикают. На форме, которую мы даже не показали, работает таймер. Ведь в каждой форме у настоящего профессионала в статусной строке должны быть текущая дата и время.

Убрал.
Стартует канешн.
Но дорогой автор, это беда...
Вот вам почитать на ночь
https://www.cyberforum.ru/blog... g4873.html
https://www.cyberforum.ru/blog... g4874.html
https://www.cyberforum.ru/blog... g4884.html
Миниатюры
Ошибка: List index out of bounds(2)  
1
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
02.06.2018, 19:47  [ТС]
krapotkin, ничего не поняла, кроме сарказма и иронии, спасибо и на этом
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
02.06.2018, 19:57
Лучший ответ Сообщение было отмечено Евгения01 как решение

Решение

вот manager.dpr
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
begin
  Application.Initialize;
  Application.CreateForm(TDataModule2, DataModule2);
  Application.CreateForm(TMain, main);
  Application.Run;
end

главная форма
Кликните здесь для просмотра всего текста
Delphi
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
procedure TMain.FormCreate(Sender: TObject);
var
  f:TAvtoriz;
begin
  Application.OnHint := DisplayHint;
  f:=TAvtoriz.Create(nil);
  try
    if f.showmodal=mrOK then
    begin
      if not CheckLogin(f) then
        Application.Terminate;
    end
    else
    begin
        Application.Terminate;
    end;
 
  finally
    f.Free;
  end;
end;
procedure TMain.Button7Click(Sender: TObject);
begin
  FormBrigads := TFormBrigads.Create(Application);
  FormBrigads.Show;
  Hide;
end;

форма с бригадами
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
procedure TFormBrigads.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  main.Show;
  action:=caFree;
end;
1
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
02.06.2018, 20:04  [ТС]
krapotkin,
Delphi
1
CheckLogin
ошибка, где его объявить и вопрос два, так для каждой формы
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
02.06.2018, 20:12
объясняю на пальцах
1. вы отдаете свой проект, чтобы кто-то с ним разбирался.
но в таком виде его ковырять очень неприятно
ничего не подписано. все рассчитано только на выполнение исключительно на вашем компьютере, на вашей делфи и на вашей ОС. Все стандарты и best practices пишутся как раз в расчете на то, что ваш код будет после вас читать другой человек
2. формы не должны создаваться все разом при старте программы.
нужно - создали. не нужно - удалили
3. если рассматривать этот проект как обучение работе с БД в Делфи, то это набор всего, что нельзя ни при каких условиях делать в программе.
Использование TADOTable.
Ужасная верстка форм, ни одной резиновой формы, предназначенной для запуска на произвольном разрешении экрана.
Все юниты перекрестно ссылаются друг на друга.

А то, что вам нужно реально понять, приведено в ссылках в моем посте.

Посмотрите код, который я прислал в #23. Понятно ли, что я сделал и для чего?

Добавлено через 4 минуты
опс, сорри, CheckLogin забыл вписать...
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
function TMain.CheckLogin(Avtoriz:TAvtoriz):boolean;
begin
  Result := (Avtoriz.Edit1.Text=DataModule2.Avtoriz.FieldByName('Password').Value)
  and (Avtoriz.DBLookupComboBox1.Text='Администратор');
   N18.Enabled:=Result;
   N13.Enabled:=result;
   Button5.Enabled:=result;
   Button7.Enabled:=Result;
   Show;
end;

это то , что раньше сидело на кнопке Вход в систему в форме авторизации
но этому там вовсе не место
авториз теперь просто такой
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
type
  TAvtoriz = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    DBLookupComboBox1: TDBLookupComboBox;
    Edit1: TEdit;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
 
implementation
 
{$R *.dfm}
 
end.

первая кнопка получила в дизайнере ModalResult = mrOk
вторая ModalResult = mrCancel

все это описано в статье про логин

Добавлено через 2 минуты
про второй вопрос не понял точно
если он про создание каждой формы по требованию то да
это написано в статье про формы
1
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
02.06.2018, 20:22  [ТС]
krapotkin,
Миниатюры
Ошибка: List index out of bounds(2)  
0
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
02.06.2018, 20:28  [ТС]
krapotkin, резиновый дизайн пыталась, но не поняла, как перемещать программно кнопки
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
02.06.2018, 22:23
резиновый дизайн это когда все посажено на панели и у панелей выставлено свойство Align

в ООООЧЕНЬ исключительных случаях требуется при запуске формы выставить значения программно

Добавлено через 3 минуты
у модуля есть два Uses
один в разделе interface, другой - в implementation

если другой модуль используется в разделе interface, то и вставлять его надо в interface, а ссылка на модуль, где сидит TAvtoriz, у вас в нижнем uses. Переместите вверх
0
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
02.06.2018, 22:41  [ТС]
krapotkin, та же ошибка, во всех других формах заменила на создание, спасибо помогло
Миниатюры
Ошибка: List index out of bounds(2)  
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
02.06.2018, 23:04
зачем этот скриншот ?
я просил в верхний USES из нижнего переместить юнит, где объявлен класс TAvtoriz
от вас соответственно требуется узнать, что это за юнит, выполнить перемещение
и вот тогда показать код, без всяких фотографий, текстом, верхнего и нижнего USES
до этого момента я буду совершенно уверен, что вы не сделали то, что я говорил
0
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
02.06.2018, 23:20  [ТС]
krapotkin,
Delphi
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
unit Unit3;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, shellapi, jpeg, ExtCtrls, Comobj, ComCtrls, XPMan;
 
type
  TMain = class(TForm)
    Image1: TImage;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N2: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N3: TMenuItem;
    N5: TMenuItem;
    N4: TMenuItem;
    N13: TMenuItem;
    Button1: TButton;
    Button2: TButton;
    Button4: TButton;
    Button5: TButton;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    G1: TMenuItem;
    XPManifest1: TXPManifest;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    Button6: TButton;
    Button7: TButton;
    Button3: TButton;
    procedure N4Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure G1Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
  private
    { Private declarations }
  public
 { Public declarations }
   Procedure DisplayHint(Sender: TObject);
  end;
 
var
  Main: TMain;
 
implementation
 
uses GlavnUnit1, Unit4, O_progeUnit1, Unit6, DataModule1, Unit8, Unit10,
  TablUnit1, Unit11, Unit2, Unit1, TklientiUnit1, Postav4ikUnit1,
  OprixodtovarovUnit1, OrasxodTovarovUnit1, Unit12, Unit13;
вот объявлен, Unit2
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
03.06.2018, 00:01
Чувствую, слишком длинные предложения
в верхний USES
Цитата Сообщение от Евгения01 Посмотреть сообщение
interface
uses
* Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
* Dialogs, StdCtrls, Menus, shellapi, jpeg, ExtCtrls, Comobj, ComCtrls, XPMan;
из нижнего
Цитата Сообщение от Евгения01 Посмотреть сообщение
implementation
uses GlavnUnit1, Unit4, O_progeUnit1, Unit6, DataModule1, Unit8, Unit10,
* TablUnit1, Unit11, Unit2, Unit1, TklientiUnit1, Postav4ikUnit1,
* OprixodtovarovUnit1, OrasxodTovarovUnit1, Unit12, Unit13;
переместить юнит, где объявлен класс TAvtoriz
Цитата Сообщение от Евгения01 Посмотреть сообщение
вот объявлен, Unit2
ГДЕ
ВЫ
ПЕРЕМЕСТИЛИ
UNIT2
В ВЕРХНИЙ
USES
????
если вот он в нижнем так и болтается
???????
0
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
03.06.2018, 08:18  [ТС]
krapotkin, кнопки на форме авторизации не появляются

Добавлено через 2 минуты
Delphi
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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
function TMain.CheckLogin(Avtoriz:TAvtoriz):boolean;
begin
  Result := (Avtoriz.Edit1.Text=DataModule2.Avtoriz.FieldByName('Password').Value)
  and (Avtoriz.DBLookupComboBox1.Text='Àäìèíèñòðàòîð');
   N18.Enabled:=Result;
   N13.Enabled:=result;
   Button5.Enabled:=result;
   Button7.Enabled:=Result;
   Show;
end;
 
procedure TMain.DisplayHint(Sender: TObject);
var
  Counter, NumComps: integer;
begin
  with Screen.ActiveForm do
  begin
    NumComps := ControlCount - 1;
    for Counter := 0 to NumComps do
       if (TControl(Controls[Counter]).Name = 'StatusBar1') then
      begin
        if (Application.Hint = '') then
          TStatusBar(Controls[Counter]).Panels[2].Text:= 'No hint'
        else
          TStatusBar(Controls[Counter]).Panels[2].Text:= Application.Hint;
        break;
      end;
  end;
end;
 
 
 
procedure TMain.N4Click(Sender: TObject);
begin
Close;
end;
 
procedure TMain.Timer1Timer(Sender: TObject);
begin
 StatusBar1.Panels[0].Text := FormatDateTime('dd.mm.yyyy', Date);
 StatusBar1.Panels[1].Text := FormatDateTime('hh:mm:ss', Time);
end;
 
procedure TMain.Button7Click(Sender: TObject);
begin
  FormBrigads := TFormBrigads.Create(Application);
  FormBrigads.Show;
  Hide;
end;
 
procedure TMain.Button5Click(Sender: TObject);
begin
 Glavn := TGlavn.Create(Application);
 Glavn.Show;
  Hide;
end;
 
procedure TMain.N8Click(Sender: TObject);
begin
 Rabochie := TRabochie.Create(Application);
 Rabochie.Show;
  Hide;
end;
 
procedure TMain.Button1Click(Sender: TObject);
begin
 Rabochie := TRabochie.Create(Application);
  Rabochie.Show;
  Hide;
end;
 
procedure TMain.N5Click(Sender: TObject);
begin
  Oproge := TOproge.Create(Application);
 Oproge.Show;
  Hide;
end;
 
procedure TMain.Button6Click(Sender: TObject);
begin
FormUslugi := TFormUslugi.Create(Application);
FormUslugi.Show;
  Hide;
end;
 
procedure TMain.Button4Click(Sender: TObject);
begin
FormGrafik := TFormGrafik.Create(Application);
FormGrafik.Show;
  Hide;
end;
 
procedure TMain.Button2Click(Sender: TObject);
begin
TKlienti := TTKlienti.Create(Application);
TKlienti.Show;
  Hide;
end;
 
procedure TMain.N19Click(Sender: TObject);
begin
Admin := TAdmin.Create(Application);
Admin.Show;
  Hide;
end;
 
procedure TMain.N20Click(Sender: TObject);
begin
Avtoriz := TAvtoriz.Create(Application);
Avtoriz.Show;
Avtoriz.Edit1.Clear;
  Hide;
end;
 
procedure TMain.N9Click(Sender: TObject);
begin
 FormBrigads := TFormBrigads.Create(Application);
FormBrigads.Show;
  Hide;
end;
 
procedure TMain.N10Click(Sender: TObject);
begin
FormSpec := TFormSpec.Create(Application);
FormSpec.Show;
  Hide;
end;
 
procedure TMain.N11Click(Sender: TObject);
begin
TTovari := TTTovari.Create(Application);
TTovari.Show;
  Hide;
end;
 
procedure TMain.N12Click(Sender: TObject);
begin
TKlienti := TTKlienti.Create(Application);
TKlienti.Show;
  Hide;
end;
 
procedure TMain.G1Click(Sender: TObject);
begin
Postavsh :=TPostavsh.Create(Application);
Postavsh.Show;
  Hide;
end;
 
procedure TMain.N16Click(Sender: TObject);
begin
Oprixodtovarov.ShowModal;
end;
 
procedure TMain.N17Click(Sender: TObject);
begin
ORasxodTovarov.ShowModal;
end;
 
procedure TMain.N15Click(Sender: TObject);
begin
Main.Hide;
Glavn.Show;
end;
 
procedure TMain.N14Click(Sender: TObject);
begin
Spravka.Show;
end;
 
procedure TMain.Button3Click(Sender: TObject);
begin
FormSmeta := TFormSmeta.Create(Application);
FormSmeta.Show;
  Hide;
end;
 
procedure TMain.N6Click(Sender: TObject);
const
  xlHairline = 1;
  xlThin = 2;
  xlMedium = -4138;
  xlThick = 4;
  xlContinuous = 1;
var
  exApp, exBook, exSh, exRng : OleVariant;
  VArr : Variant;
i, j : Integer;
begin
  exApp := CreateOleObject('Excel.Application');
  exApp.Visible := True;
  exBook := exApp.Workbooks.Add;
  exSh := exBook.Worksheets[1];
  DataModule2.Rabochie.Open;
  exSh.Cells[3, 2].Value := 'Äàòà ñîçäàíèÿ: '
  + FormatDateTime('dd.mm.yyyy"-"hh:nn:ss:zzz', Now);
  exSh.Cells[1, 4].Value := 'Ðàáî÷èå ñòðîèòåëüíîé êîìïàíèè';
  exSh.Cells[1, 4].Font.Size := 16;
  exSh.Cells[1, 4].Font.Bold := True;
  VArr := VarArrayCreate([1, DataModule2.Rabochie.RecordCount + 1, 1,  DataModule2.Rabochie.FieldCount], varVariant);
  exRng := exSh.Range[exSh.Cells[5, 2],
    exSh.Cells[3, 2].Offset[DataModule2.Rabochie.RecordCount,  DataModule2.Rabochie.FieldCount - 1]];
  j := 1;
  for i := 0 to  DataModule2.Rabochie.FieldCount - 1 do
    VArr[j, i + 1] :=  DataModule2.Rabochie.Fields[i].FieldName;
   DataModule2.Rabochie.DisableControls;
  try
     DataModule2.Rabochie.First;
    while not  DataModule2.Rabochie.Eof do
    begin
      Inc(j);
      for i := 0 to  DataModule2.Rabochie.FieldCount - 1 do
        VArr[j, i + 1] :=  DataModule2.Rabochie.Fields[i].Value;
       DataModule2.Rabochie.Next;
    end;
  finally
    DataModule2.Rabochie.EnableControls;
  end;
  exRng.Value := VArr;
  exRng.Borders.LineStyle := xlContinuous;
  exRng.Borders.Weight := xlThin;
  exRng.Rows[1].Font.Bold := True;
  exRng.Rows[1].Borders.Weight := xlMedium;
  exRng.Columns.AutoFit;
end;
 
procedure TMain.N7Click(Sender: TObject);
const
  xlHairline = 1;
  xlThin = 2;
  xlMedium = -4138;
  xlThick = 4;
  xlContinuous = 1;
var
  exApp, exBook, exSh, exRng : OleVariant;
  VArr : Variant;
i, j : Integer;
begin
  exApp := CreateOleObject('Excel.Application');
  exApp.Visible := True;
  exBook := exApp.Workbooks.Add;
  exSh := exBook.Worksheets[1];
  DataModule2.Klient.Open;
  exSh.Cells[3, 2].Value := 'Äàòà ñîçäàíèÿ: '
  + FormatDateTime('dd.mm.yyyy"-"hh:nn:ss:zzz', Now);
  exSh.Cells[1, 4].Value := 'Îáúåêòû ñòðîèòåëüíîé êîìïàíèè';
  exSh.Cells[1, 4].Font.Size := 16;
  exSh.Cells[1, 4].Font.Bold := True;
  VArr := VarArrayCreate([1, DataModule2.Klient.RecordCount + 1, 1,  DataModule2.Klient.FieldCount], varVariant);
  exRng := exSh.Range[exSh.Cells[5, 2],
    exSh.Cells[3, 2].Offset[ DataModule2.Klient.RecordCount,  DataModule2.Klient.FieldCount - 1]];
  j := 1;
  for i := 0 to  DataModule2.Klient.FieldCount - 1 do
    VArr[j, i + 1] :=  DataModule2.Klient.Fields[i].FieldName;
   DataModule2.Klient.DisableControls;
  try
    DataModule2.Klient.First;
    while not  DataModule2.Klient.Eof do
    begin
      Inc(j);
      for i := 0 to  DataModule2.Klient.FieldCount - 1 do
        VArr[j, i + 1] :=  DataModule2.Klient.Fields[i].Value;
       DataModule2.Klient.Next;
    end;
  finally
    DataModule2.Klient.EnableControls;
  end;
  exRng.Value := VArr;
  exRng.Borders.LineStyle := xlContinuous;
  exRng.Borders.Weight := xlThin;
  exRng.Rows[1].Font.Bold := True;
  exRng.Rows[1].Borders.Weight := xlMedium;
  exRng.Columns.AutoFit;
end;
 
procedure TMain.FormCreate(Sender: TObject);
var
  f:TAvtoriz;
begin
  Application.OnHint := DisplayHint;
  f:=TAvtoriz.Create(nil);
  try
    if f.showmodal=mrOK then
    begin
      if not CheckLogin(f) then
        Application.Terminate;
    end
    else
    begin
        Application.Terminate;
    end;
 
  finally
    f.Free;
  end;
end;
вот вся форма main
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
03.06.2018, 09:54
мы точно о форме авторизации говорим?
вот скрин

а строка 9 у вас лишняя. случайно осталась у меня в checklogin. надо убрать
Миниатюры
Ошибка: List index out of bounds(2)  
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
03.06.2018, 09:58
через пару часов вернусь, продолжу смотреть, что там
0
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
03.06.2018, 10:00  [ТС]
krapotkin, да у меня всё так же, нажимаю на кнопку, никаких действий, отключила ее пока (форму)
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
03.06.2018, 12:45
короче, там есть такое бесовство
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TMain.FormCreate(Sender: TObject);
...
  Application.OnHint := DisplayHint;
 
...
procedure TMain.DisplayHint(Sender: TObject);
var
  Counter, NumComps: integer;
begin
  with Screen.ActiveForm do
  begin
    NumComps := ControlCount - 1;
    for Counter := 0 to NumComps do
       if (TControl(Controls[Counter]).Name = 'StatusBar1') then
      begin
        if (Application.Hint = '') then
          TStatusBar(Controls[Counter]).Panels[2].Text:= 'No hint'
        else
          TStatusBar(Controls[Counter]).Panels[2].Text:= Application.Hint;
        break;
      end;
  end;
end;
тут соответственно, если на текущей форме есть StatusBar1, то у него обязано быть как мин. 3 панели
если нету, то ошибка

варианты
1. это вообще нужно кому-то ???? может убрать к лешему этот странный функционал ?
2. проверять, вдруг у статус бара нет Panels[2]

Добавлено через 40 секунд
если это исправить, то ошибки не будет
0
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
03.06.2018, 13:05  [ТС]
krapotkin, ошибки изначальной (тема поста) или авторизация пойдет?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
03.06.2018, 13:31
тема поста
про авторизацию давайте какбы заново
я не очень понимаю в чем проблема, и я не тестировал, что вы там делаете
просто формально перенес код и все

вам нужно сделать функцию CheckLogin, чтобы при правильных значениях она давала true
при неправильных False
вот собсно и все
при этом использовать DBLookupCombo я считаю довольно странной идеей
я обычно рекомендую простой комбо
Delphi
1
2
3
4
5
while not MyQuery1.Eof do
    begin
      ComboBox1.Items.Add(MyQuery1.fieldByName('имяполя').AsString);
      MyQuery1.Next
    end;
0
13 / 13 / 5
Регистрация: 29.10.2015
Сообщений: 318
03.06.2018, 16:38  [ТС]
krapotkin, помогите пожалуйста, скинула проект на флешку и открыла на ноутбуке, вылезла эта ошибка Project Project2.exe raised exeption class EOleExeption with message 'Поставщик данных или другая служба вернули состояние E_FAIL'. Process stopped. Use Step or Run to continue
Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.06.2018, 16:38

Ошибка list index out of bounds (0) и с чем ее едят
Есть 2 таблицы заполнены в принципе одинаково, только данные в мемо полях отличаются. 1 таблица в работе нормально работает, 2 выкидывает...

При запросе из 2 таблиц ошибка list index out of bounds 1
Добрый вечер. делаю запрос из двух табли stud и rod. текс программы datamodule2.adoquery2.active:=false; ...

Удаление записи через sql-запрос. Ошибка list index out of bounds (0)
Доброго времени суток, форумчане. Нужна ваша помощь, а именно: после написания данной процедуры все время выскакивает ошибка list index out...

Ошибка при добавлении в БД: "list index out of bounds(0)"
procedure TfmProduct.miAddClick(Sender: TObject); begin fmNewProduct.ShowModal; if fmNewProduct.ModalResult=mrOk then ...

List index out of bounds
вот такой кодик procedure TForm5.Button3Click(Sender: TObject); var zOrb, zKosm, z: integer; begin Edit3.Text:=''; if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru