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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2013, 14:22   #11
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

а где ProcessFile
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 14.08.2013, 14:38   #12
GROMOZEKA82
Новичок
Джуниор
 
Регистрация: 14.08.2013
Сообщений: 12
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  z:string;

implementation

{$R *.dfm}

uses shellApi;

procedure TForm1.FormCreate(Sender: TObject);
var
tsr : tsearchrec;
begin
if FindFirst('D:\LNK\*.lnk', faAnyFile,tsr) = 0 then
repeat
ListBox1.Items.Add(tsr.name);
until FindNext(tsr) <> 0;
FindClose(tsr);
end;

procedure TForm1.ListBox1Click(Sender: TObject);
var z:string;
begin
z:='D:\LNK\'+Listbox1.Items[Listbox1.ItemIndex];
ShellExecute(0,'open',pchar(z),'','',SW_SHOW);
end;
end.
работает
но procedure TForm1.ListBox2Click(Sender: TObject);
работать отказывается, там список из ссылок получается, главное - навигация по нему должна осуществляться клавиатурой, вверх вниз, энтер
а при нажимании стрелки - выбирается следующий пункт и сразу запускается, соответственно нужно 2 клика
GROMOZEKA82 вне форума Ответить с цитированием
Старый 14.08.2013, 15:14   #13
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

работа с ярлыком тебе показана - в чем вопрос?
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 14.08.2013, 16:09   #14
GROMOZEKA82
Новичок
Джуниор
 
Регистрация: 14.08.2013
Сообщений: 12
По умолчанию

можешь немного с моим кодом помочь?
(чтоб только при нажатии ентера запуск происходил), а дальше надеюсь сам уже справлюсь (посоздовать несколько форм по аналогии с этой и связать красивым меню)
GROMOZEKA82 вне форума Ответить с цитированием
Старый 14.08.2013, 20:29   #15
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Код:
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var z:string;
begin
  if ord(Key)=13 then
  begin
    z:='D:\LNK\'+Listbox1.Items[Listbox1.ItemIndex];
    ShellExecute(0,'open',pchar(z),'','',SW_SHOW);
  end;
end;
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 15.08.2013, 10:18   #16
GROMOZEKA82
Новичок
Джуниор
 
Регистрация: 14.08.2013
Сообщений: 12
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  p ='D:\LNK\';
  f = '*.lnk';
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var  tsr:TSearchRec;
begin
  if FindFirst(p+f, faAnyFile,tsr) = 0 then
    repeat
      ListBox1.Items.Add(tsr.Name);
    until FindNext(tsr) <> 0;
    FindClose(tsr);
end;
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var z:string;
begin
  if ord(Key)=13 then begin
      z:=p+Listbox1.Items[Listbox1.ItemIndex];
      ShellExecute(0,'open',pchar(z),'','',SW_SHOW);
  end;
end;

end.

список файлов выводится так
file1.lnk
file2.lnk
file3.lnk

а хотелось бы
file1
file2
file3

т.е. без отображения расширения

как это реализовать можно?
GROMOZEKA82 вне форума Ответить с цитированием
Старый 15.08.2013, 10:44   #17
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Код:
function ExtractFileName(const FileName: string): string;
var
  I: Integer;
begin
  I := LastDelimiter('.' + PathDelim + DriveDelim, FileName);
  if (I > 0) and (FileName[I] = '.') then
    Result := Copy(FileName, 1, i-1) else
    Result := '';
end;
....
ListBox1.Items.Add(ExtractFileName(tsr.Name));
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 16.08.2013, 08:59   #18
GROMOZEKA82
Новичок
Джуниор
 
Регистрация: 14.08.2013
Сообщений: 12
По умолчанию

Код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure ListBox1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;


const
p ='D:\LNK\';
f = '*.lnk';
var
tsr: TSearchRec;
Form1: TForm1;

implementation

{$R *.dfm}


function ExtractFileName(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter('.' + PathDelim + DriveDelim, FileName);
if (I > 0) and (FileName[I] = '.') then
Result := Copy(FileName, 1, i-1) else
Result := '';
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
if FindFirst(p+f, faAnyFile,tsr) = 0 then
repeat
ListBox1.Items.Add(tsr.Name);
until FindNext(tsr) <> 0;
FindClose(tsr);
end;


procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var z:string;
begin

ListBox1.Items.Add(ExtractFileName(tsr.Name));

if ord(Key)=13 then begin
z:=p+Listbox1.Items[Listbox1.ItemIndex];
ShellExecute(0,'open',pchar(z),'','',SW_SHOW);
end;
end;

end.
работает, но расширение всё равно осталось
GROMOZEKA82 вне форума Ответить с цитированием
Старый 16.08.2013, 12:04   #19
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

в танке что ли?
Код:
function ExtractFileName(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter('.' + PathDelim + DriveDelim, FileName);
if (I > 0) and (FileName[I] = '.') then
Result := Copy(FileName, 1, i-1) else
Result := '';
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
if FindFirst(p+f, faAnyFile,tsr) = 0 then
repeat
ListBox1.Items.Add(ExtractFileName(tsr.Name));
until FindNext(tsr) <> 0;
FindClose(tsr);
end;


procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var z:string;
begin
if ord(Key)=13 then begin
z:=p+Listbox1.Items[Listbox1.ItemIndex];
ShellExecute(0,'open',pchar(z),'','',SW_SHOW);
end;
end;
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 16.08.2013, 12:32   #20
GROMOZEKA82
Новичок
Джуниор
 
Регистрация: 14.08.2013
Сообщений: 12
По умолчанию

у меня так заработало
Код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure ListBox1KeyPress(Sender: TObject; var Key: Char);
procedure ListBox1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
p ='D:\LNK\';
f = '*.lnk';
var
tsr: TSearchRec;
Form1: TForm1;

implementation

{$R *.dfm}


function ExtractFileName(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter('.' + PathDelim + DriveDelim, FileName);
if (I > 0) and (FileName[I] = '.') then
Result := Copy(FileName, 1, i-1) else
Result := '';
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
if FindFirst(p+f, faAnyFile,tsr) = 0 then
repeat
//ListBox1.Items.Add(tsr.Name);
ListBox1.Items.Add(ExtractFileName(tsr.Name));
until FindNext(tsr) <> 0;
FindClose(tsr);
end;

procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var z:string;
begin
if ord(Key)=13 then begin
z:=p+Listbox1.Items[Listbox1.ItemIndex];
ShellExecute(0,'open',pchar(z),'','',SW_SHOW);
end;

end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
var z:string;
begin
z:=p+Listbox1.Items[Listbox1.ItemIndex];
end;

end.
GROMOZEKA82 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Потоки + составление списка ссылок Lardes Общие вопросы Delphi 2 24.11.2012 14:26
как по вводу первых букв слова из списка подхватывать возможные вариации из списка 7EBEP Microsoft Office Excel 2 05.03.2012 11:11
preg_match? парсинг и вывод списка ссылок? taurii PHP 1 07.02.2012 16:16
Использование вэб-запроса для списка ссылок Anna1 Microsoft Office Excel 10 30.11.2010 14:00
получение списка ссылок на подпапки файлы однойпапки i777 Microsoft Office Excel 3 06.10.2010 23:30