Mengekspos Unit Lama

Mengekspos pengidentifikasi unit lain melalui unit baru

Terkadang Anda perlu mengekspor ulang dan menampilkan pengidentifikasi dari unit lain di dalam unit baru saat ini. Hasil akhirnya: cukup gunakan unit baru ini, Anda bisa langsung memakai semua pengidentifikasi tersebut.

Skenario Penggunaan:

  1. Menjaga kompatibilitas dengan versi unit lama dan mempertahankan sintaks pemanggilan lama;
  2. Mengenkapsulasi unit tingkat dasar internal, menyembunyikan file implementasi dasar dari luar.

Cara Implementasi: Di bagian interface unit saat ini, definisikan ulang pengidentifikasi bernama sama / alias untuk meneruskan tipe dan konstanta dari unit dasar.

Ubah MyUnit.pas

unit MyUnit;
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}

interface
uses Graphics;

type
  // Cara 1: Buat alias, tampilkan Graphics.TColor ke luar dengan nama TMyColor
  TMyColor = TColor;

  // Cara 2: Tampilkan dengan nama asli; wajib tambah awalan Graphics. untuk hindari referensi melingkar sendiri
  TColor = Graphics.TColor;

const
  // Konstanta juga mendukung penerusan eksposur
  clYellow = Graphics.clYellow;
  clBlue = Graphics.clBlue;

implementation

end.Code language: JavaScript (javascript)

Contoh Lengkap

unit MyUnit;
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}

interface
uses Graphics;

type
  // 1 Alias tipe Graphics.TColor menjadi TMyColor
  TMyColor = TColor;

  // 2 Tampilkan nama asli
  // gunakan awalan Graphics. cegah referensi melingkar.
  TColor = Graphics.TColor;

const
  // Konstanta juga bisa diteruskan
  clYellow = Graphics.clYellow;

implementation

end.Code language: PHP (php)

Program Utama

program showcolor;
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}

uses MyUnit;
var
  C1: TMyColor;
  C2: TColor;

begin
  C1 := clYellow;
  C2 := clYellow;
end.
Code language: PHP (php)

Dalam program utama, kita gunakan nama yang didefinisikan ulang di MyUnit.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *