Усім привіт! Підкажіть як правильно зробити процедуру з локальної глобальну!
В мене є локальна процедура, і як виявилось вона мені потрібна іще в декількох глобальних процедурах.
Procedure Formula(f:string);
  var
   Pict: TPicture;
  begin
   Pict := TPicture.Create;
    try
     Pict.LoadFromFile('Формули\'+f);
     Clipboard.Assign(Pict);
     RichEdit1.PasteFromClipboard;
    finally
     Pict.Free;
    end;
    SkipTheLine := EmptyLine;
    RichEdit1.Lines.Add(SkipTheLine);
  end;
 
Я її, якби зробив, глобальною, переписав її заголовок, і в type прописав її:
type
  TForm1 = class(TForm)
  .....
  .........
  ......
  Procedure Formula(Sender: TObject; RichEdit1: TJvRichEdit; f:string);
Procedure TForm1.Formula(Sender: TObject; RichEdit1: TJvRichEdit; f:string);
  var
   Pict: TPicture;
  begin
   Pict := TPicture.Create;
    try
     Pict.LoadFromFile('Формули\'+f);
     Clipboard.Assign(Pict);
     RichEdit1.PasteFromClipboard;
    finally
     Pict.Free;
    end;
    SkipTheLine := EmptyLine;             // Змінна SkipTheLine глобальна, EmptyLine глобальна константа типу string
    RichEdit1.Lines.Add(SkipTheLine); 
  end;
 
Та програма не компілюється видає помилку в рядку де вона викликається
Formula('Об’єм трикутної призми.jpg');
Несумісні типи: 'TObject' та 'string'
Підозрюю що помилка в рядку коду де вона викликається.
Як мені правильно записати її глобальною, щоб я викликав її старим рядком коду? Звичайно її можна зробити публічною: в public записати Procedure Formula(f:string); і заголовок її змінити на Procedure TForm1.Formula(f:string);.
Та для загального розвитку хотілося б знати як взагалі ці процедури робити глобальними і не публічними.