Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.10.2009, 20:20
Аватар для Лунтик-Некрофил
Лунтик-Некрофил Лунтик-Некрофил вне форума
Начинающий
 
Регистрация: 28.09.2009
Сообщения: 165
Репутация: 12
Подмигивание Тип. Файлы+ ListBox

Доброго времени суток, явился сюда с проблемкой. Примерная задача - считать записи из типизированного файла с определённым индексом(не знаю как правильно написать, поэтому напишу с индексом) в ListBox. Все записи должны располагаться в отдельных пунктах ListBox'а и при выборе одного его записи должны записываться например в Memo.
Код:
Type bl=record
M:string[255]
N:string[255]
end;
var f:file of bl;
buf:bl;
........
Как написать прогу не знаю, поэтому прошу у вас.
В ListBox при выборе M в Memo должны перенестись все записи N.Наверно. Возможно задание написал не очень верно, но если что - поясню проще. Заранее спасибо)
Ответить с цитированием
  #2  
Старый 26.10.2009, 20:23
Аватар для Лунтик-Некрофил
Лунтик-Некрофил Лунтик-Некрофил вне форума
Начинающий
 
Регистрация: 28.09.2009
Сообщения: 165
Репутация: 12
По умолчанию

Короче в файле несколько M-записей, каждая из них содержит несколько N-записей. Требуется при выборе в ListBox M-записи в Memo вывести все N-записи этой M-записи)
Ответить с цитированием
  #3  
Старый 26.10.2009, 23:34
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Цитата:
Сообщение от Лунтик-Некрофил
Короче в файле несколько M-записей, каждая из них содержит несколько N-записей. Требуется при выборе в ListBox M-записи в Memo вывести все N-записи этой M-записи)
Сам то понял, что написал)))
Понял так, у тебя типизированный файл записей определенной структуры...
Ты хочешь выбрать из списка ListBox запись, а в Memo отобразить содержимое записи???
Далее так...
1. Считываешь весь файл от начала до конца, номер строки в файле вводишь в список комбобокс
2. Когда выбираешь строку в комбобокс, считываешь номер этой строки
3. Опять считываешь файл сначала, но на нужной записи останавливаешься, и считываешь ее содержимое
Примерно так...
Код:
type
record : record//запись
 i : integer;
 f : String;
 m : string;
end;
var
file : file of record;//файл записей
...
while not EOF(File) do begin//заполняем лист бокс
 read (File, Record);
 ListBox.Items.Add(Record.Index);
end;
...
procedure TForm_Main.ListBox1Click(Sender: TObject);//клик по лист бокс
var
 i : integer;
begin
 i := ListBox1.SelCount;//выбранная запись
while not EOF(File) do begin
 read (File, Record);
 if i = Record.i then 
 Memo.Lines.Add(Record.f+Record.m);//добавляем содержимое записи
end; 
end;
Писал навскидку, возможны ошибки...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 26.10.2009 в 23:54.
Ответить с цитированием
  #4  
Старый 26.10.2009, 23:42
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А вы не перепутали ListBox и ListView
Для последнего сделать такое несложно, а вот для ListBox, несколько сложнее т.к. структуру придется хранить в виде объекта для каждой строки в неявном виде примерно так:
Код:
Type
  TUserRec = class
   M,N: String;
  end;
...

Var
  UserRec: TUserRec;
begin
 UserRec := TUserRec.Create;
 ListBox1.AddItem('Item1', UserRec);
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 26.10.2009 в 23:52.
Ответить с цитированием
  #5  
Старый 27.10.2009, 00:35
Аватар для Лунтик-Некрофил
Лунтик-Некрофил Лунтик-Некрофил вне форума
Начинающий
 
Регистрация: 28.09.2009
Сообщения: 165
Репутация: 12
По умолчанию

В принципе мне безразлично какой элемент(комбо,лист или т.п.), мне просто надо обращаться к записи из списка. Просто с View никогда не работал. Если несложно - можно примерчик с view?
Ответить с цитированием
  #6  
Старый 27.10.2009, 20:20
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вот вам демка http://upload.com.ua/get/901127164/
Пользуйтесь.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025