Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как передать переменную типа TTableAttrSet из MAIN.PAS в UTILS.PAS в Delphi 2010 без дублирования определения типа и ошибок компиляции

Delphi , Компоненты и Классы , Модули

В данной статье мы рассмотрим проблему передачи переменной типа TTableAttrSet из главного модуля MAIN.PAS в модуль UTILS.PAS в Delphi 2010 без дублирования определения типа и ошибок компиляции.

Определение типа в основном модуле

Сначала определим тип TTableAttrSet в основном модуле MAIN.PAS:

unit Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TTableAttributeType = (
    tabROOT = 1,
    tabONLINE = 2,
    tabPARTITIONED = 3,
    tabCOMPRESSED = 4
  );

  TTableAttrSet = Set of TTableAttributeType;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  TabAttr: TTableAttrSet;
begin
  TestAttr(TabAttr);
end;

end.

Передача переменной в модуль UTILS.PAS

Теперь нам нужно передать переменную типа TTableAttrSet из главного модуля в модуль UTILS.PAS. Для этого в UTILS.PAS создадим процедуру TestAttr, принимающую переменную типа TTableAttrSet в качестве параметра:

unit Utils;

interface

uses
  Main; // Используем главный модуль для доступа к типу TTableAttrSet

procedure TestAttr(var Attr: TTableAttrSet);

implementation

procedure TestAttr(var Attr: TTableAttrSet);
begin
  Attr := [tabROOT, tabCOMPRESSED];
end;

end.

Обратите внимание, что в разделе interface модуля UTILS.PAS мы используем главный модуль (uses Main), чтобы получить доступ к типу TTableAttrSet. Это позволяет нам передавать переменную типа TTableAttrSet из главного модуля в модуль UTILS.PAS без дублирования определения типа.

Пример использования

Теперь мы можем использовать процедуру TestAttr в основном модуле:

procedure TForm1.Button1Click(Sender: TObject);
var
  TabAttr: TTableAttrSet;
begin
  TestAttr(TabAttr); // Передача переменной типа TTableAttrSet в модуль UTILS.PAS
  // Дальнейшая обработка переменной TabAttr
end;

Таким образом, мы успешно передали переменную типа TTableAttrSet из главного модуля в модуль UTILS.PAS без дублирования определения типа и ошибок компиляции.

Создано по материалам из источника по ссылке.

Статья описывает процесс передачи переменной типа `TTableAttrSet` из главного модуля в модуль `UTILS.PAS` в Delphi 2010 без дублирования определения типа и ошибок компиляции.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Модули ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 18:00:09/0.0031058788299561/0