Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
mExpToTXT: TMenuItem;
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public //Прописываете в секции "public", чтобы Ваша процедура была видна из других окон программы.
procedure ExpFromGrid(g: TDBGridEh; Format: Integer; Act: Integer); // объявление процедуры (БЕЗ "TForm1."!!!)
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ExpFromGrid(g: TDBGridEh; Format: Integer; Act: Integer); // Сама процедура экспорта. Прописываете её тут сами. Префикс "TForm1." обязателен (это имя формы + приставка "Т", означающая класс).
begin
// Тело процедуры экспорта
end;
// Автоматически созданный обработчик. Создаёте меню "Экспорт", в нём - пункт "экспорт в ТХТ", даёте ему имя "mExpToTXTClick"
// и по клику по этому пункту меню автоматически создаётся данный обработчик.
procedure TForm1.mExpToTXTClick(Sender: TObject);
begin
TForm1.ExpFromGrid(fg, TMenuItem(Sender).Tag, fm_param._cbAfterExport.itemIndex); // это Вы сюда прописываете.
// Если вызываете процедуру из того же окна, где она объявлена, префикс "TForm1." необязателен. При вызове из других окон - обязателен.
end;
end.
TMenuItem(Sender).Tag - это свойство Tag того пункта меню, по которому Вы щёлкнули мышью.
fm_param._cbAfterExport.itemIndex - это на отдельной форме параметров специальный комбобокс, задающий действия после экспорта. Вместо этого можете просто вручную задавать число, определяющее эти действия (см. в моих предыдущих сообщениях саму процедуру экспорта; например, 0 - ничего не делать).