Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Как создать СВОЮ переменую Application ???   Найти похожие ветки 

 
Кот Бегемот ©   (2003-01-27 17:50) [0]

По всем канонам ООП перекрываю TApplication и добавляю свои свойства, методы - присущие только моей програмке:

TMyApplication = class(TApplication)
FAnything: integer;
procedure DoAnything(s: string);
end;{TMyApplication}

и по соглашению Borland и так как во многих модулях используется Application пытаюсь объявить переменную своего типа
var
Application: TMyApplication;
begin
Application := TMyApplication.Create(nil);


а вот дальше происходит самое интересное - програмка когда запускается но не работает, когда выдает AV, а иногда запускается работает но не закрывается :(

Возможно ли решить проблему и проблема ли это вообще ???


 
Игорь Шевченко ©   (2003-01-27 17:54) [1]

А посмотреть исходный текст InitControls, чтобы понять причину, что-то не позволяет ?


 
Кот Бегемот ©   (2003-01-27 18:03) [2]

2Игорь Шевченко © (27.01.03 17:54)
Позволяет конечно :) - но это не решает проблемы
Конечно в unit Controls используется Application из Forms :)

Ну а мне изменять имена с Application на MyApplicationв в двух десятках модулей - половины исходников которых нету и которые вообще не мои :((((((((

Наверно дух TurboVision еще живой во мне - надо его убивать :(

А для Вас Игорь персонально буду указывать:
"исходный текст InitControls смотрел"


 
ZmeiGorin ©   (2003-01-27 18:13) [3]

А если посмотреть код какого-нибудь HTTPApp
и еще меня смущает TMyApplication.Create(nil);

точно nil?


 
vuk ©   (2003-01-27 18:24) [4]

>и еще меня смущает TMyApplication.Create(nil);
А почему Это смущает-то?


 
icWasya ©   (2003-01-27 18:36) [5]

в D5 строчка
Application := TApplication.Create(nil);
встречается в трёх местах
unit Controls;
unit ctlpanel;
unit svcmgr;

во всех случаях инициализируется одна и таже переменная
var Application : TApplication; из модуля Forms, но в первом случае получается обычное приложение, во втором Web-страница, в третьем Сервис.

Вам нужно сделать так же -
в файле проекта
Forms.Application.Free;
Forms.Application := TMyApplication.Create(nil);

Где уж очень нужно делать проверки
if Forms.Application is TMyApplication then
TMyApplication(Forms.Application).DoAnything("Hello World!");






 
Кот Бегемот ©   (2003-01-28 09:27) [6]

2icWasya © (27.01.03 18:36)

Большое спасибо - все работает :)))



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
14-15877
Zelius
2003-01-17 18:57
2003.02.06
ЧТо это за файл dent.slip и за что он отвечает?


3-15528
CPPBuilderDev
2003-01-21 15:15
2003.02.06
Мэтры, помогите разобраться с SQL запросом, плиз!!!


14-15835
Тень
2003-01-18 11:54
2003.02.06
PS/2 - COM


7-15957
maximus49
2002-12-02 08:04
2003.02.06
Как спрятоть кнопку формы на TaskBar?


1-15718
REA
2003-01-27 19:00
2003.02.06
Как сложить динамические массивы?