Раздел "Каком к верху", посвящён вашим вопросам "Как?". Если ты хочешь задать свой вопрос, то пиши мне сюда Почтальон. Пожалуйста, конкретизируй свои вопросы. Если твои вопросы будут маленькими и конкретными, то они попадут сюда, и ты их увидишь очень скоро. Иначе мне придётся писать отдельную статью, а такого у меня очень много и не известно, когда я напишу тебе ответ.
В каком порядке обрабатываются события при запуске проги?
procedure TMainForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Winhelp(Handle, 'WINHELP.HLP', HELP_QUIT, 0);
end;
Как отключить обработку исключительных ситуаций?
Для этого есть ключ {$I-}. Чтобы снова включить её воспользуйся {$I+}. Например код рассмотренный в предыдущем примере:
procedure TMainForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
{$I-}
Winhelp(Handle, 'WINHELP.HLP', HELP_QUIT, 0);
{$I+}
end;
Если во время закрытия помощи произойдёт ошибка, то она не обработается.
Почему я не могу писать в базе данных на русском?
Если ты используешь Paradox, то установи в настройках драйвер Pdox ANSI Cyrr. Если другую базу, то там должен быть свой кириллический драйвер. Ищи что-нибудь связанное с cyrr.
Почему в MDI приложении, когда я пытаюсь закрыть дочернее окно, оно просто сворачивается? А я хочу, чтобы оно закрывалось.
Для этого тебе нужно обрабатывать событие OnClose у этой дочерней формы. По этому событию тебе передаётся параметр Action. По умолчанию он равен caNone, что и не позволяет закрыть окно. Просто присвой этому параметру значение caFree и окно уничтожиться.
procedure TMainForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
А можно программно изменять раскладку клавиатуры?
Я всегда говорил, что возможно всё, вопрос только во времени. В твоём случае много времени не надо. Воспользуйся функцией WinAPI ActivateKeyboardLayout. У функции два параметра. Первый - константа и может быть HKL_NEXT или HKL_PREV, выбрать следующую или предыдущую раскладку клавиатуры. Второй параметр - флаг, который может быть KLF_REORDER. Для NT флаг может принимать ещё значение KLF_UNLOADPREVIOUS.
Как спрятать приложение, чтобы его не было видно в панеле задач?
По событию OnActivate пишешь:
procedure TForm1.OnActivate(Sender: TObject);
begin
ShowWindow(Handle, SW_HIDE);
end;
Как можно тестировать SQL запросы?
Для этого в Delphi есть убойная вещь - SQL Explorer. Когда ты выбираешь какую-нибудь таблицу, то в правом окне появляются данные. В этом окне есть несколько закладок. Последняя из них "Enter SQL", вот именно там ты можешь набирать и исполнять SQL запросы к выделенной таблице.
Некоторые предпочитают для этой цели Database Desktop.
На сегодня хватит. Мы победили очередные семь часто задаваемых вопроса. Напоминаю, если ты хочешь задать вопрос, то пиши его сюда: Почтальон.