Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск и открытие файлов [D5, XP]


Semen ©   (2010-05-30 22:48:00) 

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

unit Shearh_4;

interface

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

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   ComboBox1: TComboBox;
   ComboBox2: TComboBox;
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Button4: TButton;
   ListBox1: TListBox;
   StatusBar1: TStatusBar;
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   procedure ListBox1Click(Sender: TObject);
   procedure ListBox1DblClick(Sender: TObject);
   procedure FormShow(Sender: TObject);
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
   procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
   procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}
procedure ScanDir(StartDir: string; FileNam: string);
var  SearchRec : TSearchRec;  
begin
   if StartDir[Length(StartDir)] <> '\' then  
        StartDir := StartDir + '\';
   try
   if FindFirst(StartDir+FileNam, faAnyFile, SearchRec) = 0 then
   repeat
       if (SearchRec.Attr and faDirectory) <> faDirectory then begin
           form1.listbox1.Items.BeginUpdate;
           form1.listbox1.items.add(StartDir+SearchRec.Name);
           form1.StatusBar1.SimpleText:=' Total: '+inttostr(form1.listbox1.items.capacity);
           form1.StatusBar1.Repaint;
           form1.listbox1.items.endupdate;

         end;
   until FindNext(SearchRec) <> 0;FindClose(SearchRec);

   except end;
   {разделение по каталогам}
   if FindFirst(StartDir+'*', faAnyFile, SearchRec) = 0 then
   try
   repeat
       if (SearchRec.Attr and faDirectory) = faDirectory then
       if (SearchRec.Name <> '..')
           and (SearchRec.Name <> '.') then
       begin
           ScanDir(StartDir + SearchRec.Name + '\', FileNam);
       end;
   until FindNext(SearchRec) <> 0;FindClose(SearchRec);
   except
   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var path:string;
begin
path:=extractfiledir(Listbox1.Items[ListBox1.ItemIndex]);
ShellExecute(0,'explore',PAnsiChar(path),nil,nil,SW_SHOW);

end;

Однако открыть файлы ворд (у меня офис 2003) с помощью той же конструкции не получается:

procedure TForm1.Button2Click(Sender: TObject);
var path:string;
begin
path:=extractfiledir(Listbox1.Items[ListBox1.ItemIndex]);
ShellExecute(0,'Open','Document.Doc',nil,nil,SW_SHOWNORMAL);

end;

Почему?


Semen   (2010-05-31 16:50:00) [1]

Спасибо всем за участие, всё получилось!


Semen   (2010-05-31 16:35:00) [2]


> Не надо искать ответы в И-нете. Надо искать в книжках и
> справке.

Дайте ссылку на источник, плиз!


Anatoly Podgoretsky   (2010-05-31 07:03:00) [3]


> Semen   (30.05.10 23:01) [2]

Еще раз, а он существует ?
Только подумай, прежде чем отвечать.


Anatoly Podgoretsky   (2010-05-31 07:03:00) [4]


> Германн ©   (31.05.10 02:35) [5]

Тут не искать надо, а думать.


Германн   (2010-05-31 02:35:00) [5]

Не надо искать ответы в И-нете. Надо искать в книжках и справке.


Плохиш   (2010-05-31 02:22:00) [6]


> Однако открыть файлы ворд (у меня офис 2003) с помощью той
> же конструкции не получается:
>


> ShellExecute(0,'Open','Document.Doc',nil,nil,SW_SHOWNORMAL);

Надо открывать свои файлы там, где они лежат, а не там, где ты с фонариком стоишь.


Демо   (2010-05-31 02:22:00) [7]

Сравни:


> ShellExecute(0,'explore',PAnsiChar(path),nil,nil,SW_SHOW);


и


> ShellExecute(0,'Open','Document.Doc',nil,nil,SW_SHOWNORMAL);


Semen   (2010-05-30 23:01:00) [8]


> 'Document.Doc'
>
> А он существует?
</ I>
Конечно! Список вордовских файлов формируется в списка ListBox1, откуда я их и пытаюсь открыть:

Процедура TForm1.ListBox1Click (Sender: TObject);
начинать
button2.Enabled: = True;
цели;

Процедура TForm1.ListBox1DblClick (Sender: TObject);
начинать
button2.click;
цели;


Jeer   (2010-05-30 22:55:00) [9]

'Document.Doc'

А он существует ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо