Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 20:32   #21
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
дата модуль создавался первым
Не рекомендую. Не уверен даже что он первым будет выбран, поскольку он не совсем форма.
Я уже сказал - У Датамодуля есть свой OnCreate. Туда и пихнуть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2013, 20:48   #22
Andrej_K
Форумчанин
 
Регистрация: 27.07.2013
Сообщений: 256
По умолчанию

Немного тупил, искал Create у CheckListBox)))))))

Поржал сам с себя и потом сделал так:
Код:
procedure TDataModuleVynos.DataModuleCreate(Sender: TObject);
begin
While not DataModuleVynos.ADOTableKluchevyeSlova.eof do
begin
 FormGlavnoeOkno.CheckListBoxSpisokSlov.Items.Add(DataModuleVynos.ADOTableKluchevyeSlova.FieldByName('Slova').AsString);
 DataModuleVynos.ADOTableKluchevyeSlova.Next;
end;
end;
А менять местами очереди создания мне тоже как-то «покорёбило».

Кстати, Стилет, я так и не разобрался вот с этим:
Код:
Table.Fields[0].asString
Сделал по другому:
Код:
DataModuleVynos.ADOTableKluchevyeSlova.FieldByName('Slova').AsString
Можешь пояснить про разницу?

Последний раз редактировалось Stilet; 23.12.2013 в 21:48.
Andrej_K вне форума Ответить с цитированием
Старый 23.12.2013, 21:00   #23
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Но почему-то не "покорёбило" обращаться к главной форме из дата модуля, который как раз и предназначен для того чтобы к его содержимому обращались все остальные.
А то что он создается первым, если его "назначить" таковым, то ничего абсолютно в этом криминального нет. Очень давно пользуюсь этим приемом и ничего плохого ни разу не произошло.
Да и почему должно произойти. Логика простая: созданное первым визуальное окно (форма) становится главным (Борланд так решил, не мы с вами), а дата модуль не форма и не визуальная, а лишь контейнер для других не визуальных компонентов.
И что же такого неприятного, непонятного и необратимого может произойти, если его создание будет на первом месте?
Кстати, манипуляция, которую я показал приводит лишь к такому коду:
Код:
begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Прик вне форума Ответить с цитированием
Старый 23.12.2013, 21:40   #24
Andrej_K
Форумчанин
 
Регистрация: 27.07.2013
Сообщений: 256
По умолчанию

Ну, получается, что так и так — одинаково, только с разных сторон?
Andrej_K вне форума Ответить с цитированием
Старый 23.12.2013, 21:51   #25
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Нет, не одинаково. К датамодулю обычно обращение с разных форм, о которых он обычно ничего не знает и знать не должен. И прямой смысл его создавать первым. Присоединяюсь к рядам Прик в этом вопросе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2013, 21:52   #26
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Можешь пояснить про разницу?
Могу. Fields[] дает поле по его номеру в наборе (не в таблице базы а именно в наборе, полученном запросом). Номер этот по порядку начиная с нуля. В данном случае берется первая колонка. Но поскольку у полей кроме номера есть еще и имена можно обращаться к ним по именам, что и делает FieldByName.
Вот и вся разница.
Цитата:
так и так — одинаково, только с разных сторон?
В общем то одинаково но мелкие нюансы всетки существуют.
кстати мой опыт не предполагает использования датамодулей. Я их считаю помехой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2013, 23:30   #27
Andrej_K
Форумчанин
 
Регистрация: 27.07.2013
Сообщений: 256
По умолчанию

Цитата:
кстати мой опыт не предполагает использования датамодулей. Я их считаю помехой.
Почему и как ты без них обходишься?
Andrej_K вне форума Ответить с цитированием
Старый 23.12.2013, 23:42   #28
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Легко. Все компоненты держу либо в форме, где они нужны, либо если они используются для разных форм закатываю их в класс в отдельном юните, а сам объект класса создаю и освобождаю по мере необходимости там где понадобится.
Таким образом мне по барабану когда что из компонентов создается и по какому ордеру. В любом случае обращение к базе идет после того как все что нужно создать уже создано и давно работает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.12.2013, 09:57   #29
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
закатываю их в класс в отдельном юните, а сам объект класса создаю и освобождаю по мере необходимости там где понадобится
Ни чем не отличается от DataModule создаваемого и освобождаемого по мере необходимости
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.12.2013, 10:54   #30
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Ни чем не отличается от DataModule создаваемого и освобождаемого по мере необходимости
Наоборот. Если я в Датамодуль закатал +100500 компонентов, а в ходе работы мне из них всех понадобится только один, мне что создавать всю кагалу?
Я уже проходил такое, быстро понял что стратегия проигрышная. А держать кучу память создав датамодуль заранее зная что им пользоваться будут от силы раз в столетье не очень выгодно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли такой компонент в Delphi? bakanaev Общие вопросы Delphi 2 09.07.2013 11:54
Есть ли такой компонент в Delphi bakanaev Общие вопросы Delphi 5 07.04.2013 13:51
Подскажите пожалуйсто, есть-ли такой компонент? dinamid Компоненты Delphi 6 23.12.2009 09:19
Сумма прописью, есть ли такой компонент? Vit@L Общие вопросы Delphi 8 01.12.2009 13:10
Есть ли такой компонент? artemavd Компоненты Delphi 6 11.05.2009 01:47