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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2013, 19:45   #21
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

Цитата:
Сообщение от FataLL Посмотреть сообщение
eval ...Если есть дельная мысль по этому поводу, буду только рад послушать.
- вот под этим и я подписываюсь. Когда человек хорошо разбирается в предмете, то и домохозяйке сможет объяснить на ее уровне. Если просто начетчик, то тогда как в анекдоте... - тебе долго объясняют, какой ты тупой, бьют с оттяжкой хлёсткой фразой, заумным термином и тому подобное. Это я вовсе не в обиду отвечавшим профи. Так..., заметки по поводу.
nick42 вне форума Ответить с цитированием
Старый 25.09.2013, 20:21   #22
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

nick42 автору уже все сказали несколько раз, но ему надо не решение а позаниматься садомазо, его право

а вы то сами чего тут делаете? фи высазать? тогда чем вы лучше?
eval вне форума Ответить с цитированием
Старый 25.09.2013, 21:35   #23
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

Вообще-то я на форуме не нахлебничаю; и я не лучше, - я разнообразнее. А ответы... Вы их перечитайте сами. Неужели это уровень форума программистов? Видно же, что FataLL с вопросом разбирался, и это не интерес первокурсника тракторного техникума. Ясности в данном вопросе не добавилось. А я вклинился потому, что очень бы хотел услышать разъяснения человека, кому эта тема полностью ясна. Как говорится: можешь рассказать - поделись; нет - можно ведь и мимо пройти... .
И про то, что библиотек немало существует помимо форумов мы помним... .
По теме хотел бы добавить, что фрагмент кода, приведенный автором и вызывавший у него ошибку, мне довести до ошибки не удалось, - все прекрасно работает (только я доморощенную функцию записал впереди OnCreate, что логично, мне кажется).
nick42 вне форума Ответить с цитированием
Старый 26.09.2013, 09:50   #24
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Vapaamies
Совсем не проигнорировал. Просто у меня билдер5 [со всеми патчами, если что]. Там ещё нет такой фишки. Вернее, там именно этот самый OldCreateOrder и используется.

nick42
Респект за понимание. Дело в том, что раньше и у меня таких проблем не возникало. Более того, я специально использовал всегда именно OnCreate, а не конструктор, так как был уверен, что это событие происходит, когда уже всё готово. Но вот настал момент... Да ещё хэлп добавил сомнений в правильности подхода.

eval
Если Вы когда-нибудь разбирались в чужих немаленьких проектах, то должны понимать, что абы какое решение категорически не приемлемо. Я не могу оставить в CodeReview запись для потомков о том, что для работы приложения надо "потанцевать с бубном". И если уж танцевать, так чётко понимать, к чему эти танцы приводят и на что конкретно влияют. И быть уверенным, что они не приведут к какому-то "нестандартному" поведению другой участок совершенного безобидного кода, который может всплывёт, а может и не всплывёт.
FataLL вне форума Ответить с цитированием
Старый 26.09.2013, 13:25   #25
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от FataLL Посмотреть сообщение
Совсем не проигнорировал. Просто у меня билдер5 [со всеми патчами, если что].
Так вот, предлагаю внимательно прочитать справку к нему. В старых версиях VCL "странное" поведение OnCreate было прошито в коде VCL, обойти его было нельзя, и свойство OldCreateOrder еще отсутствовало.

А в новых версиях, когда поведение OnCreate стало более предсказуемым, для обратной совместимости было добавлено свойство OldCreateOrder, по умолчанию имеющее значение False. Если свойство OldCreateOrder есть и равно True, автор ССЗБ.
Vapaamies вне форума Ответить с цитированием
Старый 26.09.2013, 14:20   #26
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Vapaamies
Посмотрел. Я был неправ. OldCreateOrder есть и в "пятёрке", но свойство в Object Inspector ещё не вынесли [в "шестёрке" оно доступно в дизайне]. По умолчанию оно false. Разница в том, что при OldCreateOrder == true обработчик OnCreate будет вызываться из конструктора, в противном случае, он вызывается из AfterConstruction. Что ж... Стало ясно, что OnCreate срабатывает после создания формы и её компонентов. Но легче не стало.
FataLL вне форума Ответить с цитированием
Старый 26.09.2013, 16:38   #27
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

FataLL, а можно Ваш проект? У меня тоже 5-я, и с апдейтом. Хотел бы "прочувствовать" проблему, а то говорить можно много и напрасно... .
nick42 вне форума Ответить с цитированием
Старый 26.09.2013, 16:47   #28
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от FataLL Посмотреть сообщение
Стало ясно, что OnCreate срабатывает после создания формы и её компонентов. Но легче не стало.
Тогда я сдаюсь. Возможно, имеет место быть какая-то хитрая чисто билдеровская заморочка на связи сишного кода с паскалевским. Тут только отладчик брать, да проходить пошагово, включая внутренности VCL. Другого пути я не вижу.
Vapaamies вне форума Ответить с цитированием
Старый 26.09.2013, 17:46   #29
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

nick42
Это ДЛЛ, работающая со специфическим оборудованием и БД. Тут одним проектом не обойдётся...

Vapaamies
Не исключено, что билдеровская заморочка. Буду продолжать колдовать.
FataLL вне форума Ответить с цитированием
Старый 26.09.2013, 17:52   #30
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Если речь идёт о главной форме, то все действия, которые нужно произвести до её создания, нужно проводить в её конструкторе:
Код:
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
// Вот здесь.
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, захвечен mutex или нет (linux, C++) Egyptorium Общие вопросы C/C++ 1 16.01.2013 14:55
как узнать пересекаются 2 окружности или нет fate Общие вопросы Delphi 2 17.06.2011 15:27
как узнать занят порт или нет DeDoK Работа с сетью в Delphi 3 12.09.2010 21:51
Как узнать программа запущена или нет? ilSMoKEli Общие вопросы Delphi 5 02.05.2010 23:01
Как узнать открыл пользователь окно или нет? KaimNotark Общие вопросы Delphi 5 09.02.2010 09:38