PDA

View Full Version : سوال: نا آشنایی با دلفی XE 2؟!



mbshareat
جمعه 06 مرداد 1391, 17:20 عصر
سلام
من امروز دلفی XE 2 رو نصب کردم.
چند تا سوال برام پیش اومد:
1.وقتی یه پروژه که با دلفی قدیمی نوشتم باز می کنم، دلفی XE 2 یه فایل پروژه جدید می سازه با پسوند dproj و همچنین ظاهرا فایل یونیت هم می سازه. آیا این مساله برای باز کردن فایل تو دلفی قدیمم مشکل سازه؟ امتحانم کردم ظاهرا مشکلی نداره.
2. من یه پروژه داشتم برای تغییر رنگ تصویر به نام Colorize که تو سایت هم گذاشتم. توی XE 2 نتونست باز کنه. علتش چیه؟
3. چرا بعضی کامپوننتها توی FireMonkey درست به روز نمیشن؟
4. Example توی راهنما کجاش هست؟ آیا نمونه کد هم داره؟
5. آیا نصب بودن دو نسخه 6 , XE2 به طور همزمان خرابکاری می کنه؟

Ananas
جمعه 06 مرداد 1391, 19:15 عصر
سلام.


4. Example توی راهنما کجاش هست؟ آیا نمونه کد هم داره؟

منظورتون این دایرکتوریه : C:\Users\Public\Documents\RAD Studio\9.0\Samples

5. آیا نصب بودن دو نسخه 6 , XE2 به طور همزمان خرابکاری می کنه؟
یادمه موقع نصب می گفت باید اول قبلی رو Uninstall کنی.

AliReza Vafakhah
جمعه 06 مرداد 1391, 19:25 عصر
1.وقتی یه پروژه که با دلفی قدیمی نوشتم باز می کنم، دلفی XE 2 یه فایل پروژه جدید می سازه با پسوند dproj و همچنین ظاهرا فایل یونیت هم می سازه. آیا این مساله برای باز کردن فایل تو دلفی قدیمم مشکل سازه؟ امتحانم کردم ظاهرا مشکلی نداره.

فایل dproj ، فایل Delphi Project است که اگه درست یادم باشه از نسخه 2009 به بعد اضافه شده و در صورتی که پروژه شما بافایل dpr باشه (با نسخه قدیمی نوشته شده باشه) هنگام باز کردن در دلفی 2009 به بعد پیغام تبدیل پروژه از شما پرسیده میشه. البته همین الآن که با دلفی XE2 امتحان کردم این فرایند به صورت خودکار صورت میگیره و سپس در قسمت Messages پیغام Update ظاهر میشه:


Upgrading project D:\Programing\Delphi\Project\M isc\WinExec\Project1.dpr to D:\Programing\Delphi \Project\Misc\WinExec\Project1.dproj.



2. من یه پروژه داشتم برای تغییر رنگ تصویر به نام Colorize که تو سایت هم گذاشتم. توی XE 2 نتونست باز کنه. علتش چیه؟

خوب تو قسمت Messages خطاهای مربوطه را رد گیری کنید.


4. Example توی راهنما کجاش هست؟ آیا نمونه کد هم داره؟

آره داره
مسیر زیر در ویندوز 7 (xp ندارم)
C:\Users\Public\Documents\RAD Studio\9.0\Samples\Delphi

اینجا هم نمونه کد هست هم توضیح و هرچی که در رابطه با نسخه جدید لازم داشته باشید.
http://docwiki.embarcadero.com/RADStudio/en/


5. آیا نصب بودن دو نسخه 6 , XE2 به طور همزمان خرابکاری می کنه؟

من قبلا دلفی 7 و XE2 را داشتم مشکلی پیش نیومد ، حالا دلفی 6 ! و XE2 باید شما تست کنید.

mbshareat
جمعه 06 مرداد 1391, 23:54 عصر
ممنونم.
تو نسخه قدیمی Example تو خود Help بود. ممکنه من خوب بررسی نکردم چون همه چیز که Example نداره. شاید تو نسخه جدید هم تو راهنما باشه.
به من نگفت نسخه قبل را از نصب خارج کن.
در ضمن یادم نمیاد گفته باشه UpDate می کنه .متاسفانه دلفی جدیدم تو اون یکی ویندوزمه که اینترنت نداره و الان نمی تونم امتحان کنم.
در هر صورت ممنونم.
لطفا سوال سوم رو هم جواب بدین. من وقتی بعضی کامپوننتهای Standadrd رو روی فرم میذارم و برنامه رو اجرا میکنم ظاهرشون خراب میشه (گاهی مثل این میشه که بیت مپ 24 بیت نباشه و یه ترسیم رو در اون کپی کنیم.یه خطهایی توش ظاهر میشه). حتی در زمان طراحی هم محدوده متداخلی با سایر کامپوننتها داشته باشه ظاهرش خراب میشه.
یه سوال دیگه آیا در دلفی XE 2 خبری از Methods نیست؟ فکر کنم برای TMEmo اون بالا نیورده بود. راستش با راهنمایی که به شکل HTML باشه حال نمی کنم. راهنمای فلش هم اینطوری شد اصلا حال نکردم.

Ananas
شنبه 07 مرداد 1391, 19:32 عصر
لطفا سوال سوم رو هم جواب بدین. من وقتی بعضی کامپوننتهای Standadrd رو روی فرم میذارم و برنامه رو اجرا میکنم ظاهرشون خراب میشه (گاهی مثل این میشه که بیت مپ 24 بیت نباشه و یه ترسیم رو در اون کپی کنیم.یه خطهایی توش ظاهر میشه). حتی در زمان طراحی هم محدوده متداخلی با سایر کامپوننتها داشته باشه ظاهرش خراب میشه.
می تونید یه تصویر ازش بفرستید؟ برای من اینطور نمیشه.

یه سوال دیگه آیا در دلفی XE 2 خبری از Methods نیست؟ فکر کنم برای TMEmo اون بالا نیورده بود.
چی؟ خبری از چه Methid ای ؟ شاید تو فایر مانکی میگید. فایر مانکی سیستمش با vcl متفاوته. شباهت داره ولی یکی نیستن. مثلا Memo تو فایر مانکی با Memo تو vcl فرق دارن.

mbshareat
یک شنبه 08 مرداد 1391, 17:47 عصر
سلام
چند تا تصویر گذاشتم:
تصویر اول و دوم برای مقایسه Memo در در نسخه دلفی هست که ملاحظه می کنید در XE 2 از Methods خبری نیست!
تصویر سوم درست به روز نشدن کامپوننت رو نشون میده
تسویر آخر هم اشکالی که وقتی میخوام پروژه Colorize رو باز کنم میگیره.اولش اشکال اول رو داد رفتم تو دلفی 6 دیدم یه یونیت Use شده که اضافست برداشتم و دستی فایل dproj رو پاک کردم که اشکال دوم رو گرفت:

Error reading file.

Ananas
یک شنبه 08 مرداد 1391, 19:40 عصر
منظورت از methods چیزایی هست که تو قسمت Inherited Members نوشته؟
تقریبا هممون می دونیم وقتی تو ورژن جدید یک نرم افزار چیزی رو پیدا نمی کنیم معمولا ارتقا پیدا کرده و به جایی مناسب تر منتقل شده. کم پیش میاد چیزی حذف بشه مگه اینکه بهتر از اون اضافه شده باشه.
تصویر دوم نمیدونم چرا اینطور شده تا حالا برام پیش نیومده ولی یک چیزی هست : پروژه هاتون رو از روی Desktop لود نکنید بهتره یک جای دیگه کپی کنید. نمی دونم چرا ولی بعضی وقتا آدرس desktop رو قاطی می کنه. اینکه بعضی وقتا فایل ورژن های قبل با ورژن جدید درست باز نشه خطایی هست که تو نرم افزارهای دیگه هم می بینیم.
در ضمن ورژن قبلی فایل ورژن جدید رو لزوما نمی خونه.

mbshareat
یک شنبه 08 مرداد 1391, 21:04 عصر
سوالم در مورد خراب شدن ظاهر کامپوننتهای فایر مانکی چی شد؟
با TMemo و TEdit و TCornerButton و TComboTrackBar و TImageControl مشکل داره و هنگام اجرا ظاهرشون خراب میشه!!!؟؟؟

AliReza Vafakhah
یک شنبه 08 مرداد 1391, 21:11 عصر
من که با فایرمانکی اون مشکلی که شما دارید ندارم.

در ضمن اون تصویری که در رابطه با TMemo گذاشته اید رو باید بهتون عرض کنم ، تصویری که در راهنما XE2 مشاهده می کنید روند کلاس های والد کامپوننت TMemo هست و اصلا ربطی به Methods نداره. (مگه میشه یه همچین کلاس کامپوننت قوی بدون متود باشه!)
راهنما XE2 بسیار قوی و در صورت آنلاین بودن جامع است.

// خود من با دلفی 2010 و ویندوز 7 مشکل داشتم که آخر متوجه شدم مشکل از عدم آپدیت ویندوز 7 است و با آپدیت مشکلم حل شد.

mbshareat
یک شنبه 08 مرداد 1391, 21:43 عصر
و اصلا ربطی به Methods نداره.
آقا من قسمت بالاترش رو میگم که Properties و Events توش ذکر شده.
راستش من وقتی میخوام Win 7 نصب کنم هزار جور انتخاب و نسخه سر راهم قرار میده و نمیدونم کدوم رو نصب کنم.
اصلا فایده فایر مانکی که بعضیها خیلی ازش تعریف میکنن چیه؟
اشیای سه بعدیش رو که نتونستم استفاده کنم. 3d Shapes روی فرم نمایش داده نمیشن؟!
آیا فایر مانکی استفاده ویژه و حرفه ای داره یا برای کابرای معمولیه.
از یه چیز دیگه هم شاکیم:جای آقای Mahan-1363 و شاهین عشایری و بزرگان دیگه که در مورد نسخه های جدید با هیجان پست می نویسن خالیه.
لطفا یه کمکی به من بینوا بکنین. ممنون میشم.

Ananas
دوشنبه 09 مرداد 1391, 01:16 صبح
من که با فایرمانکی اون مشکلی که شما دارید ندارم.من هم عرض کردم این مشکل رو ندارم ولی شاید کارت گرافیکتون نصب نیست یا شایدم سخت افزارتون پشتیبانی نمیکنه. داخل هلپ مدلهایی از سخت افزار که مناسب فایرمانکی هست نوشته. مقایسه کنید شاید علتش اونه. شاید درایورش نصب نیست و یا لازم داره که Update بشه. شاید ویندوزتون درست نصب نیست. یا مد گرافیکی desktop درست تنظیم نیست. خود برنامه اجرا میشه؟

راستش من وقتی میخوام Win 7 نصب کنم هزار جور انتخاب و نسخه سر راهم قرار میده و نمیدونم کدوم رو نصب کنم.اتفاقا بر عکس ویندوز xp ، ویندوز ویستا و 7 خیلی نصب راحت تر و بی دردسر تری داره.

اصلا فایده فایر مانکی که بعضیها خیلی ازش تعریف میکنن چیه؟آقا شما که خودت برنامه نویسی اینقدر تواضع می کنی یکی ندونه فکر می کنه تازه اسم دلفی رو شنیدی.

اشیای سه بعدیش رو که نتونستم استفاده کنم. 3d Shapes روی فرم نمایش داده نمیشن؟!اول باید یک viewport 3D بسازی روی فرم بعد اشیای سه بعدی رو روی اون بگذاری یا اینکه از فرم 3D استفاده کنی.

آیا فایر مانکی استفاده ویژه و حرفه ای داره یا برای کابرای معمولیه.تو همین سایت بگردی مطالبی در مورش پیدا می کنی ولی در مورد سه بعدی و یا امکانات خاصش یکمی احتیاج به اطلاعات اولیه داره ولی کاربرهای معمولی هم باید بتونن ازش استفاده کنن. مثلا همین viewport 3D رو من از اسمش فهمیدم که باید اشیا رو داخل اون بگذاری شاید اگه کسه دیگه که اصلا با سه بعدی آشنا نیست بخواد پیدا کنه خیلی طول بکشه آخرشم به نتیجه نرسه. تو هلپ هم متاسفانه خیلی مطلب راجبش نیومده.

از یه چیز دیگه هم شاکیم:جای آقای Mahan-1363 و شاهین عشایری و بزرگان دیگه که در مورد نسخه های جدید با هیجان پست می نویسن خالیه.پستهایی که تا حالا راجب فایرمانکی نوشتن خوندید؟ پس سوال :

اصلا فایده فایر مانکی که بعضیها خیلی ازش تعریف میکنن چیه؟
که فرمودید ابهامش کجاست ؟
البته دوستان معلومه که حرفه ای برنامه نویسن و وقت ندارن. اگه میشد تو فایر مانکی یه برنامه نوشت که مثلا تو یک حلقه 1000 تا نمونه از آقای x و y میساخت خیلی خوب می شد. شادم همچین امکانی داره ولی تو هلپش نیومده. من زبان خارجیم خوب نیست ولی تو قسمتهایی از هلپ که ناقصه نوشته (اگه درست فهمیده باشم) : "در رابطه با این موضوع مطلبی وجود نداره اگه چیزی بلدید مارو تو کامل کردن این مرجع یاری کنید." واقعا به کمک من احتیاج دارن باید برم.

mbshareat
دوشنبه 09 مرداد 1391, 03:43 صبح
یا شایدم سخت افزارتون پشتیبانی نمیکنه
ممکنه. گرچه پشت DVD دلفی نوشته بود VGA 64 اما من کارت گرافیک ATI 64 دارم!
قبل از این کارت گرافیک بهتری داشتم. قبلها یادمه یه بازی نصب کردم اشیاء رو کاملا سفید نشون می داد!
با اینکه شما توضیحاتی دادین اما من هنوز نفهمیدم سه بعدی چه ربطی به برنامه نویسی داره.
البته می دونم همه فایر مانکی این نیست اما باز هم جدا کردن مثلا کامپوننتهای انتخاب رنگ و ترسیمات دو بعدی و مرتبط کردنش با فایر مانکی برام قابل درک نیست.

ویندوز ویستا و 7 خیلی نصب راحت تر و بی دردسر تری داره
یکی از دوستان یه کد گذاشته بود برای تشخیص ویندوز. اگه کدشو ببینین می بینین ویندوز سون هم نسخه های مختلف داره. من وقتی می خام نصب کنم ازم می پرسه کدوم نسخه رو می خوای نصب کنی؟
در کل از کمک دوستان سپاسگزارم.

Ananas
دوشنبه 09 مرداد 1391, 10:36 صبح
البته می دونم همه فایر مانکی این نیست اما باز هم جدا کردن مثلا کامپوننتهای انتخاب رنگ و ترسیمات دو بعدی و مرتبط کردنش با فایر مانکی برام قابل درک نیست.
باید چند تا نمونه ببینید تا کاربردش رو متوجه بشید. ببینید ساده ترین چیز اینه که شما یک تصویر رو می تونید بچرخونید. که تو GDI تابع مستقیمی برای این کار نمیشناسم و فکر میکنم همچین چیزی نباشه و باید pixel-pixel انجام بشه که خیلی کند میشه. و کلا نمایش سه بعدی به قشنگ تر شدن ظاهر رابطها کمک میکنه.مثلا شما میتونید برای zoom کردن از scale استفاده کنید. و یا مثل فلش تصویر متحرک داشته باشید.

BORHAN TEC
سه شنبه 10 مرداد 1391, 18:40 عصر
مثلا تو یک حلقه 1000 تا نمونه از آقای x و y میساخت خیلی خوب می شد.
خیلی منظورتون رو درست متوجه نشدم ولی اگه منظورتون اینه که در یک لحظه 1000 شی بسازید و بتونید به تک تک اونها دسترسی داشته باشید می تونید از یک آرایه استفاده کنید که روش کار هم به شکل ساده تقریباً به شکل زیر است.(البته زید مطمئن نیستم که منظورتون این بوده باشه.:متفکر:)

به این نمونه ساده توجه کنید:
procedure TForm1.FormCreate(Sender: TObject);
var
ControlArray: array of TButton;
I: Integer;
begin
SetLength(ControlArray, 20);
for I := Low(ControlArray) to High(ControlArray) do
begin
ControlArray[I] := TButton.Create(Self);
with ControlArray[I] do
begin
top := I * Height;
Left := 0;
Parent := Self;
Caption := IntToStr(Random(1000));
Show;
end;
end;
end;

البته در کد بالا به این نکته توجه داشته باشید که اندیس آرایه های دینامیک همیشه از صفر شروع می شود.

Ananas
سه شنبه 10 مرداد 1391, 21:29 عصر
خیلی منظورتون رو درست متوجه نشدم
آخخخ ببخشید. خیلی برنامه نویسی ای فکر می کنید. فقط یه شوخی بود مربوط به :

از یه چیز دیگه هم شاکیم:جای آقای Mahan-1363 و شاهین عشایری و بزرگان دیگه که در مورد نسخه های جدید با هیجان پست می نویسن خالیه.
من از شکلک ها کمتر استفاده میکنم باید :گیج: رو اضافه می کردم.
_________________________
حالا که این پست رو فرستادم برای اینکه پستم هدر نره یک نمونه با فایر مانکی ساختم که در مورد رابطه ی والد و فرزندی اشیای روی فرم (کامپوننت ها) هست. (از ویژگی هایی که فایرمانکی داره و vcl نداره)
یک فرم فایرمانکی بسازید و کد زیر رو کپی کنید تو یونیت مربوطه و FormeCreate رو نسبت بدید. وقتی برنامه رو اجرا می کنید کلیدهای :
Add
Subtract
____________________ برای چرخش و
Up
Down
Left
Right
____________________ برای جابجایی و
Numpad2
Numpad8
Numpad4
Numpad6
____________________ برای بزرگنمایی
فشار بدید.
همچنین وقتی موس رو برای کلیک کردن روی دکمه ها می برید و بین دکمه ها حرکت میکنید حالت جالبی پیدا میکنه. و همینطور دکمه ی tab و یا shift+tab.

unit Unit1;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
ab : array of TButton;
procedure UpdateBtns();
procedure MyButtonKeyDown(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.UpdateBtns();
var
I: Integer;
begin
for I := 1 to High(ab) do
begin
ab[i].Position.X := ab[0].Position.X;
ab[i].Position.Y := ab[0].Position.Y;
ab[i].RotationAngle := ab[0].RotationAngle;
ab[i].Scale.X := ab[0].Scale.X;
ab[i].Scale.Y := ab[0].Scale.Y;
end;
end;

procedure TForm1.MyButtonKeyDown(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
begin
case Key of
vkLeft : ab[0].Position.X := ab[0].Position.X - 0.5;
vkRight : ab[0].Position.X := ab[0].Position.X + 0.5;
vkUp : ab[0].Position.Y := ab[0].Position.Y - 0.5;
vkDown : ab[0].Position.Y := ab[0].Position.Y + 0.5;
vkAdd : ab[0].RotationAngle := ab[0].RotationAngle - 0.5;
vkSubtract : ab[0].RotationAngle := ab[0].RotationAngle + 0.5;
vkNumpad4 : ab[0].Scale.X := ab[0].Scale.X - 0.01;
vkNumpad6 : ab[0].Scale.X := ab[0].Scale.X + 0.01;
vkNumpad2 : ab[0].Scale.Y := ab[0].Scale.Y - 0.01;
vkNumpad8 : ab[0].Scale.Y := ab[0].Scale.Y + 0.01;
end;
UpdateBtns;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
pl : TPanel;
begin
pl := TPanel.Create(Self);
pl.Parent := Self;
pl.Width := 0;
pl.Height := 0;
pl.Align := TAlignLayout.alCenter;
//---------------------------------
SetLength(ab, 25);
ab[0] := TButton.Create(Self);
ab[0].Parent := pl;
ab[0].Text := 'Button0';
ab[0].Width := 80.0;
ab[0].Height := 22.0;
ab[0].Position.X := 0.0;
ab[0].Position.Y := 20.0;
ab[0].RotationAngle := -20.0;
ab[0].Scale.X := 0.9;
ab[0].Scale.Y := ab[0].Scale.X;
ab[0].OnKeyDown := MyButtonKeyDown;
//---------------------------------
for i := 1 to High(ab) do
begin
ab[i] := TButton.Create(Self);
ab[i].Parent := ab[I - 1];
// ab[i].Enabled := False;
ab[i].Text := 'Button' + IntToStr(i);
ab[i].OnKeyDown := ab[0].OnKeyDown;
end;
UpdateBtns;
SetFocused(ab[0]);
end;

end.

در واقع این نمونه داره خاصیت ماتریس ها رو به شکل فرکتال نشون میده. هر شی ای برای نمایش تو صفحه از یک ماتریس انتقال استفاده میکنه که از position و rotation و scale بدست میاد که این ماتریس هم در ماتریس والد شی ضرب میشه. یعنی در اینجا یک سلسله مراتبی از اشیا داریم که به ترتیب هرکدوم فرزند شی قبل هست و انتقال شی قبلش رو به ارث میبره. پس وقتی همه ی اشیا scale شون (بزرگنمایی) تغییر می کنه به ترتیب هر شی ای هم scale خودشو داره هم از scale والدش تاثیر می گیره.