Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 6
Всего онлайн: 6
Зарегистрировано юзеров: 5860
Комментариев на сайте: 626
Новый юзер: Craigwoult



Последние комментарии
c
s1t1n прокомментировал "Урок 9 - Экспорт .3DS модели из 3DS max 2009 в OpenGL":
Отлично.
niaz-gtn прокомментировал "Урок 71 - Работа с сжатыми файлами":
7z.dll - приложите.



Мы в соцсетях
c
Delphi
Урок 2 - Переменные и их типы

  Продолжаем наше обучение! В Delphi очень важную роль играют переменные. В процессе работы программы в переменных можно как хранить так и извлекать информацию. Переменные могут иметь разный тип. Например для того, чтобы в переменную записать какой-нибудь текст используется тип String. Для того, что бы записать в переменную число используют тип Integer.

Вот список основных типов переменных в Delphi:

  • Integer - целые числа из диапазона: -2147483648..+2147483647
  • Shortin - целые числа из диапазона: -128..+127
  • Byte - целые числа из диапазона: 0..+255
  • Real - как целые так и дробные числа из диапазона: 5e-324..1.7e+308
  • Double - схож с типом Real
  • String - строковый тип данных
  • Char - символьный тип данных
  • Bollean - логический тип данных. Может принимать значение True - истина или False - ложь
С теорией мы закончили, теперь давайте откроем Delphi 7 и создадим новый проект. После этого кидаем на форму знакомый нам компонент Button и еще не знакомый Label. Компонент Label эта такая полезная вещь, в которую можно записать какую-нибудь подпись. Например подпись для другого компонента или просто записать в него автора программы. Попробуйте отыскать компонент Label сами, наводя на все компоненты в вкладке Standard и читая всплывающую подсказку. Кому сложно найти, то это четвертый компонент слева, не считая значка курсора.

Я всё сделал и у меня получилось вот так:

Лабел и батон на форме


Сейчас нам нужно создать событие OnClick на кнопке, я надеюсь, что вы помните, как это делать.
Переменные объявляются между ключевыми словами procedure и begin. Объявление начинается с ключевого слова var, потом пишется имя переменной и через двоеточие её тип. Заканчивается все как всегда точкой с запятой.

  Создадим переменную S типа String в процедуре OnClick:
procedure TForm1.Button1Click(Sender: TObject);
var S:string;
begin

end;
После этого между ключевыми словами begin end присвоим переменной значение равное 'Моя первая переменная'. Присвоение пишется следующим образом. Пишем имя переменной, оператор присвоения := и значение. Если мы записываем информацию типа String, то информация заключается в одинарные кавычки.

Общий вид:
procedure TForm1.Button1Click(Sender: TObject);
var S:string;
begin
S:='Моя первая переменная';
end;
Теперь если скомпилировать программу и нажать на кнопку ничего существенного не произойдет, просто в переменную запишется значение и всё. Попробуем вывести значение из переменной. Делается это также просто как и записывается. Выводить значение мы будем в наш Label.

Синтаксис такой:
Label1.Caption:=S;
Разберем этот код подробно. Сначала мы написали Label1, потом пишем точку и в Delphi появляется огромный список со свойствами данного компонента. Можно конечно порыться и отыскать там Caption, но мы будем умнее! Мы, после того как поставили точку, напишем еще букву C и Delphi как бы отсортирует все свойства и найдет все, которые начинаются с буквы C. Первым в списке как раз будет свойство Caption.

Label1.C


Выбираем его из списка и нажимаем на Enter. Заметьте, что мы писали Label1.C, но после того, как нажали Enter, Delphi сам дописал название свойства. Далее опять же идет оператор присвоения и наша переменная.

Вы наверняка спросите: "Зачем же переменная, если можно было написать Label1.Caption:='Моя первая переменная';?". Ответ простой. Это нужно затем, что мы изучаем переменные :).
Нет, на самом деле так присваивать тоже можно, но представьте такую ситуацию, что вы написали очень большую, популярную программу и у вас, там в программе, пятидесяти компонентам присваивается одно и тоже значение и вот перед вами встала задача: "Поменять это значение на более универсальное и понятное для пользователя".

