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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 01:30   #1
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию ListBox или ComboBox, выбор элмента, в Delphi7

Есть проблемка. ПОдскажите как можно решить ее. Я ищу файлы с определенным именем по директории, вывожу либо в ListBox or ComboBox.(это все ясно, сделано). А вот тут начинается сама проблема. После чего пользователь может выбрать какой-либо конткретный файл или сразу несколько и открыть их?

Последний раз редактировалось Николай ПН; 15.11.2010 в 01:37.
Николай ПН вне форума Ответить с цитированием
Старый 15.11.2010, 08:25   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Получай из списка имя(имена) файлов.
Если один пункт выбирается.
Код:
aFileName := ListBox1.Items[ListBox1.ItemIndex];
Если разрешен множественный выбор, то используй :
ListBox1.Selected[];
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 15.11.2010, 20:29   #3
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию что-то я делаю не так

Я ввел как вы написали, но мне пишет,
Цитата:
operator not applicable to this operand type
. У меня просто в ListBox выводиться полный путь к файту. Как можно решить эту проблемы, или хотябы подскажите где кроме справки можно почитать?*
Николай ПН вне форума Ответить с цитированием
Старый 15.11.2010, 20:45   #4
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Для открытия файла можно ShellExecute(); использовать.
В uses добавьте ShellApi;
Вот пример использования:

Код:
shellExecute(handle,nil,'имя_файла',nil,nil,SW_ShowNormal);
А выбрать файл можно так:
Код:
File_Name:=ListBox1.Items.Strings[ListBox1.ItemIndex];
Хакинг - не преступление, а способ выживания.

Последний раз редактировалось Stilet; 16.11.2010 в 20:40.
Ghost of Night вне форума Ответить с цитированием
Старый 15.11.2010, 21:18   #5
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, ShellApi;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Memo1: TMemo;
    Chart1: TChart;
    Series1: TLineSeries;
    procedure GetAllFiles(mask: string);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.GetAllFiles(mask: string);
var
  search: TSearchRec;
  directory: string;
    F: textfile;
  A,S,D,H,G,N,k,s_new: real;
  st: string;
begin
directory:=ExtractFilePath(mask);
  if FindFirst(mask, faAnyFile, search)=0 then
    begin
      repeat
        Form1.ListBox1.Items.Add(directory+search.name);
//****************************************
shellExecute(handle,nil,'F',nil,nil,SW_ShowNormal);
F:=ListBox1.Items.Strings[Listbox1.ItemIndex];
  assignfile(F, mask);
  reset(F);
    while not EOF(f) do
    begin
      readln(f,st);
      read(F,A,S,D,H,G,N);
      //memo1.Lines.Add(floattostr(S));
      if g<>0 then
      series1.AddXY(s,ln(g)*0.43753);
    end;
  closeFile(F);
      Until FindNext(search)<>0;
    end;
  if FindFirst(Directory+'*.*', faDirectory,search)=0 then
    begin
      repeat
        if((search.Attr and faDirectory)=faDirectory) and(search.name[1]<>'.') then
        GetAllFiles(Directory+search.name+'\'+ExtractFileName(mask));
      until FindNext(search)<>0;
      FindClose(search);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  directory: string;
  mask: string;
begin
  Listbox1.Items.Clear;
  directory:='D:\Delphi\';
  mask:='TPG300_64_5F4.txt';
  GetAllFiles(Directory+mask);
end;

end.
Но что-то все равно не то....может я что-то не так делаю? Я с этим вообще впервые сталкиваюсь, дуб дубом тут
Николай ПН вне форума Ответить с цитированием
Старый 15.11.2010, 22:47   #6
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Цитата:
shellExecute(handle,nil,'F',nil,nil ,SW_ShowNormal);
здесь вы пытаетесь открыть символ 'F', Здесь должен быть путь к файлу и его имя -
Цитата:
ListBox1.Items.Strings[Listbox1.ItemIndex];
Цитата:
F:=ListBox1.Items.Strings[Listbox1.ItemIndex];
А здесь переменной определяющей тип файла, вы присваиваете путь к этому файлу.
Этого делать не нужно.

Цитата:
assignfile(F, mask);
Здесь, вместо mask должно быть имя файла и путь к нему - это и есть
Цитата:
ListBox1.Items.Strings[Listbox1.ItemIndex];
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Старый 15.11.2010, 23:33   #7
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Ghost of Night Посмотреть сообщение
здесь вы пытаетесь открыть символ 'F', Здесь должен быть путь к файлу и его имя -


А здесь переменной определяющей тип файла, вы присваиваете путь к этому файлу.
Этого делать не нужно.


Здесь, вместо mask должно быть имя файла и путь к нему - это и есть
все равно не понимаю зачем это делать, точнее что происходит, если открыть файл можно через assignfile
Николай ПН вне форума Ответить с цитированием
Старый 16.11.2010, 11:22   #8
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

положи проект целиком.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 16.11.2010, 16:25   #9
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Николай ПН через AssignFile() вы получаете доступ к чтению/записи файла, а через ShellExecute() вы этот файл запускаете (точно так же, как если бы вы например щелкнули по нему мышью).
А вам собственно как этот файл открыт нужно???

Цитата:
Сообщение от Z1000000 Посмотреть сообщение
положи проект целиком.
Зачем? В ответе #6 есть все необходимое для ответа на вопрос #1!
Хакинг - не преступление, а способ выживания.

Последний раз редактировалось Stilet; 16.11.2010 в 20:41.
Ghost of Night вне форума Ответить с цитированием
Старый 16.11.2010, 23:47   #10
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию

Суть программы вот в чем, я выполняю поиск по конкретной директории, после чего вывожу все файлы(с полным путем) в ListBox, а после выбирая какой-либо файл, рисую график в Tchart. В файле несколько столбцов с цифрами.
Николай ПН вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выбор существующих БД из Combobox Молоток БД в Delphi 2 30.08.2010 04:40
ListBox (Delphi7) eeyou1 Помощь студентам 13 17.08.2010 12:34
Выбор из combobox deadneoo БД в Delphi 0 27.04.2010 19:05
Работа с ListBox или ComboBox Aleksandr Общие вопросы Delphi 5 02.04.2010 14:27
работа с Combobox и Listbox TSilver Общие вопросы Delphi 7 18.06.2009 18:48