GetRight своими руками
Спецвыпуск Хакер, номер #004, стр. 004-080-2
Готовимся кодить
Увы, программирование состоит не только из кликанья мышой и редактирования свойств. Приходится и кодить, и сейчас мы вплотную приблизились к этому. Но начнем с простого. Кликни два раза по кнопке "Закрыть". Опа! На экране появилось следующее:
procedure TForm1.Button2Click(Sender: TObject) ;
begin
end ;
и твой курсор мигает между begin и end. Это - обработчик события OnClick для кнопки "Закрыть", и все, что ты напишешь между begin и end, будет выполняться при клике по этой кнопке. А нам нужно, чтобы прога закрывалась, посему пишем
procedure TForm1.Button2Click(Sender: TObject) ;
begin
NMFTP1.Disconnect ; // разрываем связь по фтп, если она установлена
NMHTTP1.Disconnect ; // разрываем связь по хттп, если она установлена
Close ; // Закрываем прогу
end ;
Если не разорвать связь, прога просто откажется выходить. Поэтому и разрываем.
Кстати, после // в Delphi до конца строки идет комментарий, его она не учитывает при компиляции. Комментарии для тебя, чтобы понятнее было, не нужно их переписывать. Обрати внимание, там написано Button2Click, а не "Закрыть" Click. Button2 - это рабочее имя кнопки для взаимодействия с программой (как в вышеописанном примере), а Caption - это всего лишь надпись на кнопке. Все имена компонентов находятся в их свойстве Name, можешь посмотреть в Object Inspector'е. Теперь кликни два раза по первому Edit'у, появляется нечто похожее на обработчик для кнопки:
procedure TForm1.Edit1Change(Sender: TObject) ;
begin
end ;
Тут вместо OnClick мы видим OnChange - все, что находится между begin и end, будет выполняться, когда в Edit'е что-то напишут. Мы изменим Tag (свойство Edit'а, некоторое число, по умолчанию 0), это нам понадобится потом, для проверки заполнения всех полей.
procedure TForm1.Edit1Change(Sender: TObject) ;
begin
Edit1.Tag := 1 ; // присвоить тагу первого эдита значение 1
end ;
Аналогичную операцию необходимо проделать и со вторым эдитом, только там нужно писать:
Edit2.Tag := 1 ;
Не забывай об именах! Вот и все с подготовкой, а теперь начинается...
Реальный кодинг
Да, именно он. Читай внимательнее и вникай. Перейдем к нашей главной кнопке - "Закачать". Кликай по ней два раза и создавай обработчик, далее вписывай код, чтобы получилось вот что:
procedure TForm1.Button1Click(Sender: TObject) ;
begin
Label3.Caption := '' ; // очищаем метку для сообщений
if ( Edit1.Tag = 1 ) and ( Edit2.Tag = 1 ) and ( Edit1.Text <> '' )
and ( Edit2.Text <> '' ) then // проверка данных
begin
// данные введены, выполнять действия
end
else Label3.Caption := 'Введи все данные, чувак!' // не все данные
end ;
Что есть что: сначала очищаем метку, просто присваиваем ее Caption'у пустое место (сначала она, правда, и так пустая, но потом будет полная, поэтому очищаем), затем идет стандартный оператор if then else, используем этот оператор для проверки, все ли поля заполнены - помнишь, мы тагам единицы присваивали? Так вот, теперь и проверяем - если чувак поля не заполнил, то таги - "0", и проверка не пройдет. Но юзверь мог ввести дату, а потом все стереть - вот для этого и нужна проверка значений эдитов на '' - если там пустое место (''), то проверка не пройдет. Дальше просто: если проверка прошла - гоним далее, нет - пишем в метке "Введи все данные, чувак!". Ну как, врубаешься? Если нет, просто пиши код, но все-таки старайся понять.