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", и проверка не пройдет. Но юзверь мог ввести дату, а потом все стереть - вот для этого и нужна проверка значений эдитов на '' - если там пустое место (''), то проверка не пройдет. Дальше просто: если проверка прошла - гоним далее, нет - пишем в метке "Введи все данные, чувак!". Ну как, врубаешься? Если нет, просто пиши код, но все-таки старайся понять.

Назад на стр. 004-080-1  Содержание  Вперед на стр. 004-080-3

ttfb: 2.7060508728027 ms