Eğer methodlarını listelemek istediğiniz sınıf , birden çok sınıftan kalıtıla gelinerek yazılmış bir sınıfsa;
Alt sınıfın miras alınabilen tüm methodları,üst sınıfında methoduymuş gibi oluyor.
GetMethods ile o sınıfa ait methodları, listelemek istediğinizde taban sınıftaki methodlarda listeleniyor.
Haliyle bu methodlar ne ayak diyorsunuz.
Eğer kendi eklediğiniz methodları listelemek istiyorsanız....
Kod: Tümünü seç
var
cntx: TRttiContext;
typ: TRttiType;
method: TRttiMethod;
begin
cntx := TRttiContext.Create;
typ := cntx.GetType(TServerMethods1);
lBoxMethods.Items.Clear;
for method in typ.GetMethods do
begin
if method.Parent.Name = typ.Name then
lBoxMethods.Items.Add(method.Name);
end;
end;
Kod: Tümünü seç
procedure TForm1.lBoxMethodsDblClick(Sender: TObject);
var
methodName, url: string;
begin
methodName := TListBox(Sender).Items[TListBox(Sender).ItemIndex];
StartServer;
url := Format('http://localhost:%s/datasnap/rest/TServerMethods1/' +
methodName, [EditPort.Text]);
ShellExecute(0, nil, PChar(url), nil, nil, SW_SHOWNOACTIVATE);
end;
İyi çalışmalar...