![]() |
|
|
Регистрация | << Правила форума >> | 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)
|