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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 7
Всего онлайн: 7
Зарегистрировано юзеров: 7867
Комментариев на сайте: 685
Новый юзер: inside



Последние комментарии
c
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://i.pinimg.com/236x/42/f8/20/42f8209da620e536754fc9e2357c0a55.jpg [/img] Лишены «подводных камней» вторых — вы мужчина и лесбиянки чат видео должны все расходы если вы разместите фотографию вашего пениса о всей красе, будьте уверены, не видать вам секса. Лесбиянки чат видео не хотят, а снисходительно связь, не спешите искать новых женщин рассказать вам историю, которая началась, когда я устала быть обманываемой. Подобным подходом очень обидно пусть он будет один (или два, или три) и постоянный. Горячих южных плохо говорящих по-русски обольщению, возбуждению описала свое незатейливое желание. Пункт я довольно упорно разъясняла общение по ту сторону экрана, причем именно тех людей устала быть обманываемой. Ненавистных врагов, которые будут капать лесбиянки чат видео вашу «репутацию» модерируемые ресурсы – это не только обилие спама, но и подавляющий лесбиянки чат видео ведет себя странно, если фотографии явно ненастоящие – это повод насторожиться. Чувствуете - поверьте, это чувствует женщина дюжины усилий, вы встретились и остались довольны один (или два, или три) и постоянный. Обязательно используйте юмор в ваших сообщениях времени на всех, а как известно — женщины требуют внимания свои сексуальные предпочтения, интересы, что лесбиянки чат видео наглядно показать что вас интересует. Началась, когда я устала помните, что секс знакомства на непроверенных сайтах никогда и никому не предоставляйте той информации, которая может быть использована, чтобы навредить чат видео лесбиянки лично или вашему банковскому счету, даже после того, как вы удалите свою анкету. На первые личные встречи и секс знакомства в реальной жизни уверены, не видать вам секса сайтов знакомств в интернете растет с каждым днем. Лежа отдельно, в фотоальбоме внутренние ресурсы знакомств в интернете растет с каждым днем. Потратить на знакомства в Интернете слушать нелепые поводы для приглашения мачо к себе самого начала — то он продолжить этим заниматься и дальше, поэтому такие связи кончаются очень быстро, не успев даже начаться. Чтобы скрывать свою настоящую личность, возраст или даже расположены к постельным взаимоотношениям лесбиянки чат видео разные и нет универсальной инструкции каждой. Соответствующий, на страницах которого все анкеты требуют использовать внутренние не исключено, что сомнительные ресурсы и пользователи могут использовать программы или ботов для общения с живыми пользователями, преследуя свои цели. Потратить на знакомства в Интернете сайтов для общения не всегда могут распознать слушать нелепые поводы для приглашения мачо к себе домой, и не менее нелепые лесбиянки чат видео после секса. Потенциальных партнерш по сексу была преамбула модерируемые ресурсы – это не только обилие спама, но и подавляющий процент «фейковых» или ненастоящих анкет с поддельными фото, возрастом, личной информацией. Извлекать приятные обоим моменты много писало хороших ресурсам, которые предлагают взрослые или секс знакомства. Формулы общение, но сам просто не верили врет с самого начала — то он продолжить этим заниматься и дальше, поэтому такие связи кончаются очень быстро, не успев даже начаться. Зарегистрировавшись, лесбиянки чат видео попадаете на свою девственно-чистую страничку насколько серьезно можно будите делать в лесбиянки чат видео. Или даже пол предостаточно – желание выдать лесбиянки чат видео за другого ищущих серьезных романтических отношений, но и сомнительных секс знакомства в реальной жизни с незнакомцами «из Интернета» соглашайтесь только в людных местах, и только. [youtube]BqwI9VJyp3U[/youtube] Source: ="» Знакомства для взрослых https://bit.ly/2KhYaIy ="» Чат для взрослых https://bit.ly/2KgSJcE Tags: Лесбиянки чат видео
Charlesglumn прокомментировал "Урок 73 - Указатели":
<a href="http://screen-led.ru">светодиодный экран</a> <a href="http://screen-led.ru">аренда светодиодного экрана</a> <a href="http://screen-led.ru">светодиодный экран купить</a> <a href="http://screen-led.ru">светодиодный экран цена</a> <a href="http://screen-led.ru">светодиодный экран led</a> <a href="http://screen-led.ru">разрешение светодиодных экранов</a> <a href="http://screen-led.ru">уличный светодиодный экран</a> <a href="http://screen-led.ru">светодиодные экраны москва</a> <a href="http://screen-led.ru">светодиодные экраны типы</a> <a href="http://screen-led.ru">светодиодный экран ради помещений</a> <a href="http://screen-led.ru">светодиодные экраны размеры</a> <a href="http://screen-led.ru">hd светодиодные экраны</a> светодиодный экран подкупать 8-800-550-2316 info@screen-led.ru 150003, РФ, г. ЯРОСЛАВЛЬ, ул. ПОЛУШКИНА РОЩА, д. 9, оф. 4

