Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2009, 08:55   #1
berlios
 
Регистрация: 16.08.2009
Сообщений: 8
По умолчанию Отображение ярлыков на форме

с помощью какого компонента можно отображать на форме ярлыки?
berlios вне форума Ответить с цитированием
Старый 16.08.2009, 09:15   #2
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

например с помощью ListView
s.Creator вне форума Ответить с цитированием
Старый 16.08.2009, 10:06   #3
berlios
 
Регистрация: 16.08.2009
Сообщений: 8
По умолчанию ListView?

А как в ListView затащить ярлык который потом можно будет использовать по назначению?
berlios вне форума Ответить с цитированием
Старый 16.08.2009, 10:15   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Иконку программы удобно загружать в Image. Потом по OnClick этого компонента запускать программу.
puporev вне форума Ответить с цитированием
Старый 16.08.2009, 10:24   #5
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Цитата:
Сообщение от berlios Посмотреть сообщение
А как в ListView затащить ярлык который потом можно будет использовать по назначению?
Не совсем понял что значит затащить и что значит использовать по назначению.
в Delphi 7 есть пример работы с ListView
Program Files\Borland\Delphi7\Demos\Virtual Listview
s.Creator вне форума Ответить с цитированием
Старый 16.08.2009, 10:30   #6
berlios
 
Регистрация: 16.08.2009
Сообщений: 8
По умолчанию

У меня 2009 делфи.
Мне нужно что бы ярлыки в программе выглядели и работали точно так же допустим как на рабочем столе.
berlios вне форума Ответить с цитированием
Старый 16.08.2009, 10:34   #7
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от berlios Посмотреть сообщение
с помощью какого компонента можно отображать на форме ярлыки?
Запуск при помощи кнопки:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellApi;

  //Обяз обрати на ShellApi в Uses

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);   //Обработчик когда наша программа стартовала
    procedure Button1Click(Sender: TObject); //Наш обработчик кнопки для запуска
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListBox1.Items.Add('Lalala.lnk');
 //Добавляем в ЛистБокс текст Lalala.lnk
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s:string;
begin
 if ListBox1.ItemIndex=-1 then exit;
 //В случае если ничего не выбранно то обработчик кнопки прекращает вып. действия

 s:='c:\1\'; //Где хранятся наши ярлыки :-)

 ShellExecute(Form1.Handle,nil,pchar(s+ListBox1.Items[ListBox1.ItemIndex]),nil,nil,SW_NORMAL);
 //Запускаем программу
end;

end.
Запуск по нажатию на ЛистБокс:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellApi;

  //Обяз обрати на ShellApi в Uses

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);   //Обработчик когда наша программа стартовала
    procedure Button1Click(Sender: TObject);
    procedure ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  s:string; //В переменной S будет хранится наш каталог где ярлыки

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 s:='c:\1\'; //Где хранятся наши ярлыки :-)
 ListBox1.Items.Add('Lalala.lnk');
 //Добавляем в ЛистБокс текст Lalala.lnk
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
end;

procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if ListBox1.ItemIndex=-1 then exit;
 //В случае если ничего не выбранно то обработчик кнопки прекращает вып. действия

 ShellExecute(Form1.Handle,nil,pchar(s+ListBox1.Items[ListBox1.ItemIndex]),nil,nil,SW_NORMAL);
 //Запускаем программу
end;

end.
Процедура FormCreate, автособираловка ярлыков в указанной директории:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
 SR:TSearchRec;
 //Переменная для поиска
 FindRes:integer;
 s:string;
begin
 s:='c:\1\'; //Где хранятся наши ярлыки :-)

 FindRes:=FindFirst(s+'*.lnk',faAnyFile,SR);
 //Говорим переменной FindRes что мы будем искать файлы в указанной директории (т.е. s),
 while FindRes=0 do
 //Пока FindRes=0 то файлы еще будут в каталоге
  begin
    //Убираем точки возврата на каталог выше
    if ((SR.Name='.')or(SR.Name='..')) then
     begin
      FindRes:=FindNext(SR);
      Continue;
     end;
    ListBox1.Items.Add(SR.Name);
    //Добавляем в ЛистБокс имя файла
    FindRes:=FindNext(SR);
    //Говорим FindRes что нам нужен след. файл и с этим файлом (с текущим) мы закончили работу
  end;
end;

Последний раз редактировалось zotox; 16.08.2009 в 10:46.
zotox вне форума Ответить с цитированием
Старый 16.08.2009, 10:42   #8
berlios
 
Регистрация: 16.08.2009
Сообщений: 8
По умолчанию

Пасибо! А с картинками как быть!?
berlios вне форума Ответить с цитированием
Старый 16.08.2009, 10:47   #9
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от berlios Посмотреть сообщение
Пасибо! А с картинками как быть!?
Был где то ListBox с картинками в делфи (чтобы отображался как на раб столе примерно)

Но лучше поставить свои картинки если ты не планируешь их изменять в зап. программе
(к примеру если ты будешь выводить ярлыки с раб.стола к себе в программу то замечательно подойдет Listbox с картинками(т.е. компонент Image который отображает картинки тут не подойдет(может подойти но будет муторно делать такую программу)))

Последний раз редактировалось zotox; 16.08.2009 в 10:52.
zotox вне форума Ответить с цитированием
Старый 16.08.2009, 10:49   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот пример с картинкой. Путь к файлу для запуска свой напишите.
Вложения
Тип файла: rar Запуск программы из Делфи.rar (3.4 Кб, 66 просмотров)
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение файлов tif на форме AlexandrSid Общие вопросы Delphi 7 28.05.2009 16:15
Можно ли как то узнать координаты ярлыков и папок и программно перемещать их? [Smarik] Win Api 3 21.12.2008 12:50
Отображение в форме и таблице двух столбцов подстановок smoky Microsoft Office Access 5 01.07.2008 09:27
Пуска нет и ярлыков никаких! Папка Мои документы и всё! anton14 Свободное общение 8 26.04.2008 13:31
Отображение картинок или метафайлов на форме. Hellen Общие вопросы Delphi 3 19.02.2007 10:44