при разработке большого приложения возникла необходимость объединить tIBQuery , tCombobox и tPanel в один новый компонент для ускорения работы. Чтобы в разных формах приложения можно было вставлять один часто повторяющийся визуальный кусок кода. Нужно сделать компонент типа tPanel у которого в свойствах и событиях будут такие свойства как в tIBQuery (соединение с базой данных и транзакция) часть полученных данных из запросов которого будут отображаться в нескольких tCombobox . Перерыл весь интернет не смог определиться в каком направление начинать рыть , какой брать компонент за основу. В инете примеры только на примитивные компоненты. Может кто подобным вопросом задавался и есть какие-то решения, примеры и ссылки?
Re: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
Здравствуйте, 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]
Здравствуйте, DarkMaster, Вы писали:
DM>Здравствуйте, slavanb, Вы писали:
_>>>Ну а чем фреймы не подходят? File/New/Frame S>> Спасибо за наводку, все подходит, я почему-то уже не первый год работая в Делфи не пользовался ими, а оказалось как раз самое то , что надо!
DM>Ну можно конечно и то, что ты хочешь.
[Skip]
Если меня не подводит память, после загрузки такого компонента, будем иметь сдублированные элементы.
Давненько я на Делфях не писал, уж и не упомню как со всем этим боролся. Что то с сериализацией баловался и Loaded
Re[5]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
Здравствуйте, Danchik, Вы писали:
D>Если меня не подводит память, после загрузки такого компонента, будем иметь сдублированные элементы.
D>Давненько я на Делфях не писал, уж и не упомню как со всем этим боролся. Что то с сериализацией баловался и Loaded
Вроде не должно — обычный контейнер же.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
Здравствуйте, slavanb, Вы писали:
S>при разработке большого приложения возникла необходимость объединить tIBQuery , tCombobox и tPanel в один новый компонент для ускорения работы.
ИМХО не надо так делать. Смешивание UI и доступа к БД — верный путь к проблемам. Доступ к данным должен быть централизован. Особенно если, как вы пишите, идет разработка большого приложения.
Советую еще разок подумать, так как кратковременная выгода полученная от компоненто кидательства потом вылезет боком в 100-ом размере при поддержке и изменении проекта.
Re[2]: Объединение tIBQuery и tCombobox и tPanel в один компонент [D7, WinXP]
Здравствуйте, 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% исправил, а в одном забыл".