Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужна ли синхронизация, ?! 
V
    Опции темы
Демо
Дата 28.2.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(Romikgy @ 28.2.2006, 12:19 Найти цитируемый пост)
Или я не правильно вопросы задаю или .....


Исходи из того, что не TCustomForm использует, а наоборот, её юзают.


--------------------
    
PM MAIL ICQ Skype   Вверх
Snowy
Дата 28.2.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Romikgy @ 28.2.2006, 12:19 Найти цитируемый пост)
Это вызывает соответсвующую ф-цию?
Именно. Мы вызываем метод TForm и отдаем ему сообщение.
PM MAIL   Вверх
Romikgy
Дата 28.2.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Что я нашел в формах
Код

procedure TCustomForm.CreateParams(var Params: TCreateParams);

WndParent := Application.Handle;


Более об Application, упоминаний нет ( при создании окна)
Добавлено @ 12:40
Цитата(Snowy @ 28.2.2006, 11:31 Найти цитируемый пост)
Ты готов сам ловить все сообщения и передавать их во внутренней структуре VCL?
Учитывая, что она может поменяться в следующей версии?
Учитывая, что после всех трудов это может вообще не заработать?
Учитывая, что вероятность получения глюков - 90%?
Если готов - пробуй.

Тобишь сделать можно , но дабы не усложнять себе жизнь так не делают!

Так правильно?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Snowy
Дата 28.2.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Romikgy @ 28.2.2006, 12:33 Найти цитируемый пост)
Тобишь сделать можно
Теоретически можно все сделать.

Цитата(Romikgy @ 28.2.2006, 12:33 Найти цитируемый пост)
но дабы не усложнять себе жизнь так не делают
Согласись, что проще делать синхронизацию, чем городить огород с отделением TForm от TApplication.
Добавлено @ 12:48
Цитата(Romikgy @ 28.2.2006, 12:33 Найти цитируемый пост)
Более об Application, упоминаний нет ( при создании окна)
Смотри код
constructor TCustomForm.CreateNew(AOwner: TComponent; Dummy: Integer);
в самом низу строка:
Screen.AddForm(Self);
Это и есть регистрация формы.

PM MAIL   Вверх
Демо
Дата 28.2.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(Romikgy @ 28.2.2006, 12:33 Найти цитируемый пост)
Так правильно?


Нет, неправильно.

TApplication и TScreen используют методы форм, созданных в приложении, без синхронизации.

Я бы увеличил вероятность глюков дло 100% без всяких оговорок.


--------------------
    
PM MAIL ICQ Skype   Вверх
Romikgy
Дата 28.2.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Snowy @ 28.2.2006, 11:45 Найти цитируемый пост)
Теоретически можно все сделать.

почему теоретически?
Цитата(Snowy @ 28.2.2006, 11:45 Найти цитируемый пост)
Согласись, что проще делать синхронизацию, чем городить огород с отделением TForm от TApplication.

Да на все 100% smile
Добавлено @ 12:59
Демо,
Код

procedure TApplication.CreateHandle;
 FHandle := CreateWindow(WindowClass.lpszClassName, PChar(FTitle),
      WS_POPUP or WS_CAPTION or WS_CLIPSIBLINGS or WS_SYSMENU
      or WS_MINIMIZEBOX,
      GetSystemMetrics(SM_CXSCREEN) div 2,
      GetSystemMetrics(SM_CYSCREEN) div 2,
      0, 0, 0, 0, HInstance, nil);
 SetWindowLong(FHandle, GWL_WNDPROC, Longint(FObjectInstance));


Я так понимаю вы это имели ввиду, что апликейшен создает окно а не форм?
но последнюю строку никто не отменял, и вызвав ее еще раз но с другим FObjectInstance, который будет в потоке, и все будет работать без проблем smile Одно но
Цитата(Snowy @ 28.2.2006, 11:45 Найти цитируемый пост)
городить огород

никому не хоцца
Цитата(Snowy @ 28.2.2006, 11:45 Найти цитируемый пост)
Screen.AddForm(Self);

Код

procedure TScreen.AddForm(AForm: TCustomForm);
begin
  FCustomForms.Add(AForm);
  if AForm is TForm then
  begin
    FForms.Add(AForm);
    Application.UpdateVisible;
  end;
end;


Это не регистрация для винды, FForms это список, это регестрация внутренней структуры


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Snowy
Дата 28.2.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Romikgy @ 28.2.2006, 12:49 Найти цитируемый пост)
Теоретически можно все сделать.QuoteEndQuoteEEndпочему теоретически?
Потому что практически сделать ВСЕ невозможно smile

Цитата(Демо @ 28.2.2006, 12:49 Найти цитируемый пост)
Я бы увеличил вероятность глюков дло 100% без всяких оговорок.
Вот о том и речь, чтобы отрезать от TForm все взаимодействия с TScreen и TApplication. Теоретически это возможно. Но практически я бы даже и пытаться не стал бы.

P.S. затянулась наша теоретическая дискуссия.
Добавлено @ 13:03
Цитата(Romikgy @ 28.2.2006, 12:49 Найти цитируемый пост)
Это не регистрация для винды

Это регистрация у TApplication - чтобы она сообщения отдавала
PM MAIL   Вверх
Romikgy
Дата 28.2.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Snowy @ 28.2.2006, 12:02 Найти цитируемый пост)
Потому что практически сделать ВСЕ невозможно

почему? smile Я даже где то видел такую подпись:
"Я бы изменил мир , но Бог исходники не дает" (с) не помню автора

Цитата(Snowy @ 28.2.2006, 12:02 Найти цитируемый пост)
затянулась наша теоретическая дискуссия.

Согласен заворачиваем с этим smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.