Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Делфи для Новичков. Урок 2 (https://forum.antichat.xyz/showthread.php?t=15474)

~Fenix~ 05.03.2006 16:41

Делфи для Новичков. Урок 2
 
Урок 2

Теперь напишем программу с помощью которой можно изменять название формы.

Для этого из вкладки Стандарт перенесем два элемента:



1 - Edit1

2 - Button1



Свойство Caption кнопки изменим на "Переименовать", а у компонента Увше изменим свойство

Text (из него все удоляем).



Начнем программировать кнопку.

Дважды щелкните на кнопке, помещенной на форме. Откроется окно кода программы.

В нем появиться заготовка процедуры Button1Click. Эта процедура вызываеться при целчке на кнопке,

сделанном во время работы программы.

Теперь находим операторы begin и end; и между ними вставляем вот это form1.Caption:=edit1.Text;

и должно получиться что то похожее вот на это



procedure TForm1.Button1Click(Sender: TObject);

begin

form1.Caption:=edit1.Text;

end;



end.



В строчке form1.Caption:=edit1.Text; указываеться что свойству формы Caption присваиваеться

свойство Text компонента edit1.



На первом этапе это очень важно понять, т.к это основа на мой взгляд.



Домашнее задание:

1. Создайте программу с помощью которой можно изменить цвет формы.

2. Сделайте чтоб при нажатии на кнопку она перемещалась на какоето растояние.





А теперь программа - игра.

Создайте новую форму и перенесите на нее кнопку.

Свойтва задайте следующие:



1. Caption - Нажми меня

2. TabStop - False

3. Visible - False

4. Height - 30

5. Width - 80

6. Left - 10

7. Top - 10

8. TabOrder - 1



Теперь щелкните по форме и задайте значение 300 для свойства формы ClientWidth(Внутренняя ширина)

и значение СlientHeight(Внутренняя высота) значение 200. Чтобы размер окна нельзя

было изменить в ходе работы программы, задайте для свойства BorderStyle(Тип границы) значение bsSingle(Тонкая).

Создаем кнопку для выхода. Перенесите кнопку на форму и задайте следующие свойства:



1. Caption - Выход

2. TabOrder - 0

3. Default - True

4. Height - 30

5. Width - 80

6. Left - 110

7. Top - 160



Теперь откройте вкладку на панели инструментов System и найдите на ней компонент Timer и перенесите его на форму.

Этот компонент не будет виден при работе программы.

Теперь изменим его свойства:



1. Interval - 500



Теперь приступим к программированию.

Клацните по компоненту timer1 дважды, и создастся процедура событий таймера.

Перед begin напишите var i:integer; после begin напишите



i:=Random(9);

Button1.Visible:=True;

Button1.Top:=10+50*(i div 3);

Button1.Left:=10+100*(i mod 3);



и у вас должно получиться вот так:



procedure TForm1.Timer2Timer(Sender: TObject);

var

i:integer;

begin

i:=Random(9);

Button1.Visible:=True;

Button1.Top:=10+50*(i div 3);

Button1.Left:=10+100*(i mod 3);

end;



А теперь программируем прыгающую кнопку.

Дважды щелкните на ней - и система Delphi создаст процедуру Button1Click для

обработки щелчка на прыгающей кнопке.

Если такой щелчок произошел, значит, игра закончилась победой.



Так

В обработчике событий напишите следующее



Button1.Caption:='Готово';

Button1.Enabled:=False;

Timer1.Enabled:=false;



Теперь клацнете по кнопке закрыть два раза и напишите там просто Close;

И еще надо сделать так, чтобы случайные числа не повторялись. Для этого

надо создать процедуру обработки загрузки формы FormCreate. В Object Inspector

перейдите на вкладку Events и клацните два раза OnCreate и там напишите следующее



Randomize;



Вот и все таперь весь код программ:





procedure TForm1.Button1Click(Sender: TObject);

begin

Button1.Caption:='Готово';

Button1.Enabled:=False;

Timer1.Enabled:=false;

end;



procedure TForm1.Timer1Timer(Sender: TObject);

var

i:integer;

begin

i:=Random(9);

Button1.Visible:=True;

Button1.Top:=10+50*(i div 3);

Button1.Left:=10+100*(i mod 3);

end;



procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;





Вот и все попробуйте сделать кнопку быстрее и медленнее.

ascas 05.03.2006 16:46

Да это уже не для новичков, а для полных чайников, и при малейшем желании самому в чем то разобраться, этому можно научится самому

tclover 05.03.2006 16:57

Цитата:

Да это уже не для новичков, а для полных чайников, и при малейшем желании самому в чем то разобраться, этому можно научится самому
Ну и пусть для чайников. Хоть для самоваров. Как сказал один чувак :) - "Учиться x 3". Кому то поможет и это.
А пожелание автору - пиши статьи размером побольше.

gadjet 05.03.2006 17:01

Где-то я видел подобную программу(игра), возможно в моей первой книжке по делфи (ох, как давно это было...). Есть замечание по статье: в тексте просто описывается последовательность действий, новичку будет непонятно, что, откуда и куда.

~Fenix~ 05.03.2006 20:46

Посибо всем кто откликнулся, очень блогодарен вам, прорамму с прыгающей кнопкой придумал не я. И в дальнейших статьях будут прогаммы которые не я придумал, я лишь стараюсь обьяснить их действие

gadjet 05.03.2006 21:24

Цитата:

я лишь стараюсь обьяснить их действие
Рекомендация: старайся объяснить, чтобы было новичкам понятно. А так, респект за труды.

Jonathan Allen 05.03.2006 21:42

Где скачать Делфи? Google друг, но он безсилен.

А вотбще-то хотелось бы увидеть статью немного иначе написанную для новичков. Например: "End делает то-то, то-то.... ";" - то-то, то-то.... "String" -то-то, "WideString" итд...

KEZ 05.03.2006 21:53

String - строка
WideString - дикая строка
End делает конец
; посмотри в учебнике русского языка

Делфи скачать нельзя, его вообще нету. Это прикол!

Tem 05.03.2006 22:13

Ну хоть дай сылку на прогу с которой работают, ото я в Делфи не силён, вот и незнаю где эту прогу достать.

Jonathan Allen 05.03.2006 22:16

Цитата:

Сообщение от KEZ
String - строка
WideString - дикая строка
End делает конец
; посмотри в учебнике русского языка

Делфи скачать нельзя, его вообще нету. Это прикол!

Можно повесить в "обьявления", с пометкой "пример флуда".

Если по существу сказать нечего, то в brain.dll необходимо выставить параметр "Silent = True".


Время: 11:17