Текущий архив: 2003.04.21;
Скачать: CL | DM;
Вниз
Не наследуется форма! :( Найти похожие ветки
← →
kull © (2003-04-08 13:24) [0]Народ, помогите кто может!
1. У меня на форме компонент TWebDispatcher, а у него свойство Actions. В этом свойстве один элемент WebActionItem1.
2.Создаю новую форму путем наследования.
Все замечательно работает. Но когда у формы предка появляется обработчик WebActionItem1.OnAction то пункт 2 не работает, и Delphi ругается.
Причем это относится не только к TWebDispatcher, но и к другим компонентам имеющим свойства типа TCollectionItem. Этот глюк у Delphi4, у Delphi7 все работает.
Кто-нибудь встречался с таким глюком? Как с этим бороться?
← →
kull © (2003-04-08 16:32) [1]Да...
Похоже здесь мне не ответят.... :(
← →
MityaP © (2003-04-08 17:02) [2]Ты чего (точнее как) делаешь -то ??
Ща попробовал - все нормально наследуется..??
← →
kull © (2003-04-08 17:39) [3]1. В Delphi4 делаю new application
2. на форму кладу компонент TWebDispatcher
3. кликаю по свойству Actions
4. добавляю один элемент (WebActionItem1)
5. кликаю по Event-у OnAction
после этого код выглядит следующим образом.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
WebDispatcher1: TWebDispatcher;
procedure WebDispatcher1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WebDispatcher1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
//
end;
end.
6. выбираю пункт меню File->New, вкладка Project1, нажимаю "Ok"
Вылезает ошибка: Error creating form: Access violation ...
← →
MityaP © (2003-04-08 18:27) [4]Ошибка у тебя из-за зацикливания... в обращениях uses !!!
Так наследовать, как ты сказал, можно только не Main форму!!!
← →
MityaP © (2003-04-08 18:31) [5]Если б твоя исходная форма была не главном модуле Main.pas, тогдаб всё прошло удачно...
Извиняюь - пустую форму действительно наследует...
← →
MityaP © (2003-04-08 18:36) [6]Я наследовал руками в пробе, все работает:
type
TForm2 = class(TForm1)
end;
А ты обойди этот глюк при твоем способе наследования...:
1)Выдели все компоненты формы и вырежи их (или удали),
2)потом создай от нее потомка, как ты выше описал
3)вернись на главную форму и сдела Отмену последнего действия (или, вставить - если вырезал)... и все будет ок.!!!
Будет твой потомок без ошибки
Страницы: 1 вся ветка
Текущий архив: 2003.04.21;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.022 c