Усім привіт! Підкажіть як правильно зробити процедуру з локальної глобальну!
В мене є локальна процедура, і як виявилось вона мені потрібна іще в декількох глобальних процедурах.
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);.
Та для загального розвитку хотілося б знати як взагалі ці процедури робити глобальними і не публічними.