Циклюем циклы в Delphi

Категория: Уроки по Delphi

Эх, раз, ещё раз, Ещё много-много раз!

Цыганская песня о циклах

Терпенье и труд всё перетрут.

Пословица

Очень часто в программах встречаются ситуации, когда одни и те же дей­ствия нужно повторить многократно. Для таких случаев в языке Delphiприпасены аж три оператора циклов - for, whileи repeat.

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

 

Улучшенный файловый менеджер (с возможностью запуска файлов)

Категория: Уроки по Delphi

Давайте добавим к нашему файловому менеджеру возможность путешествия по папкам и запуска файлов. Для этого нужно создать обработчик события ondblclick для компонента Listview и написать в нем содержимое листинга: 

В этом коде в самом начале осуществляется проверка произведенного выбора (по какому объекту был произведен щелчок мышью). Если это папка, то надо пе­рейти в нее, а если файл, то надо его запустить. Для этого проверяется пятый до­полнительный параметр выделенного элемента:

ListViewl.Selected.Subltems[5]='dir'

Когда мы добавляли элементы и дополнительные параметры в Listview, то в ка­честве пятого для папок указывали значение 'dir', а для файлов — 'file'. Теперь надо только проверить этот параметр.

 

Если выделенная строка— это папка, то мы изменяем текст текущей папки в Editl.Text и перечитываем ее с помощью вызова AddFile, указав новое значе­ние папки.

Если выделенная строка— это файл, то его надо запустить. Это можно сделать С ПОМОЩЬЮ вызова функции ShellExecute. У функции следующие параметры:

  • программа, отвечающая за запуск приложения. Здесь можно указать значение nil, НО МЫ укажем главное ОКНО программы (Application.MainForm.Handle);
  • строка, указывающая на операцию, которую надо выполнить. Укажем nil для запуска файла;
  • строка, содержащая полный путь к файлу;
  • строка параметров, передаваемых программе в командной строке;
  • папка по умолчанию;
  • команда показа. Здесь мы укажем sw_show для нормального отображения окна. Можно указать и другие параметры (все команды вы найдете в файле помощи), но чаще всего используются sw_show (нормальный режим), sw_showmaximized (пока­зать максимизировано) или sw_showminimized (показать в свернутом состоянии).

ВНИМАНИЕ. Функция ShellExecute объявлена в модуле shellapi, поэтому его не­обходимо добавить в раздел uses, иначе Delphi не сможет откомпилировать проект. 


 

Создаем простейший файловый менеджер в Delphi

Категория: Уроки по Delphi

Создаем простейший файловый менеджер в DelphiЗдесь рассказывается о том, как самостоятельно написать простейший файло­вый менеджер. Этим примером мы закрепим наши знания по работе с файлами и научимся работать со списком элементов.

 

Создайте новый проект в Delphi и установите на него следующие компоненты:

  • одну кнопку;
  • одну строку ввода;
  •  один список элементов.

Все это расположите так, как показано на рис. 11.37.

Для работы программы этого примера понадобится модуль shellapi, поэтому лавайте сразу добавим его в раздел uses. 

 

СОВЕТ. Здесь и в дальнейшем будут рассматриваться только наиболее интересные моменты программного кода. Для того чтобы уяснить назначения остальных его ко­манд, обращайте внимание на комментарии. Они помогут вам разобраться с происходящим в программе.

 

Программу начнем писать с обработчика события oncreate. Создайте соответ­ствующий обработчик события для формы и напишите в нем содержимое листин­га 

 

Полосы прокрутки (TScrollBar) Delphi

Категория: Уроки по Delphi

Полосы прокрутки (TScrollBar) DelphiПолосы прокрутки очень часто используются для прокручивания какого-либо действия. Например, когда вы слушаете музыку, вы можете прокрутить ее в любое место с помощью простой полосы прокрутки. Если информация не помещается в окно, ее также прокручивают с помощью таких полос, но в большинстве случаев это делается автоматически.

Давайте посмотрим на полосу прокрутки в действии. Создайте новое приложение. Сформируйте на форме один компонент TLabel и одну полосу прокрутки TScrollBar.

 

У компонента Label1 измените свойство caption на "О". Теперь создайте обра­ботчик события onchange для полосы прокрутки и напишите там следующее:

Label1.Caption:=IntToStr(ScrollBarl.Position);

В этом коде мы присваиваем свойству caption компонента Label1 значение те­кущей позиции ползунка полосы прокрутки. Текущее значение ползунка можно получить С ПОМОЩЬЮ свойства Position объекта ScrollBar1. Только тут есть одно "НО". Это свойство имеет тип "целое число", а свойство caption компонента Label1 — это строка. Поэтому нам надо превратить целое число в строку. Для это­го есть функция intTostr. Ей нужно передать число, а она нам вернет строку. По­этому если вызвать эту функцию с параметром текущей позиции ползунка intTostr (ScrollBarl. Position), результат ее работы можно присвоить свойству Caption компонента Label1.

 

Попробуйте запустить программу и подвигать ползунок. Значение позиции бу­дет отображаться в компоненте Label1.

В этой программе мы написали пример горизонтальной полосы прокрутки. Что­бы сделать ее вертикальной, нужно свойство Kind поменять на sbverticai. И еще, значение ползунка изменяется от 0 до 100. Чтобы изменить эти значения, есть свойства Min (по умолчанию равно нулю) и мах (по умолчанию равно 100). Больше ничего особенного в работе полос прокрутки нет.

 

Ниспадающие списки (TComboBox) Delphi

Категория: Уроки по Delphi

Ниспадающие списки (TComboBox) DelphНиспадающие списки по работе своих свойств и методов похожи на списки вы­бора. Я бы сказал, что это полная копия, только выглядит по-другому и в них нель­зя выбирать сразу несколько элементов.

 

Давайте создадим приложение, похожее на предыдущее, только вместо ListBox бу­дем использовать сошЬовох. На рис. 7.11 можно увидеть форму будущей программы.

Теперь создадим обработчик события onchenge для ниспадающего списка ComboBoxl. Это событие происходит, когда пользователь выбрал какой-нибудь элемент списка. Здесь напишем следующий код.

 

 

Editl.Text:=ComboBox1.Items.

Strings[ComboBoxl.Itemlndex];

 

Как видите, это полная копия кода из предыдущего примера, только используется другое имя компонента.Теперь напишем код для кнопки Добавить.

ComboBox1.Items.Add('Новая строка')

Для кнопки Удалить код будет следующим:

ComboBoxl.Items.Delete(ComboBoxl.Itemlndex);

 
Назад Вперед