Я не уверен, что правильно понял ваш вопрос. Похоже, у вас есть рамка с кнопкой (и обработчик события TAction или click на кнопке), и этот кадр находится на форме. Теперь вы хотите программно симулировать нажатие на эту кнопку.
Очевидно, что вам нужно добавить рамочный модуль в предложение использования вашей формы. Вам также нужен экземпляр фрейма в форме, который должен привести к полю формы фрейма, например,
TForm1...
...
Frame1: TFrame1;
end;
Затем вы можете выполнить этот код с помощью Frame1.SQLbtn.Click
из любого из методов формы. Возможно, лучшим способом было бы предоставить публичный метод для фрейма, который вы можете использовать из формы. Тогда вам не нужно напрямую обращаться к кнопке (кнопка - это деталь реализации фрейма, так сказать, фрейм частный).
Редактировать после уточнения
Я так понимаю, у вас есть следующий сценарий:
TFrameForm1...
...
Frame1: TFrame1;
end;
TForm1...
...
procedure something;
end;
procedure TForm1.something;
begin
// how to call a method on Frame1 which is on FrameForm1
end;
Ваш лучший выбор - переместить код из фрейма кнопки обработчика события OnClick в отдельный блок. Это может быть модуль данных или просто другой модуль с отдельной процедурой. Затем вы можете вызвать этот код как из Form1, так и из обработчика событий кнопки Frame1. Это то, что прокомментировал Вегар.
Если это невозможно, например, поскольку для обработки требуется доступ к другим элементам управления в Frame1, переместите код в новую процедуру для Frame1 (мое первоначальное предложение):
TFrame1...
...
public
procedure framestuff;
end;
procedure TFrame1.framestuff;
begin
...
end;
procedure TFrame1.SQLbtnClick(Sender...);
begin
framestuff;
end;
Теперь вам нужно вызвать этот метод из Form1. Для этого вам понадобится ссылка на FrameForm1. Который вам нужно инициализировать вручную (!) При создании TFrameForm1. В этом примере ссылка - это поле FFrameForm:
TForm1...
...
FFrameForm: TFrameForm1;
procedure something;
end;
procedure TForm1.something;
begin
FrameForm.framestuff;
end;
Или, по умолчанию, Delphi добавляет глобальные переменные для всех форм в блоки формы (автоматическое создание формы, проверка параметров / форм проекта). Затем вы делаете это:
procedure TForm1.something;
begin
FrameForm1.framestuff; // if FrameForm1 is the name Delphi used for the global variable
end;
Конечно, есть много других вариантов ...