Einzelnen Beitrag anzeigen

ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

Freigeben von Objekten einer Function

  Alt 23. Sep 2018, 12:24
Delphi-Quellcode:
function TTGMBot.TGMessagefnd(const Index: Integer): TTGMessage;
begin
  try
    Result:= TTGMessage.Create;

  if Assigned(FTGResults) then
    begin
    if Assigned(FTGResults[Index].TGMessage) then
      begin
        Result:= FTGResults[Index].TGMessage;
        mmo2.Lines.Add('TGMessagefnd' + FTGResults[Index].TGMessage.chat.id);
      end
    else
    if Assigned(FTGResults[Index].edited_message) then
      begin
        Result:= FTGResults[Index].edited_message;
        mmo2.Lines.Add('TGMessagefnd' + FTGResults[Index].edited_message.chat.id);
      end
    else
    if Assigned(FTGResults[Index].channel_post) then
      begin
        Result:= FTGResults[Index].channel_post;
        mmo2.Lines.Add('TGMessagefnd' + FTGResults[Index].channel_post.chat.id);
      end
    else
    if Assigned(FTGResults[Index].edited_channel_post) then
      begin
        Result:= FTGResults[Index].edited_channel_post;
        mmo2.Lines.Add('TGMessagefnd' + FTGResults[I].edited_channel_post.chat.id);
      end;
    end;
  except
     Result.Free;
     raise
  end;
end;
ich habe ein generische OBjektliste vom Typ TTGMessage , in der sich entweder eine Message oder eine edited_message befindet.(alle sind vom Typ TTGMessage)

Aufrufen tu ich sie so
Delphi-Quellcode:
 for I := 0 to FTGResults.Count-1 do
  begin
   mmo2.Lines.Add(TGMessagefnd.chat.id);
  end;
Die Frage ist, was mache ich mit dem erstellten "Result:= TTGMessage.Create;" in TGMessagefnd
muss ich das irgendwann befreien? Oder zerlegt sie sich automatichsch ? Ich hab mir da eigentlich nie drüber gedanken gemacht. Da das Tool aber im Dauereinsatz auf einer "schwachen" Maschine laufen soll würde es mich mal interessieren.


Gruß Mietze
  Mit Zitat antworten Zitat