IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Работа со списком строк
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Требуется разработать программу для работы со списками строк. Структура объектов пользовательского класса следующая:
Кадры: имя,номер цеха, разряд;
Список содержит строки с идентификатором объекта и связанной со строкой объект. Для визуализации списка используется компонент TListBox. Предусмотреть создание, просмотр и редактирование объектов, а так же сохранение объектов в файле и их загрузку из файла.

Во-первых, объясните пожалуста, что имеется ввиду под: "Список содержит строки с идентификатором объекта и связанной со строкой объект" и как это можно осуществить?

Ещё проблема с определением в главном модуле класса объектов (Кадры: имя,номер цеха, разряд), размещаемых в списке...(сначало нужно опредилить объект, а потом класс этих объектов или как?? покажите пожалуста на моём примере..)

Причём в классе требуется определить конструктор вида:

constructor TMyObject.Create(поле1:тип;....);
begin
inherited Create;
<инициализация полей>
end;


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Значит, смотри: переносим из ListBox2 (источник) в ListBox1 (приемник)...

И источнику и приемнику назначаем DragMode = dmAutomatic, и у приемника в обработчиках OnDragOver/OnDragDrop делаем:

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var currPeople: TPeople;
begin
if Source = ListBox2 then
begin
// При удалении строки из источника удаляется и объект, поэтому создаем новый !!!
currPeople := TPeople.Create(
TPeople(TListBox(Source).Items.Objects[TListBox(Source).ItemIndex]).fName,
TPeople(TListBox(Source).Items.Objects[TListBox(Source).ItemIndex]).fWorkshop,
TPeople(TListBox(Source).Items.Objects[TListBox(Source).ItemIndex]).fRange
);
// Добавляем его в приемник
TListBox(Sender).Items.AddObject(currPeople.fName, currPeople as TObject);
// Удаляем из источника
TListBox(Source).Items.Delete(TListBox(Source).ItemIndex);
end
end;

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
// разрешаем перетаскивание только если источник - ListBox2, и в нем что-то выбрано
Accept := (Source = ListBox2) and (TListBox(Source).ItemIndex >= 0);
end;

Вот и все в принципе... Для обратной операции - меняешь в обработчиках источник (я специально сделал так, что изменить надо будет только в одном месте)
 К началу страницы 
+ Ответить 

Сообщений в этой теме
18192123   Работа со списком строк   23.04.2008 22:07
18192123   Вот что получилось: interface type TPeople=class …   24.04.2008 0:32
18192123   Объясните пожалуста, в чём ошибка..не компилится …   4.05.2008 0:22
volvo   Ошибка - в том, что ты не приводишь реализацию мет…   4.05.2008 0:34
18192123   Ошибка - в том, что ты не приводишь [b]реализацию…   4.05.2008 1:41
volvo   :) Ты добавила просто процедуры/функции, а надо бы…   4.05.2008 2:02
18192123   Итак, продолжу задавать вопросы) На 1-й форме у м…   5.05.2008 3:24
volvo   Можно задать тебе один вопрос: что ты делаешь вот …   5.05.2008 4:12
18192123   Можно задать тебе один вопрос: что ты делаешь вот…   5.05.2008 4:34
volvo   Я не заметил этого... Ты просто заносишь в парамет…   5.05.2008 4:43
18192123   И снова здраствуйте! В процессе работы у меня …   8.05.2008 21:45
volvo   Погоди... Я не понял, что происходит? Ты описываеш…   8.05.2008 22:24
18192123   Погоди... Я не понял, что происходит? Ты описывае…   8.05.2008 22:40
18192123   Это всё было попыткой обратиться к уже существующ…   10.05.2008 2:03
volvo   Я показал тебе в предыдущем сообщении, что надо сд…   10.05.2008 4:36
18192123   Я показал тебе в предыдущем сообщении, что надо с…   10.05.2008 6:29
18192123   У меня появился ещё один вопрос.. Пусть на Form3 м…   10.05.2008 21:48
volvo   Точно так же: получаешь сам объект и изменяешь его…   10.05.2008 22:56
18192123   Точно так же: получаешь сам объект и изменяешь ег…   10.05.2008 23:47
volvo   Ты не удаляешь строку, и естественно не удаляешь о…   11.05.2008 0:00
18192123   Здраствуйте. У меня вопрос возник по механизму пер…   12.05.2008 1:08
volvo   Значит, смотри: переносим из ListBox2 (источник) в…   12.05.2008 2:13
18192123   Вот и все в принципе... Для обратной операции - м…   12.05.2008 2:55


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.01.2021 17:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name