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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2007, 20:22   #1
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Радость Без понятия ListBox !

Доброе время суток всем!!!
С наступающим!!!!!!!!!!!!!
Помогите разабратся!!!
Мож чо элюментарное но я панять не магу!!!(((
дано папка с неизвесным количеством текстовых файлов и в неё пириодически добовлябтся текстовые файлы!
На форму помещяем мемо и ListBox !
В ListBox пишутся имена текстовых файлов которые лижат в ппке!
Кликаем по имени файла и в мемо загружается текст из файла!!!
Можно простой примерчик чтоб сообразить по быстрей!
Пожалусто!!!
Зарание блогодарен !!!
С уважением Volkogriz!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 28.12.2007, 20:59   #2
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Обработчик щелчка мыши в ListBox. Предполагается, что туда уже занесены имена файлов.
Код:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  Memo1.Lines.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]);
end;
Jeni вне форума Ответить с цитированием
Старый 28.12.2007, 21:52   #3
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Благадарю!!!
Всёб отличьно но я пишу в текст файле:
АФайл.txt
БФайл.txt
Он их находит но только рядом с самим исполняймым файлом!
Я хотел бы узнать если файлы хранить например в папке data как к ней путь прописать шоб проерамма искала их не рядом а именно в указанной папке памагите?
Вот код программы:
Код HTML:
var
  Form1: TForm1;
  path: string;
 fsource:textfile;

implementation

{$R *.dfm}

procedure TForm1.N9Click(Sender: TObject);
begin
Close
end;

procedure TForm1.FormCreate(Sender: TObject);
var ss:string;
begin

 assignfile(fsource,path+'Data\initialize.txt');
 reset(fsource);
 while not eof(fsource) do
  begin
   readln(fsource,ss);
   if ss='<categoriitem>' then
    begin
     ss:='';
    repeat
     begin
      readln(fsource,ss);
      if (ss[1]<>'<')and(ss[1]<>'-') then
      List.Items.Add(ss);
     end
    until pos('<',ss)<>0;
    end;
  end;
closefile(fsource);
end;


procedure TForm1.ListClick(Sender: TObject);
begin
  Memo1.Lines.LoadFromFile(List.Items[List.ItemIndex]);
end;

end.
За рание благадарю!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 28.12.2007, 22:08   #4
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Можно хранить в ListBox'е полные имена файлов (т.е. с указанием пути) или можно добавлять этот путь в момент открытия файлов.
Код:
procedure TForm1.ListBox1Click(Sender: TObject);
var
  Path: string;
begin
  Path := ExtractFilePath(Application.ExeName) + 'data\';
  Memo1.Lines.LoadFromFile(Path + List.Items[List.ItemIndex]);
end;
Здесь путь (переменная Path) вычисляется как путь к самой программе + подкаталог data.
Jeni вне форума Ответить с цитированием
Старый 28.12.2007, 22:18   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Радость

Большое спасибо!!!
Вот блин мне пака не разжевали не понял а теперь понял!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 29.12.2007, 11:13   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Jeni Посмотреть сообщение
Обработчик щелчка мыши в ListBox. Предполагается, что туда уже занесены имена файлов.
Код:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  Memo1.Lines.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]);
end;
В конце концов этот код выдаст ошибку Надо всегда проверять подобные действия
Код:
...Items[ListBox1.ItemIndex]...
тобиш
Код:
if ListBox1.ItemIndex >= 0 then ...
BOBAH13 вне форума Ответить с цитированием
Старый 31.12.2007, 01:18   #7
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
В конце концов этот код выдаст ошибку Надо всегда проверять подобные действия
Код:
if ListBox1.ItemIndex >= 0 then ...
Как это не покажется странным, но именно такая проверка как раз и не нужна - при пустом списке событие OnClick просто не вызывается, а если список не пустой, то при любом щелчке ItemIndex всегда будет >= 0.

Другое дело, что следует наличие файла перед его открытием, но обработка ошибок это вообще другая и очень большая тема.
Jeni вне форума Ответить с цитированием
Старый 31.12.2007, 09:19   #8
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Конечно Вам виднее :D

На то оно и названо !! Событие - OnClick, а не OnItemClick или чтот подобное...
BOBAH13 вне форума Ответить с цитированием
Старый 31.12.2007, 11:43   #9
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Вообще-то я не шутил, OnClick действительно не вызывается при пустом списке. Можете проверить. И это даже логично.
Jeni вне форума Ответить с цитированием
Старый 31.12.2007, 14:28   #10
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

а вот так проверить не помешает
Код:
if FileExists(ListBox1.Items[ListBox1.ItemIndex]) then
try
Memo1.Lines.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]);
except
memo1.clear;
Showmessage('Ошибка открытия файла.');
exit;
end;

Последний раз редактировалось _SERGEYX_; 31.12.2007 в 14:41.
_SERGEYX_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что можете посоветовать для более глубокого понятия и изучения Visual C++? Dmitriy_ZDO Visual C++ 1 04.09.2008 13:33
[ C# ]::[ ListBox ] Fire.id Общие вопросы .NET 1 13.01.2008 21:07
Про ListBox AlexMori Общие вопросы Delphi 2 09.01.2008 16:51
из ListBox в БД Spectre БД в Delphi 5 31.12.2007 13:58
ListBox lin Помощь студентам 1 04.06.2007 13:46