Вызов формы в ComponentEditor

MorAdan
Дата: 18.05.2011 01:30:22
Регистрирую редактор компонента. Внутри создается форма(для чистоты эксперимента пустая). В итоге при вызове редактора в Design вываливается или в AV или "Resource TxefmFilterGridPropetryEditor not found".
Где ступил?
Delphi 2010.

TxeFilterGridEditor=Class(TComponentEditor)
 Private
 Public
  Procedure Edit; Override;
  Procedure ExecuteVerb(Index:Integer); Override;
  Function GetVerb(Index:Integer):String; Override;
  Function GetVerbCount:Integer; Override;
 End;


Implementation

Procedure Register;
Begin
 RegisterComponentEditor(TxeFilterGrid,TxeFilterGridEditor);
End;

Procedure TxeFilterGridEditor.Edit;
Var
 F:TxefmFilterGridPropetryEditor;
Begin
 F:=TxefmFilterGridPropetryEditor.Create(Nil);
 FreeAndNil(f);
End;

Procedure TxeFilterGridEditor.ExecuteVerb(Index:Integer);

Begin
 Inherited;
 If Index=0 Then Edit;
End;

Function TxeFilterGridEditor.GetVerb(Index:Integer):String;
Begin
 Result:='Редактор свойств';
End;

Function TxeFilterGridEditor.GetVerbCount:Integer;
Begin
 Result:=1;
End;


DimaBr
Дата: 18.05.2011 02:17:29
А DFM-ка формы есть, или форма будет наполняться динамически ? Если так тогда CreateNew
TxeFilterGridEditor=class(TComponentEditor)
 Public
  Procedure ExecuteVerb(Index:Integer); Override;
  Function GetVerb(Index:Integer):String; Override;
  Function GetVerbCount:Integer; Override;
 End;


Implementation

procedure Register;
Begin
 RegisterComponentEditor(TxeFilterGrid,TxeFilterGridEditor);
rnd;

procedure TxeFilterGridEditor.ExecuteVerb(Index:Integer);
begin
  if Index = 0 then
    with TxefmFilterGridPropetryEditor.Create(Nil) do begin
      ShowModal;
      Free;
    end
  else inherited;
end;

function TxeFilterGridEditor.GetVerb(Index:Integer):String;
Begin
 if Index = 0 then Result:='Редактор свойств' else Result := inherited GetVerb(Index);
End;

function TxeFilterGridEditor.GetVerbCount:Integer;
begin
  Result:= inherited GetVerbCount +1;
end;
MorAdan
Дата: 18.05.2011 11:59:06
DimaBr,

Спасибо за подсказку, но тоже не работало.
Удалил модуль и форму, создал снова и все чудным образом заработало(форма была пустая, а код строчка в строчку). Ваш способ тоже заработал.
Баги Delphi. Зря потратил 4 часа на просторах инета для поиска решения проблемы.
debose
Дата: 19.05.2011 11:07:23
Вроде что-то похожее могло случится, если из .pas файла формы удалить строку
{$R *.dfm}