Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: slavanb  
Дата: 30.03.14 06:05
Оценка:
при разработке большого приложения возникла необходимость объединить tIBQuery , tCombobox и tPanel в один новый компонент для ускорения работы. Чтобы в разных формах приложения можно было вставлять один часто повторяющийся визуальный кусок кода. Нужно сделать компонент типа tPanel у которого в свойствах и событиях будут такие свойства как в tIBQuery (соединение с базой данных и транзакция) часть полученных данных из запросов которого будут отображаться в нескольких tCombobox . Перерыл весь интернет не смог определиться в каком направление начинать рыть , какой брать компонент за основу. В инете примеры только на примитивные компоненты. Может кто подобным вопросом задавался и есть какие-то решения, примеры и ссылки?
Re: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: maloi_alex СССР  
Дата: 30.03.14 08:32
Оценка:
Здравствуйте, slavanb, Вы писали:

Ну а чем фреймы не подходят? File/New/Frame
Re[2]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: slavanb  
Дата: 30.03.14 09:31
Оценка:
Здравствуйте, maloi_alex, Вы писали:

_>Здравствуйте, slavanb, Вы писали:


_>Ну а чем фреймы не подходят? File/New/Frame


Спасибо за наводку, все подходит, я почему-то уже не первый год работая в Делфи не пользовался ими, а оказалось как раз самое то , что надо!
Re[3]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 31.03.14 07:36
Оценка:
Здравствуйте, slavanb, Вы писали:

_>>Ну а чем фреймы не подходят? File/New/Frame

S> Спасибо за наводку, все подходит, я почему-то уже не первый год работая в Делфи не пользовался ими, а оказалось как раз самое то , что надо!

Ну можно конечно и то, что ты хочешь.


type
  TMyPanel=class(TPanel)
  private
    FQuery:TIBQuery;
    FCombo:TComboBox;
  public 
    Constructor Create(Owner:TComponent); override;
    Destructor Destroy; override; 
  published
    property Query:TIBQuery read FQuery;
    property Combo:TComboBox read FCombo;
  end;   

Constructor TMyPanel.Create(Owner:TComponent);
begin
  inherited;
  FQuery:=TIBQuery.Create(Self);
  FCombo:=TComboBox.Create(Self);
  FCombo.Top:=10; FCombo.Left:=10; 
  FCombo.Parent:=Self;
  // добавить разные инициализации по месту 
end;

Destructor TMyPanel.Destroy; 
begin
  FCombo.Free;
  FQuery.Free;
  inherited;
end;
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[4]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: Danchik Украина  
Дата: 31.03.14 12:14
Оценка:
Здравствуйте, DarkMaster, Вы писали:

DM>Здравствуйте, slavanb, Вы писали:


_>>>Ну а чем фреймы не подходят? File/New/Frame

S>> Спасибо за наводку, все подходит, я почему-то уже не первый год работая в Делфи не пользовался ими, а оказалось как раз самое то , что надо!

DM>Ну можно конечно и то, что ты хочешь.


[Skip]

Если меня не подводит память, после загрузки такого компонента, будем иметь сдублированные элементы.

Давненько я на Делфях не писал, уж и не упомню как со всем этим боролся. Что то с сериализацией баловался и Loaded
Re[5]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 01.04.14 07:20
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Если меня не подводит память, после загрузки такого компонента, будем иметь сдублированные элементы.


D>Давненько я на Делфях не писал, уж и не упомню как со всем этим боролся. Что то с сериализацией баловался и Loaded


Вроде не должно — обычный контейнер же.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: kuaw26 Россия  
Дата: 02.04.14 09:01
Оценка:
Здравствуйте, slavanb, Вы писали:

S>при разработке большого приложения возникла необходимость объединить tIBQuery , tCombobox и tPanel в один новый компонент для ускорения работы.


ИМХО не надо так делать. Смешивание UI и доступа к БД — верный путь к проблемам. Доступ к данным должен быть централизован. Особенно если, как вы пишите, идет разработка большого приложения.
Советую еще разок подумать, так как кратковременная выгода полученная от компоненто кидательства потом вылезет боком в 100-ом размере при поддержке и изменении проекта.
Re[2]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: Alex.Che  
Дата: 02.04.14 09:17
Оценка:
Hello, kuaw26!
You wrote on Wed, 02 Apr 2014 09:01:47 GMT 2 апреля 2014 г. 13:01:47

> Доступ к данным должен быть централизован.


Порочный паттерн навязанный чуждой идеологией.

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
От: kuaw26 Россия  
Дата: 03.04.14 03:16
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Hello, kuaw26!

AC>You wrote on Wed, 02 Apr 2014 09:01:47 GMT 2 апреля 2014 г. 13:01:47

>> Доступ к данным должен быть централизован.


AC>Порочный паттерн навязанный чуждой идеологией.


Я вобщем то на своих ошибках пришел к этому мнению — без чуждых идеологий

По молодости как раз писал как топик стартер — все во одну кучу валил
И логику в обработчиках на OnButtonClick писал...

И когда, после сдачи и внедрения вдруг надо было что-то доделать неучтенное на этапе исходной постановки задачи — вот это "сваливание все в одну кучу" зачастую и порождало проблемы (решаемые конечно), но сильно уж трудозотратные и череватые багами типа "в 99% исправил, а в одном забыл".

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