Передача объекта в функцию

Добрый вечер! Нашла вот такой пример передачи объекта в функцию:

function gogo(tmp:tcomponent):boolean;
begin
  if (tmp is TEdit) then TEdit(tmp).Text:= 'ghjfj';
 end;

но на RTM Berlin не работает

Что выдает?

1 лайк

МаринаMariedeRohan, как вызываете функцию? Приведите код.

добрый вечер! Косяк уладила, но не устраивает то, что нужно в месте описания функции на форме ставить эдит. Как написать нейтральное описание, чтобы эдит можно было предавать только вместе вызова

Непонятно о чем речь :thinking:
Покажите код.

1 лайк

немного переделала теперь приобрел такой вид:

unit Etoile_client_core;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf,
  FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async,
  FireDAC.Phys, FireDAC.FMXUI.Wait, FireDAC.Stan.Param, FireDAC.DatS,
  FireDAC.DApt.Intf, FireDAC.DApt, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, Data.DB, FireDAC.Comp.DataSet,
  FireDAC.Comp.Client, FMX.Controls.Presentation, FMX.Edit;

type
  TClient_Etoile_core = class(TForm)
    DataSource1: TDataSource;
    FDConnection1: TFDConnection;
    FDQuery1: TFDQuery;
    IdTCPClient1: TIdTCPClient;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
  function GetText(L:string=''; s1: TObject=null):boolean;
    { Public declarations }
  end;

var
  Client_Etoile_core: TClient_Etoile_core;

implementation

{$R *.fmx}

{ TClient_Etoile_core }

function TClient_Etoile_core.GetText(L: string; s1: TObject): boolean;
begin
if s1 is TEdit then s1 as (TEdit).Text:= L;
end;
end.

пробовала

s1: TObject =null

не помогает

Так а почему не так например?

if s1 is TEdit then TEdit(s1).Text:= L;

И имя функции не соответствует содержимому, это скорее SetText.
И у параметров непонятные имена, лучше например так:

text: string; obj: TObject
1 лайк

Всё стало ещё более странно и не понятно. Что хотите сделать?

function GetText(L:string=’’; s1: TObject=null):boolean;

В Delphi нет null, только nil.

1 лайк

благодарю так работает
if s1 is TEdit then TEdit(s1).Text:= L;

спасибо