![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте, я немного извращенец, просто уже задолбался, пишу я программу для подключения сетевых хранилищ, как только не пытался, закончилось все с базой данных на основе ADO, в базе 2 таблицы одна основная куда записывается информация, в другую пишется результат сложения ячеек в одну строку, при открытии срабатывает Access Violation в Oncreate находится цикл для подключения дисков которые находятся в бд. вот код:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
index:integer;
begin
index:=3;
DataModule3.adoTable2.First;
for i:=0 to DataModule3.ADOTable2.RecordCount-1 do
begin
WinExec(Pansichar(DataModule3.ADOTable2exec.Text),SW_HIDE);
inc(index);
DataModule3.ADOTable2.Next;
end;
end;Что я делаю не так? Последний раз редактировалось true, 15.12.2012 в 14:02. |
|
#2
|
||||
|
||||
|
На момент создания главной формы датамодуль еще не создан. Вот и валится. Делай выводы.
|
|
#3
|
|||
|
|||
|
Спасибо, исправил, есть еще один вопрос, есть код для авторизации:
Код:
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
....
const
InputBoxMessage = WM_USER + 200;
private
procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage;
{ Private declarations }
procedure TForm1.InputBoxSetPasswordChar(var Msg: TMessage);
var
hInputForm, hEdit, hButton: HWND;
begin
hInputForm := Screen.Forms[0].Handle;
if (hInputForm <> 0) then
begin
hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil);
{
// Change button text:
hButton := FindWindowEx(hInputForm, 0, 'TButton', nil);
SendMessage(hButton, WM_SETTEXT, 0, Integer(PChar('Cancel')));
}
SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
s:string;
begin
PostMessage(Handle, InputBoxMessage, 0, 0);
s:= InputBox('Авторизация', 'Введите пароль к программе:', '');
if s<>'22085641'
then begin
ShowMessage('Неверный пароль');
halt;
end
else
ShowMessage('Вы удачно авторизовались!');
end;
программа загружается и сворачивается в трей, если два раза щелкнуть то вылазиет инпутбокс но вместе с формой, как сделать что форма при этом не открывалась? |
| Этот пользователь сказал Спасибо true за это полезное сообщение: | ||
OTVET2 (18.01.2013)
| ||