S
procedure TMyPlugClass.AddMenuItem(Owner,Caption,Name:string;Proc:TNotifyEvent);
var NewItem:TMenuItem;
Own:TObject;
begin
Own:=StrToObj(Owner);
NewItem:=TMenuItem.Create(Own as TMainMenu);
NewItem.Caption:=MenuItemCaption;
NewItem.OnClick:=Proc;
(Own as TMainMenu).Items.Add(NewItem);
end;
function StrToObj(sObj : string): tObject
begin
If sObj = "TmainMenu" then begin
StrToObj:=TMenuMenu.Create(nil);
end;
....
end;
function ComponentToString(Component: TComponent): string;
var
BinStream:TMemoryStream;
StrStream: TStringStream;
s: string;
begin
BinStream := TMemoryStream.Create;
try
StrStream := TStringStream.Create(s);
try
BinStream.WriteComponent(Component);
BinStream.Seek(0, soFromBeginning);
ObjectBinaryToText(BinStream, StrStream);
StrStream.Seek(0, soFromBeginning);
Result:= StrStream.DataString;
finally
StrStream.Free;
end;
finally
BinStream.Free
end;
end;
function StringToComponent(Value: string): TComponent;
var
StrStream:TStringStream;
BinStream: TMemoryStream;
begin
StrStream := TStringStream.Create(Value);
try
BinStream := TMemoryStream.Create;
try
ObjectTextToBinary(StrStream, BinStream);
BinStream.Seek(0, soFromBeginning);
Result := BinStream.ReadComponent(nil);
finally
BinStream.Free;
end;
finally
StrStream.Free;
end;
end;
TMyPlugClass.Create(MainForm:TForm);
begin
m_MainForm:=MainForm;//здесь m_MainForm-приватный член класса TMyPlugClass
end;
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab