PDA

View Full Version : تعریف Compiler Directive به صورت Global



SAASTN
چهارشنبه 06 مرداد 1389, 11:58 صبح
چطور می تونیم یه Directive رو بصورت جهانی تعریف کنیم؟ اگه {$DEFINE NAME} رو تعریف کنیم {$IFDEF NAME} فقط توی همون یونیت درست عمل می کنه.
چطور میشه Scope اون رو تغییر داد و کاری کرد که تعریف یک بار انجام بشه و توی تمام پروژه کار کنه؟

SAASTN
چهارشنبه 06 مرداد 1389, 12:27 عصر
ببخشید شاید زود تاپیک زدم، یکم دیگه گشتم پیداش کردم:

Project\Options\Directories/Conditionals\Conditional Identifiers

JalaliMehr
چهارشنبه 06 مرداد 1389, 13:55 عصر
ببخشید شاید زود تاپیک زدم، یکم دیگه گشتم پیداش کردم:
کد:
Project\Options\Directories/Conditionals\Conditional Identifiers

من آزمايش كردم جواب نداد.همونجايي كه شما گفتيد.براي شما جواب داد.؟

SAASTN
چهارشنبه 06 مرداد 1389, 16:11 عصر
بله، بدون مشکل کار کرد.

JalaliMehr
چهارشنبه 06 مرداد 1389, 19:47 عصر
دوست عزيز.
من رفتم تو تنظيمات پروژه همون جايي كه شما فرموديد.يك Preprocessor Symbol به نام
DoTest اضافه كردم.
پروژه هم به صورت زير است.
شما كار ديگري هم انجام داديد؟
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

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

var
Form1: TForm1;

implementation
uses Unit2;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ShowTest;
end;

end.


unit Unit2;

interface
uses Dialogs;
procedure ShowTest;
implementation
procedure ShowTest;
begin
{$IFDEF DoTest}
ShowMessage('Do Test');
{$ENDIF}
end;
end.

SAASTN
چهارشنبه 06 مرداد 1389, 23:10 عصر
شما از چه نسخه از از دلفی استفاده می کنید. من با 2007 کار می کنم، Preprocessor Symbol ندیدم. عکسش رو می ذارم:

JalaliMehr
پنج شنبه 07 مرداد 1389, 13:48 عصر
من دلفيم 2010 روي سه تا سيستم مختلف كه همين نسخه از دلفي رو داشتند تست كردم ولي جواب نداد.
در مورد package مشكلي نداره البته براي package دستي اينكارو تو كد انجام دادم.
اگر كسي انجام داده لطفاً جواب بده.

vcldeveloper
جمعه 08 مرداد 1389, 00:30 صبح
من دلفيم 2010 روي سه تا سيستم مختلف كه همين نسخه از دلفي رو داشتند تست كردم ولي جواب نداد.
Project | Options | Delphi Compiler | Conditional defines

بعد از اینکه تنظیم کردید، پروژه تون رو Build کنید.

JalaliMehr
شنبه 09 مرداد 1389, 11:04 صبح
نقل قول:
من دلفيم 2010 روي سه تا سيستم مختلف كه همين نسخه از دلفي رو داشتند تست كردم ولي جواب نداد.
Project | Options | Delphi Compiler | Conditional defines

بعد از اینکه تنظیم کردید، پروژه تون رو Build کنید.
پس چرا دلفي 2010 كه ما نصب كرديم همچين چيزي Conditional defines را ندارد.

Felony
شنبه 09 مرداد 1389, 11:27 صبح
پس این چیه ؟

http://barnamenevis.org/forum/attachment.php?attachmentid=53329&stc=1&d=1280561181