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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 00:09   #1
jumper_ua
 
Регистрация: 14.02.2010
Сообщений: 8
По умолчанию проблема с listbox...



список берется с файла csci.ini
потом при нажатии на определенную строчку надо чтобы в открытой (статической) форме вывелся текст с файла files/tutorial1.txt или tutorial23.txt, по счету.

например 1 строчка выводит tutor1.txt вторая tutor2.txt и т.д.
проблема в том, как задать путь для каждой n-го строчки.
т.е. есть еще 1 файл csci.cfg в котором первая строчка = количество ссылок, в моем случае 10, а потом n ссылок типа 'files\tutorial1.txt' и так дальше.

как с главной формы при запуске программы реализовать присваивание каждой строчки определенному файлу?
Код:
for i := 1 to k do
begin
readln(b);
listbox1.ItemIndex:=i;
чтобы при listbox1.onclick делалось form4.edit1.Text:=b;  ?
в форме где будет выводится текст:
Код:
procedure TForm4.FormCreate(Sender: TObject);
var ind:string; f:string;
begin
f:=edit1.Text;
assign(inpute, f); при таком раскладе пишет, что не совместимы text и tpersistent, но как иначе задать каждой строке определенный путь?


Заранее спасибо!
Делаю для себя, так что это не срочно

Последний раз редактировалось Stilet; 15.02.2010 в 07:56.
jumper_ua вне форума Ответить с цитированием
Старый 15.02.2010, 01:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

ListBox состоит из строк - Items.
У каждой строки есть свойство Objects[Index], где индекс указывает, к какой именно строке "привязан" данный объект.
А итемсы, они простые, у них есть метод
Items.AddObject('MyObject', TObject(vsSmallIcon));
- тем самым вы привяжете к этому итемсу объект "иконка" (это как пример)...
Посмотрите в штатном хэлпе - он весьма полезен и на 90% заменяет пустые обращения на форумы...
mihali4 вне форума Ответить с цитированием
Старый 15.02.2010, 18:14   #3
jumper_ua
 
Регистрация: 14.02.2010
Сообщений: 8
По умолчанию -)

спасибо конечно

Items.AddObject('MyObject', TObject(vsSmallIcon));
но список итемов берется с 1го файла, а с 2ого (конечно можно и с первого, но я еще не понял как) берутся пути к файлам.
а ошибка возникает с несовместимостью string и tpersistent, но ведь каким еще образом впихнуть импортируемые ПУТИ в assignfile(input, f); где f = string (так как я f:=с файла), а пишет не совместимость...

Items.AddObject('MyObject', TObject(vsSmallIcon));

красное, это, скажем, строчка или файл??
зеленое = edit1.text скажем?
просто если так то я вроде понял как решить маленькую проблемку)
поподробней немного))
jumper_ua вне форума Ответить с цитированием
Старый 15.02.2010, 18:18   #4
jumper_ua
 
Регистрация: 14.02.2010
Сообщений: 8
По умолчанию

привязан обьект, т.е. как мне привязать к строчке каждой определенную процедуру, скажем импортнуть с файла и присвоить n-ю.

Вроде все...
jumper_ua вне форума Ответить с цитированием
Старый 15.02.2010, 18:54   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

В onDblClick:
Код:
listBox.loadFromFIle(listbox.items[listbox.itemindex]);
TwiX вне форума Ответить с цитированием
Старый 15.02.2010, 22:44   #6
jumper_ua
 
Регистрация: 14.02.2010
Сообщений: 8
По умолчанию

ничего не пойму...
короче надо вообще делать цикл или нет?

Код:
procedure TForm1.ListBox1Click(Sender: TObject);
var k,i:integer; b:string;
begin
assignfile(input, 'csci.cfg');
reset(input);
readln(k);
for i := 1 to k do
begin
readln(b);
listbox1.items.IndexOf(b)
end;
closefile(input);
form4.Show;
end;
толку нету...
мне надо form4.label1.caption присвоить тексту с файла, но если я выберу 1 елемент listbox'а, то надо с 1го файла, если 2 выберу, тогда с второго...

помогите)

Последний раз редактировалось jumper_ua; 15.02.2010 в 23:06.
jumper_ua вне форума Ответить с цитированием
Старый 15.02.2010, 23:04   #7
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Кинь на форму TMemo и по Click
Код:
Memo1.Lines.loadFromFIle(listbox.items[listbox.itemindex]);
psycho-coder вне форума Ответить с цитированием
Старый 15.02.2010, 23:21   #8
jumper_ua
 
Регистрация: 14.02.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Кинь на форму TMemo и по Click
Код:
Memo1.Lines.loadFromFIle(listbox.items[listbox.itemindex]);
почти все получилось, но есть 1 НО...
название файла откуда грузить берется не то что надо, мне надо путь брать не с названия строчки, а с файла, просто надо как то привязать к каждой строчке отдельно скрытый путь... как?)








+
listbox1.itemindex это вроде integer, а не string...
не получается...

Последний раз редактировалось jumper_ua; 15.02.2010 в 23:26.
jumper_ua вне форума Ответить с цитированием
Старый 15.02.2010, 23:25   #9
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

закинь названия файлов в массив и
Код:
var
  Arr: Array of String;
...
begin
  // Инициализация массива
end;

begin
  Memo1.Lines.loadFromFIle(Arr[listbox.itemindex]);
end;
Или используй статический массив
psycho-coder вне форума Ответить с цитированием
Старый 15.02.2010, 23:30   #10
jumper_ua
 
Регистрация: 14.02.2010
Сообщений: 8
Сообщение

[listbox.itemindex] это то что видит юзер при запуске проги в списке, а мне надо чтобы названия были не путями к файлам, а просто:

видит пользователь:
чит1
чит2
чит3
чит4

а это путь, который присваивается каждому с строк и не виден пользователю:
file/text1.txt
file/text2.txt
file/text3.txt
file/text4.txt

когда делаю как ты говоришь, грузится не file/text1.txt, а чит1 и ессесно пишет что не найден путь





----------------------------

короче, осталось только присвоить каждой строчке путь файла, но чтобы название строчки было обычное, а не было путем файла..

Последний раз редактировалось jumper_ua; 15.02.2010 в 23:38.
jumper_ua вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как добавить в listbox файлы(пишу с помощью bassplayer)(Listbox+opendialog=play) blackstersl Общие вопросы Delphi 11 09.06.2010 13:23
Из listbox в БД Alexeyss БД в Delphi 3 29.01.2010 11:31
Проблема переноса строк из одного списка (Listbox) в другой. hip3r Win Api 4 13.10.2009 11:59
проблема с listbox и listview. blackstersl Общие вопросы Delphi 3 06.05.2009 23:31
ListBox beygul Общие вопросы Delphi 10 05.10.2008 17:45