Форум: "Основная";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];
ВнизКак создать СВОЮ переменую 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c