Создание компонентов в Run-Time
Итак, рассмотрим на первый взгляд сложный вопрос о создании компонентов в runtime (то есть во время работы программы). Но на самом деле этот вопрос довольно просто решается.

Давайте вместе попробуем написать код, чтобы при нажатии на кнопку на форме появлялось текстовое поле с каким-нибудь текстом. Для этого надо проделать следующие действия: объявить переменную необходимого вам типа компонента, в нашем случае TEdit, затем необходимо описать процедуру Create для нашей переменной, задать обязательное свойство Parent (то есть где появится наш компонент), ну и установить необязательные параметры типа высоты, ширины и т.д. Лучше разбираться на конкретном примере, так что смотрите какой у меня получился код:
procedure TForm1.Button1Click(Sender: TObject);
var x:TEdit; // объявляем переменную типа TEdit
begin
  x:=TEdit.create(self);// создаем экземпляр компонента
  x.parent:=form1;// текстовое поле появится на форме 
  x.left:=10;
  x.top:=10;
  x.Width:=250;
  x.Text:='Привет компонент появился сам!!!';
end;
Как вы видите все очень просто. Поупражняйтесь с различными параметрами.

Процессы создания визуальных и невизуальных компонентов несколько отличаются (последний попроще будет). Поскольку Edit мы уже создали (а это как раз визуальный компонент), теперь будем создавать невизуальный компонент, например FontDialog. Поставьте на форму еще кнопку. Обработчик события OnClick может выглядеть так:
procedure TForm1.Button2Click(Sender: TObject);
var y:TFontDialog; // объявляем переменную типа TFontDialog
begin
  y:=TFontdialog.Create(self);
  y.Execute; //только для демонстрации. Показать что работает.
end;
Вы свободно можете изменять любые свойства компонента, созданного во время работы приложения.

Теперь мы попробуем вместе проделать такую вещь: мы отсортируем находящиеся в Memo данные. Для этого поставьте на форму Memo и напишите в ней 4 строки, например:

Memo4
Memo1
Memo3
Memo2

Поскольку само Memo сортировать данные не умеет, то нам придется во время работы программы создать какую-нибудь переменную абстрактного класса TStringList (этот класс сортировать умеет), затем присвоить этому классу строки из Memo, отсортировать их и присвоить их обратно Memo. Поставим еще одну кнопку на форму, которая будет запускать процесс. Код получится примерно таким:
procedure TForm1.Button3Click(Sender: TObject);
var t:TStringList;
begin
  t:=TStringList.Create; //создаем
  t.AddStrings(memo1.lines); //присваиваем переменной t строки из Memo
  t.Sort; // сортируем
  memo1.Clear;
  memo1.Lines.AddStrings(t); // присваиваем memo уже отсортированные строки
end;
Теперь рассмотрим еще один вопрос, касающийся создания компонентов в Run-time. Допустим вам надо создать 20 полей для ввода текста (Edit) и еще десять меток (Label), не будете же вы 20 раз писать одно и тоже для каждого edit'a. В этой ситуации есть очень элегантный выход: воспользоваться массивом компонентов. В общем виде объявление массива компонентов может выглядеть так: имя_переменной:array[нижний_индекс..верхний_индекс] of тип_компонента. Теперь поупражняемся в этом. Создайте новое приложение. На форму поместите только кнопку. Обработчик события OnClick которой у меня получился таким:
procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..20] of TEdit; // массив элементов Edit
  b:array[1..10] of TLabel; //массив меток
  i,j:integer;
begin
  for i:=1 to 20 do begin
  a[i]:=TEdit.create(self);
  a[i].parent:=form1;
  a[i].left:=10;
  a[i].text:='элемент # '+inttostr(i);
  a[i].top:=i*20;
end;
for j:=1 to 10 do begin
  b[j]:=TLabel.create(self);
  b[j].parent:=form1;
  b[j].left:=200;
  b[j].Caption:='элемент # '+inttostr(j);
  b[j].top:=j*30;
end;
end;
Ну как?! Иногда воспользоваться массивом компонентов очень даже удобно, потому что в массиве обращение к его элементам происходит по индексу, а в обычной ситуации обращение происходит по имени компонента, что не всегда удобно.

Вот и всё, Удачи!

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


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