рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Begin //Если да, то прибавить имя выделенной директории к пути //и перечитать файлы из неё.

Begin //Если да, то прибавить имя выделенной директории к пути //и перечитать файлы из неё. - раздел Образование, Дерево элементов TTreeView Edit1.text:=Edit1.text+Listview1.selected.caption+''; Addfile(Ed...

Edit1.Text:=Edit1.Text+ListView1.Selected.Caption+'';
AddFile(Edit1.Text+'*.*',faAnyFile)
end
else
//Если нет, то это файл и я его запускаю.

ShellExecute(Application.MainForm.Handle, nil,
PChar(Edit1.Text+ListView1.Selected.Caption), '',
PChar(Edit1.Text), SW_SHOW);

end;

В этом коде я в самом начале проверяю по чём мы щёлкнули. Если это директория, то надо перейти в неё, а если файл, то надо его запустить. Для этого я проверяю 5-й дополнительный параметр выделенного элемента: ListView1.Selected.SubItems[5]=’dir’. Когда я добавлял элементы и дополнительные параметры в ListView, то в качестве 5-го указывал для директорий значение ‘dir’, а для файлов ‘file’. Теперь мне надо только проверить этот параметр.

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

Если выделенная строка – это файл, то его надо запустить. Я люблю это делать с помощью вызова функции ShellExecute. У этой функции следующие параметры:

1. 1. Программа, отвечающая за запуск приложения. Тут можно указать nil, но я указал главное окно моей программы (Application.MainForm.Handle).

2. 2. Строка, указывающая на операцию, которую надо выполнить. Укажем nil для запуска файла.

3. 3. Строка содержащая полный путь к файлу.

4. 4. Строка параметров передаваемых программе в командной строке.

5. 5. Директория по умолчанию.

6. 6. Команда показа. Здесь я указал SW_SHOW для нормального отображения окна. Можно указать и другие параметры (все ты найдёшь в файле помощи), но чаще всего используются SW_SHOW (нормальный режим), SW_SHOWMAXIMIZED (показать максимизировано) или SW_SHOWMINIMIZED (показать в свёрнутом состоянии).

 

Функция ShellExecute объявлена в модуле Shellapi, поэтому его необходимо добавить в раздел uses, иначе Delphi не сможет откомпилировать проект.

На компакт диске, в директорииПримерыГлава 11ListViewты можешь увидеть пример этой программы.

11.23 Подсказки для чайников (TStatusBar)

сли ОС unix создавалась для профессионалов, то Windows создавалась для пользователей, чтобы им легче было работать. Потом она превратилась в ОС для чайников, ну а сейчас Windows превратили в ОС для полных кретинов,

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

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

-TStatusBar

Поставить компонент на форму, это ещё не значит, что подсказки сразу же сами появятся на панели. Для полноценной работы надо выполнить следующее:

1. 1. У компонента, при наведении на который должна отображаться подсказка, в свойстве Hint должен быть внесён текст подсказки.

2. 2. Если ты хочешь, чтобы подсказка выскакивала не только в строке состояния, но и над компонентом, то у него или у родительского окна в свойстве ShowHint нужно установить true.

3. 3. Мы должны создать обработчик события на подсказки.

 

Может это звучит сложно, но реально всё просто. Создай новое приложение и брось на него кнопку. Теперь в свойстве Hint напиши «Это кнопка выхода».

Попробуй запустить приложение и навести на кнопку. Никаких сообщений и подсказок пока не должно быть. Закрой программу и переходи опять в Delphi. Теперь попробуй установить в свойстве ShowHint у компонента или у главной формы значение true. Если ты установишь только у компонента, то подсказка будет выскакивать только у него. Если у формы, то подсказка будет появляться у всех компонентов на форме, у которых есть текст в свойстве Hint и ParentShowHint равно true.

Можешь запустить приложение и проверить появление подсказки.

Теперь мы добавим к нашему приложению возможность отображения такого же текста в строке состояния. Брось на форму компонент TStatusBar. Теперь перейди в редактор кода и найди раздел private. В нём добавь объявление процедуры ShowHint:

– Конец работы –

Эта тема принадлежит разделу:

Дерево элементов TTreeView

Дерево элементов TTreeView...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Begin //Если да, то прибавить имя выделенной директории к пути //и перечитать файлы из неё.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Procedure TTreeViewForm.AddButtonClick(Sender: TObject); var
CaptionStr:String; NewNode:TTreeNode; begin CaptionStr:=''; if not InputQuery('Ввод имени', 'Введите заголовок элемента',CaptionStr) then exit;

CaptionStr:String; begin
CaptionStr:=''; if not InputQuery('Ввод имени',   'Введите заголовок элемента',CaptionStr) then exit;

Private
{ Private declarations } function AddFile(FileMask: string; FFileAttr:DWORD): Boolean; Объяви эту процедуру так же и потом нажми клавиши Ctrl+Shi

ListView1.Items.EndUpdate; // Прорисовываем все изменения сразу
С этим разобрались, можно ехать дальше. После вызова BeginUpdate я очищаю текущий список элементов с помощью вызова ListView1.Items.Clear. Далее идёт цикл поиска файлов, с ко

Implementation
Я специально объявил их там, чтобы показать тебе, как можно пользоваться функциями не принадлежащими ни одному объекту. Здесь функция SlashSep объявлена не внутри объекта, значит она никому

Implementation
Я специально объявил их там, чтобы показать тебе, как можно пользоваться функциями не принадлежащими ни одному объекту. Здесь функция SlashSep объявлена не внутри объекта, значит она никому

Private
{ Private declarations } procedure ShowHint(Sender: TObject); Имя процедуры может быть и другим (например MyShowHint) но параметр должен б

Procedure TForm1.ShowHint(Sender: TObject); begin
StatusBar1.SimpleText := Application.Hint; end; Итак, наша процедура должна будет вызываться каждый раз, когда надо вывести подсказку. Внутри процедуры мы присваиваем в св

Procedure TForm1.ShowHint(Sender: TObject); begin
StatusBar1.Panels[1].Text := Application.Hint; end; Здесь я присваиваю текст сообщения (Application.Hint) в свойство Text первой панели строки состояния.

R:TRect; begin if ToolBar1.HostDockSite<>ControlBar1 then
begin GetWindowRect(ToolBar1.Handle, R); Application.MessageBox(PChar(IntToStr(r.Left)+'--'+IntToStr(r.Top)), 'MM',IDOK); end; end; В первой стро

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги