Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Создаю класс и...

Здравствуйте Все,

Проблема! /Delphi6/
Создаю класс, который работает с данными. В частном случае без
использования БД. Работать-то он работает, а вот весь гиморой именно
с отображением данных. Т.е. Создаю форму, подключаю модуль с классом.
Дальше распологаю на форме различные компоненты, например ListBox. И
начинаю обрабатывать все возможные режимы: создание экземпляра класса,
при загрузке формы отображение определенных полей класса в ListBox,
при изменении данных заново переделывать содержимое ListBox, и еще
море рутинных действий.

Т.к. я не очень люблю рутину, то возник вопрос. А нелзя-ли все это
сделать в классе и привязать класс к тому-же ListBox-у на этапе
создания экземпляра класса? Т.е. в гавной форме при создании класса,
нечто вроде: MyObject:=TMyClass.Create(self, ListBox1);

Вот пока и пробую, но неуспешно.

Просьба такая:
1. Хочу понять, реально такое сделать и много-ли гемороя?
2. Можно ли сделать как-то по другому с меньшими затратами и более
удобно?
3. Подскажите свои идеи, если не жалко!

ЗЫ: Еще вижу вариант создание компонента MyListBox, потомок ListBox,
со встроенным классом. Но тут пока на уровне идеи!

Ответить   Thu, 25 Mar 2004 09:11:54 +0500 (#111459)

 

Ответы:

[...]

[...]

Привет

Обычно в таком случае поступают именно так - то есть делают отдельный
дельфийский
компонент (но это, конечно, если подобное сочетание твой_класс + ListBox -
типовое, будет где-то
еще у тебя встречаться). Примеров компонентов с исходниками полно, например,
на том же torry.ru.

P.S.

Можно и так (можно как угодно, насколько позволяет язык :) ).
Тогда внутри твоего класса, очевидно, должны быть прописаны
обработчики событий TListBox'а (скажем, твой класс что-то делает
при событии выбора элемента в ListBox) и присвоены при инициализации
твоего объекта свойствам ListBox1'а (ListBox1.OnXXX := MyMethodInMyClass;)
(только, соответственно, используемых тобой в классе обработчиков
событий ListBox1 определять в форме тогда не имеет смысла)
Сам твой класс создается, например, в обработчике события OnCreate формы
(и при создании настраивает ListBox1), уничтожается в OnDestroy формы.

Может быть еще нужно подумать, как провести границы между
объектами взаимодействия с контролами [как разбить всю задачу на
объекты] (если несколько объектов, несколько контролов, пересекающиеся
взаимодействия), отталкиваясь от возможностей языка, а с другой стороны
от типовых решений (начиная от стандартных дельфийских, например,
TDBListBox - который ведь компонент, сделанный на базе ListBox'а, TBDEdit и
т.д.;
как разработчики проектировали взаимодействия, напр., с невизуальным
контролом
TQuery и т.п.) + еще зависит от того, насколько твои разработки типовые и
будут
где-то еще использоваться (а то если нет - можно просто форму делать, и в
ней,
кроме событий, несколько методов, которые грузят что нужно из твоих объектов
и т.п.)

Вот такие пока мысли...

Исходное сообщение От: "Шистеров Павел" <schis-pm@j*****.ru>
Кому: "comp.soft.prog.prog" <philoso***@s*****.net>; <207775>
Отправлено: 25 марта 2004 г. 7:11
Тема: Создаю класс и...

http://subscribe.ru/archive/comp.soft.prog.prog/msg/111459

Номер выпуска : 2695
Возраст листа : 185 (дней)
Количество подписчиков : 377
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/111856
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "VladS" Thu, 25 Mar 2004 16:45:28 +0300 (#111856)

 

Здрям!

Вот это ЗЫ, как мне кажется будет оптимально.

MyListbox = class(TListBox)
MyClass:TMyClass;
.....
procedure Create;
end;

procedure create;
begin
inherited Create(Form1);
MyClass:=YMyClass.create;
end;

Я это так представляю.

С уважением monah
e-mail : janal***@n*****.ru
сайт : http:\\janalex.narod.ru
--
Номер выпуска : 2696
Возраст листа : 185 (дней)
Количество подписчиков : 377
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/111967
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Thu, 25 Mar 2004 22:06:39 +0600 (#111967)