Что вы будете делать?
  • В первом случае у вас всем этим компонентам присваивается одна и та же переменная и чтобы изменить всем этим пятидесяти компонентам значение вам просто нужно поменять значение в переменной.

  • Во втором случае вы сидите 20 минут и всё копируете и копируете значение всем пятидесяти компонентам.
Вывод делайте сами.

И так, продолжаем! В общем виде должно быть так:
procedure TForm1.Button1Click(Sender: TObject);
var S:string;
begin
S:='Моя первая переменная';
Label1.Caption:=S;
end;
Компилируем нашу программу и нажимаем на Button (батон/кнопку). Сразу же компонент Label вместо Label1 будет показывать Моя первая переменная.

На этом хотелось бы закончить, так как я уже устал писать урок :), но я еще не познакомил вас с типом Integer и как присваивать переменную с таким типом. Вы думаете, что присваивать ее нужно точно так же как и переменную типа String, но вы ошибаетесь.
Дело в том, что свойству Caption вообще у всех компонентов можно присвоить только текстовые значения. Как мы будем присваивать числовой тип если можно только текстовой? Всё проще некуда. Между типами переменных можно как бы переключаться, то есть можно из числового типа сделать текстовой и присвоить его компоненту Label. Этим мы сейчас и займемся.

Для начала нужно начать сначала :). Объявим переменную с именем I и типом Integer, дописав ее к переменной S. Код:
procedure TForm1.Button1Click(Sender: TObject);
var S:string;  I:integer;
begin
...
Далее присвоим переменной I значение 21.
I:=21;
Заметьте, что числовое значение записывается без одинарных кавычек! Теперь присвоим свойству Caption значение переменной I, для этого нужно воспользоваться оператором IntToStr(). Он как бы конвертирует числовой тип в текстовой. В скобках указывается переменная, которую нужно конвертировать.

Общий вид кода:
procedure TForm1.Button1Click(Sender: TObject);
var S:string;  I:integer;
begin
S:='Моя первая переменная';
Label1.Caption:=S;

I:=21;
Label1.Caption:=IntToStr(I);
end;
Скомпилируйте программу и вы увидите, что Label будет отображать значение переменной I, то есть 21.

Ну вот и всё! Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 22 Апреля 2012
Просмотров:

