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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2008, 14:00   #1
SANTA_KLAUD
Пользователь
 
Регистрация: 30.04.2008
Сообщений: 35
По умолчанию Не открывает из списка файлов ListBox

Вот код программы :
Ввожу искомое значение, жму поиск, находятся нужные файлы,они отображаютя в ListBox, пытаюсь двойным щелчком по файлу его открыть чтобы он открылся в своей программе но ничего не происходит ни какой реакции прога вроде робит мож кто чё знает помогите !

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, FileCtrl,ShellApi, XPMan;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
 

    
  private
    { Private declarations }
  public

    { Public declarations }

 procedure FindFile(Dir:String);


  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

 


procedure TForm1.Button1Click(Sender: TObject);
 begin
ListBox1.Clear; // очистка списка файлов
 FindFile(Edit1.Text); // поиск файлов с начальными условиями, заданных в Edit1
 end;
 procedure TForm1.FindFile(Dir: string);
 var
 SR: TSearchRec;
 FindRes: Integer;
 begin
 FindRes := FindFirst(Dir + '*.*', faAnyFile, SR);
 while FindRes = 0 do 
 begin 
  if ((SR.Attr and faDirectory) = faDirectory) and
  ((SR.Name = '.') or (SR.Name = '..')) then 
  begin 
  FindRes := FindNext(SR); 
  Continue; 
  end;
 
  // если найден каталог, то 
  if ((SR.Attr and faDirectory) = faDirectory) then 
  begin 
  // входим в процедуру поиска с параметрами текущего каталога +
  // каталог, что мы нашли
  FindFile(Dir + SR.Name + '\\'); 
  FindRes := FindNext(SR); 
  // после осмотра вложенного каталога мы продолжаем поиск 
  // в этом каталоге
  Continue; // продолжить цикл
  end; 
 
ListBox1.Items.Add(SR.Name);
  FindRes := FindNext(SR);
 end;
 FindClose(SR);
 end;
procedure FindFile(Dir: string);
var
 SR: TSearchRec;
 FindRes: Integer;
 begin 
 FindRes := FindFirst(Dir + '*.*', faAnyFile, SR); 
 while FindRes = 0 do
 begin 
  if ((SR.Attr and faDirectory) = faDirectory) and 
  ((SR.Name = '.') or (SR.Name = '..')) then 
  begin
  FindRes := FindNext(SR); 
  Continue; 
  end; 

  // если найден каталог, то
  if ((SR.Attr and faDirectory) = faDirectory) then 
  begin
  // входим в процедуру поиска с параметрами текущего каталога +
  // каталог, что мы нашли
  FindFile(Dir + SR.Name + '\\');
  FindRes := FindNext(SR);
  // после осмотра вложенного каталога мы продолжаем поиск
  // в этом каталоге
  Continue; // продолжить цикл
  end;
 Form1.ListBox1.Items.Add(SR.Name);
 FindRes := FindNext(SR);
 end;
 FindClose(SR);
 end;

procedure TForm1.ListBox1Click(Sender: TObject);
Var
s:String;
begin
s:=Form1.ListBox1.Items.Strings[ListBox1.ItemIndex];
ShellExecute( 0,'open',PChar(S), nil, nil, SW_SHOW);
end;

end.
SANTA_KLAUD вне форума Ответить с цитированием
Старый 27.05.2008, 14:19   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

1. Посмотреть вкладку евентс у формы. Проверить стоит ли там событие.
2. Поставить на все строки (их там мало) брекпоинты и посмотреть какие значения получают переменые.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 27.05.2008, 14:39   #3
SANTA_KLAUD
Пользователь
 
Регистрация: 30.04.2008
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Карась Посмотреть сообщение
1. Посмотреть вкладку евентс у формы. Проверить стоит ли там событие.
2. Поставить на все строки (их там мало) брекпоинты и посмотреть какие значения получают переменые.
событие стоит а можно про 2 по подробнее что сделать
SANTA_KLAUD вне форума Ответить с цитированием
Старый 27.05.2008, 15:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
событие стоит а можно про 2 по подробнее что сделать
Стань на строку ShellExecute( 0,'open',PChar(S), nil, nil, SW_SHOW);
Нажми F5. Запусти. Когда на ней остановишся наведи курсор на S и посмотри что он покажет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2008, 15:36   #5
SANTA_KLAUD
Пользователь
 
Регистрация: 30.04.2008
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Стань на строку ShellExecute( 0,'open',PChar(S), nil, nil, SW_SHOW);
Нажми F5. Запусти. Когда на ней остановишся наведи курсор на S и посмотри что он покажет.
ээ на S это на которую
Запускал exe программы ищет нормально но из списка найденого запускается тока exe файл самой программы
SANTA_KLAUD вне форума Ответить с цитированием
Старый 27.05.2008, 16:45   #6
Dimoney
Пользователь
 
Регистрация: 14.12.2007
Сообщений: 34
По умолчанию

Вот на эту.

s:=Form1.ListBox1.Items.Strings[ListBox1.ItemIndex];
Dimoney вне форума Ответить с цитированием
Старый 27.05.2008, 19:09   #7
SANTA_KLAUD
Пользователь
 
Регистрация: 30.04.2008
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Dimoney Посмотреть сообщение
Вот на эту.

s:=Form1.ListBox1.Items.Strings[ListBox1.ItemIndex];
вот такая хрень показывается Var s:String-Unit1.pas (111)
SANTA_KLAUD вне форума Ответить с цитированием
Старый 27.05.2008, 20:25   #8
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

исправь
Код:
procedure TForm1.ListBox1Click(Sender: TObject);
begin

      ShellExecute(
      0,
      'open',
      PChar( ListBox1.Items.Strings[ListBox1.ItemIndex]),
      nil,
      PChar( Edit1.Text ),
      SW_SHOWNA);

end;

end.
knight вне форума Ответить с цитированием
Старый 27.05.2008, 20:30   #9
SANTA_KLAUD
Пользователь
 
Регистрация: 30.04.2008
Сообщений: 35
По умолчанию

Пасиба большое Кнайт всё робит помог очень
Тему можно офф
SANTA_KLAUD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ListBox - передача в список файлов. Kocapb C++ Builder 7 14.05.2010 19:28
Печать pdf файлов из списка файлов в Excel АПС Microsoft Office Excel 5 15.04.2008 16:04
Interbase не открывает и не создает БД, переустановка не помогает.. Алёна БД в Delphi 1 13.02.2008 22:05
как загрузить в ListBox несколько текстовых файлов? One.Love Общие вопросы Delphi 5 14.01.2008 11:54
Не открывает диск Д... Filonenko Свободное общение 7 25.11.2007 14:44