PDA

View Full Version : GENERICS IN DELPHI 2009



بابک.م.
پنج شنبه 05 دی 1387, 12:34 عصر
با سلام
دوستان تو این مقاله :
http://www.codegear.com/article/38548/images/38548/New_Delphi_Coding_Styles_and_Architectures.pdf

صحبت از generic container classes مثل TList, TStack و ... شده ولی من در وروژنی که دارم یونیت مربوط به این کلاسها رو پیدا نکردم!

مشکل چیه؟

Naruto
جمعه 06 دی 1387, 20:51 عصر
پست اضافی.

vcldeveloper
شنبه 07 دی 1387, 00:57 صبح
این یونیت ها:
Generics.Collections
Contnrs

بابک.م.
شنبه 07 دی 1387, 08:33 صبح
این یونیت ها:
Generics.Collections
Contnrs

یونیت قدیمی Contnrs که همون کلاسهای TList, TStack رو داره که با TObject کار می کنه و Boxing و UnBoxing و بقیه داستان!

یونیت Generics.Collections رو هم که من پیدا نکردم.:عصبانی++:

در ضمن در مقاله صحبت از USING PREDEFINED GENERIC CONTAINERS شده.

لطفا شما هم جستجو کنید

ممنون

vcldeveloper
شنبه 07 دی 1387, 17:31 عصر
یونیت Generics.Collections رو هم که من پیدا نکردم.
اون مقاله بخشی از کتاب Delphi 2009 Handbook هست. Generics.Collections هم در سورس های همراه دلفی 2009 در آدرس زیر موجود هست:
RAD Studio\6.0\source\Win32\rtl\common


در ضمن در مقاله صحبت از USING PREDEFINED GENERIC CONTAINERS شده.
در همون یونیت Generics.Collections تعریف شدند.

بابک.م.
یک شنبه 08 دی 1387, 00:16 صبح
ممنون جناب مهندس
کمک بزرگی بود، یونیت Generics.Collections رو به پروژه اضافه کردم مشکل حل شد.

به نظر IDE دلفی مشکل داره، Code Completion درست کارنمی کنه!

vcldeveloper
یک شنبه 08 دی 1387, 00:53 صبح
به نظر IDE دلفی مشکل داره، Code Completion درست کارنمی کنه!
Code Completion درست کار میکنه. اونی که گاهی اوقات درست کار نمیکنه، Error Insight هست، که گاهی اوقات زیر یونیت ها و کلاس های تعریف شده هم خط قرمز میکشه، در حالی که در هنگام کامپایل یا در هنگام استفاده از Code Completion برای اون کلاس ها یا یونیت ها، دلفی بدون مشکل عمل میکنه، و گیری که Error Insight میده بیخودی هست.

بابک.م.
یک شنبه 08 دی 1387, 08:36 صبح
اونی که گاهی اوقات درست کار نمیکنه، Error Insight هست، که گاهی اوقات زیر یونیت ها و کلاس های تعریف شده هم خط قرمز میکشه

Error Insight زیاد دردسر ساز نیست مهندس. نمی دونم شاید ورژنی که من دارم این مشکل رو داره مثلا در بخش Interface Uses با کنترل + Space همه یونیتها بجز Generics.Collections رو می یاره، حالا اگه خودت Generics.Collections رو بدون Code Completion تایپ کنی و کامپایل کنی تو همون بخش Code Completion - یونیت جنریک رو میاره!

یه چیز دیگه که خیلی منو اذیت می کنه اگه در Editor Option بخش Code Insight گزینه Auto Invoke رو انتخاب کنیم منوی Code Completion که باز می شه کرسر روی هیچ آیتمی نیست و باید حتما با ArrowKey یه آیتم رو فعال کنی بعد هم حتما باید Enter بزنی با Dot یا تایپ یه حرف دیگه مثل Visual Studio آیتم انتخاب نمی شه. نمی دونم این ها بعد از این همه سال چرا نتونستن IDE دلفی رو Stable کنن من که با خودم می گم خب لابد ورژن Orginal این مشکلو نداره.
ولی در کل فکر می کنم D2009 جهش خیلی بزرگی برای CodeGear هست، امید وارم ادامه پیدا کنه. من با اینکه 2 سال با سی شارپ کار می کنم بجز محیط VisualStudio با چیزای دیگه Dot Net حال نکردم. بی خیال!

بازم ممنون

vcldeveloper
یک شنبه 08 دی 1387, 16:08 عصر
یه چیز دیگه که خیلی منو اذیت می کنه اگه در Editor Option بخش Code Insight گزینه Auto Invoke رو انتخاب کنیم منوی Code Completion که باز می شه کرسر روی هیچ آیتمی نیست و باید حتما با ArrowKey یه آیتم رو فعال کنی بعد هم حتما باید Enter بزنی با Dot یا تایپ یه حرف دیگه مثل Visual Studio آیتم انتخاب نمی شه.
درسته، این مشکل وجود داره، ولی این یک باگ نیست، بلکه یک اشکال در طراحی هست. باگ وقتی هست که یک چیز اونطوری که باید کار نمیکنه، مثل همون Error Insight که نباید زیر یونیتی که در پروژه تعریف شده، خط قرمز بکشه، ولی گاهی میکشه. این مشکل مربوط به Auto Invoke بخاطر اینه که طراحان این قابلیت اصلا انتخاب اتوماتیک یکی از گزینه های نمایش داده شده، یا بسته شدن پنجره با کلیدی غیر از اینتر یا نقطه را در آن پیش بینی نکردند، و فکر کردن اینطوری برنامه نویس راحتتر هست!