Урок 1 - открываем Delphi, рассматриваем окна, создаем нашу первую программу! Урок 3 - Конструкция IF...THEN...ELSE

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: SyGaK [Новичок] Дата: 2012-10-05
Неплохо, единственный учебник который мне понравился так это ваш сайт




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-08
Админ, вот как будет выглядеть такой код: Решил написать склейщик слов. Добавил 3 мемо и один едит. Присвоил мемо значение стринг, а едит мерменную чар. Как будет выглядеть код. Вот как я считаю, но у меня не получается. memo1.Lines (memo1 - это название переменной)+edit1.text+memo2.Lines= Memo3.Lines что в этой конструкции не так? Извини, но пишу на скорую руку, надесюь ты поймешь




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-10-10
Ты хочешь склеить слова из первого, второго мема и из эдита в третий мемо? Тогда я думаю так: Memo3.Lines.Add(Memo1.Lines.Text + Edit1.Text + Memo2.Lines.Text);




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-11
Да именно так. Но едит - это делимитер. То есть допустим в Memo1 логины, а в Memo2 пароли. И я хочу чтобы между ними стоял либо : либо ; В едит мы пишем любой разделитель который будет разделять слова мемо1 и мемо2




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-10-11
А, то есть тебе по строчно надо? тогда вот так:
Var
I: Integer;
begin
For I:=0 to Memo1.Lines.Count-1 do
Begin
Memo3.Lines.Add(Memo1.Lines.Strings[i] + Edit1.Text + Memo2.Lines.Strings[i]);
End;




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-11
Спасибо. Классно у тебя получается Дай пожалуйста ссылки на литературу которую ты читал. Буду учиться




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-14
Кстати. Как ещё сделать чтобы к каждой линии в Мемо1 склеивались все линии из Мемо2?




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-10-16
var
i:integer;
begin
for i:=0 to memo1.Lines.Count-1 do
memo1.Lines.Strings[i] := memo1.Lines.Strings[i] + memo2.Lines.Strings[i];




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-21
Не, в смысле: допустим в Мемо1 я написал "Admin", а в Мемо2 "pass password 12345 qwerty. И в Мемо3 выводится: admin (разделитель) pass admin (разделитель) password admin (разделитель) olol admin (разделитель) 12345 admin (разделитель) qwerty




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-10-21
Ну и что сложного?
var
i: integer;
a: string;
begin
a:=' Разделитель ';
for i:=0 to memo2.Lines.Count-1 do
memo3.Lines.add( memo1.Lines.Strings[0] + a + memo2.Lines.Strings[i]);




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-21
Да. Но когда она закончит подставлять всем из мемо2 к мемо1, она будет переключаться на следующую строчку мемо1 и опять прибавлять к ней мемо2




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-10-21
var
i,i2,b: integer;
a: string;
begin
a:=' Разделитель ';
for i:=0 to memo1.Lines.Count-1 do
begin
for i2:=0 to memo2.Lines.Count-1 do
memo3.Lines.add( memo1.Lines.Strings[b] + a + memo2.Lines.Strings[i2]);
if i2 = memo2.Lines.Count then b:=b+1;
end;
Вопрос задавай нормально, а то не понять тебя




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-22
Вот так она будет работать:
В Memo1.Lines есть
Admin
User
Login, ок да?
В Memo2.Lines есть
qwerty
12345
password, ок да?

Когда мы нажимаем на кнопку в Memo3.Lines появляется:
Admin (Edit1.Text) qwerty
Admin (Edit1.Text) 12345
Admin (Edit1.Text) password
User (Edit1.Text) qwerty
User (Edit1.Text) 12345
User (Edit1.Text) password
Login (Edit1.Text) qwerty
Login (Edit1.Text) 12345
Login (Edit1.Text) password




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-10-22
Ну все правильно, выше я написал как это сделать. Если что, то вот исходник тебе http://thedelphi.ru/files/SyGaK.rar




аватар Добавил: SyGaK [Новичок] Дата: 2012-10-22
Благодарю! Ты лучший




аватар Добавил: raponk [Новичок] Дата: 2013-01-18
ну немного понятно)




аватар Добавил(а): delfiSkin [Новичок] Дата: 2013-05-15
пока все понятно




аватар Добавил: sanko [Новичок] Дата: 2015-03-28
остановился на "Компилируем нашу программу и нажимаем на Button (батон/кнопку). Сразу же компонент Label вместо Label1 будет показывать Моя первая переменная". Компилирую программу и нажимаю на button, и нечего не происходит, а программа вроде правильно написана.




аватар Добавил(а): ventura69 [Новичок] Дата: 2015-04-09
4 sannko Могу предположить, что событие на нажатие кнопки не прописано. Проверьте в эвентах (событиях) кнопки строку "онклик". Если она пустая, щелкните по ней. Должно появиться название процедуры на клик. Выбираете его. Компилируете. P.S. Очень печально, что хорошую идею с уроками, как обычно у нас похерили!!! Помощи на вопросы здесь ждать бесполезно!




аватар Добавил: hess2222 [Новичок] Дата: 2015-05-03
Спасибо за уроки всё понятно и не очень просто конечно, но интересно! Спасибо!




аватар Добавил: pok-anatolij [Новичок] Дата: 2015-10-23
Уроки очень хорошие, подробные и понятные даже мне в мои 67 лет. Большое спасибо.




аватар Добавил(а): Лицеист [Новичок] Дата: 2017-05-06
Тип переменной не "Bollean", а "Boolean" (В самом начале урока список основных типов) А так уроки просто замечательные!