![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день или вечер
Не знаю как точно задать свой вопрос, но попробую по конкретней объяснить. В общем суть такая, кидаем на форму компоненты которые отвечают за отображение информации, например (Image, listbox, FileListBox, memo, WebBrowser, и. т. д) Далее заполняем listfox или FileListBox строками. После при выборе строк открывались данные в этих компонентах, то есть например в FileListBox строка1 в memo выводиться текст в Image картинка. Выбрали строка2 в memo другой текст и Image другая картинка. Как то вот так. Вариант базы данных не предлагать. |
|
#2
|
||||
|
||||
|
Используй события.
|
|
#3
|
|||
|
|||
|
События на что? можно по подробней, в каком направление двигаться?
|
|
#4
|
|||
|
|||
|
например, событие OnClick в ListBox:
Код:
procedure TForm1.ListBox1Click(Sender : TObject);
begin
case ListBox1.ItemIndex Of
0 :
begin
Memo1.Lines.LoadFromFile('0.txt');
Image1.Picture.LoadFromFile('0.bmp');
end;
end;
end;ЗЫ. Пример простейший, с заранее запрограммированными вариантами. Можно не очень "дорого" сделать простейшую динамику, но там код посложнее будет. ЗЗЫ. Ну и уж почитай как все устроено в Delphi. Нельзя же каждую фигню спрашивать. |
|
#5
|
|||
|
|||
|
Что то я не правильно свою мысль высказал. Скорей всего так, допустим в директории есть три папки, в каждой папке по одному файла txt и jpg. Я думаю что придется создавать еще один связывающий файл с listbox и с файлами которые в папках (типо ссылок), можно ли так реализовать?
|
|
#6
|
|||
|
|||
|
Все можно. Вопрос только в том, как лучше сделать для конкретной задачи.
Например, для описанных условий (папки с файлами), создаем в папке программы папку для ресурсов. Пусть она называется Data. В ней создаем подпапки с любыми названиями (эти имена будут показываться в ListBox). В каждой такой подпапке кладем текстовый файл с именем TEXT.txt и картинку с именем IMAGE.bmp. В итоге имеем что-то типа такой структуры: Код:
AppFolder | |-Data | |-Dir1 | |-TEXT.txt | |-IMAGE.bmp | |-Dir2 | |-TEXT.txt | |-IMAGE.bmp | |-Dir3 | |-TEXT.txt | |-IMAGE.bmp ... Теперь нам нужен код, который: 1. При старте программы заполнит ListBox. 2. При выборе пункта в ListBox загрузит соотв. текст и картинку. Код:
procedure TForm1.FormCreate(Sender : TObject);
var
F : TSearchRec;
iFound : Integer;
RootPath : String;
begin
ListBox1.Items.Clear;
RootPath := ExtractFilePath(Applicaton.ExeName);
RootPath := IncludeTrailingPathDelimiter(RootPath) + 'Data\';
iFound := FindFirst(RootPath + '*.*', faAnyfile+fadirectory, F);
While iFound = 0 Do
Begin
If ((F.Attr And fadirectory) <> 0) And (F.Name <> '.') And (F.Name <> '..') Then
ListBox1.Items.Add(F.Name);
iFound := FindNext(F);
End;
FindClose(F);
end;
procedure TForm1.ListBox1click(Sender : TObject);
var
RootPath : String;
begin
If ListBox1.ItemIndex = -1
Then
Begin
Memo1.Lines.Clear;
Image1.Picture.Graphic := Nil;
End
Else
Begin
RootPath := ExtractFilePath(Applicaton.ExeName);
RootPath := IncludeTrailingPathDelimiter(RootPath) + 'Data\' + ListBox1.Items[ListBox1.ItemIndex]+'\';
Memo1.Lines.LoadFromFile(RootPath + 'TEXT.txt');
Image1.Picture.LoadFromFile(RootPath + 'IMAGE.bmp');
End;
end;Как-то так. |