معلم دلفی

پنجشنبه، مهر ۰۹، ۱۳۸۳

Image Processing in Delphi - JEDI Component

در اين سايت مطلبي در اين زمينه با نمونه سورس کد ارائه شده است.

براي دوستاني که علاقه مند به پردازش تصاوير هستند اين نمونه برنامه مناسبي است.
اما اگر بدنبال امکانات بيشتر هستيد مي توانيد از مجموعه کامپوننتهاي JEDI استفاده کنيد.
براي اطلاعات بيشتر در مورد اين کامپوننتهاي مي توانيد به آدرس زير مراجعه کنيد:
http://www.delphi-jedi.org/
البته مجموعه کامپوننتهائي که معرفي کردم خيلي بيشتر از کار پردازش تصوير را انجام ميدهندو در حقيقت در تمام بخشهاي برنامه نويسي با دلفي کامپوننتهاي زيابئي را ارائه مي کند.
نکته جالب اينکه اين کامپوننتها همگي رايگان و اپن سورس هستند. يعني شما مي توانيد آنها را تغيير داده و کامپوننتهاي جديد را براي خودتان درست کنيد.

یکشنبه، مهر ۰۵، ۱۳۸۳

Shamsi date in Delphi

تبدیل تاریخ میلادی به خورشیدی (شمسی)

نویسنده : کامبیز خجسته
سایت : http://www.delphiarea.com
میل : kambiz@delphiarea.com
Download
با این تابع میتوانید تاریخ میلادی را به خورشیدی و همچنین خورشیدی به میلادی تبدیل کنید و مزیت این یونیت (Unit) در محاسبه دقیق تاریخ است. یک مثال در فایل موجود است.

Search in Table in Delphi

راهنماي برنامه نويسان - روشهاي جستجو (قسمت 1)
در هر سيستم بانك اطلاعاتي پس از حل مسائل مربوط ورود اطلاعات اولين مسئله مهمي كه برنامه نويس بايد به حل آن فكر كند مسئله جستجو در اطلاعات وارد شده مي باشد . در برخي ازبرنامه ها فقط قدرت جستجوي اطلاعات يك پارامتر بسيار اساسي در محبوبيت برنامه مي باشد

Paradox : Index out of date

در بعضي از مواردي که با جدولهاي پارادکس کار ميکنيد با اين پيام خطا مواجه مي شويد.
اول از همه بايستي برنامه خودتان را بررسي کنيد. احتمالا در برنامه شرايطي داريد که بدون بستن جدول پارادکس برناه بصورت غير عادي به پايان مي رسد. استفاده از دستوراتي مانند دستورات زير براي پايان دادن به برنامه مي تواند باعث بوجود آمدن اين ايراد شود.
Application.Treminate
Halt
و يا رخ دادن خطاهاي اساسي در برنامه و بسته شدن خودکار برنامه مي تواند اين خطا را در بانک ايجاد کند.
براي جلوگيري از بروز اين خطا در جدول بايستي در بخشي از برنامه که با جداول کار مي کنيد بيشترين دقت را بکار ببريد. رعايت کردن موارد زير مي تواند به شما در اين زمينه کمک زيادي بکند
١- عدم استفاده از دستوراتي که در بالا ذکر شد تا حد امکان
٢- مديريت خطاهاي سيستم توسط برنامه
٣- تا حد امکان از باز نگه داشتن بانکهاي اطلاعاتي خود در طول برنامه جلوگيري کنيد. زمانيکه با بانک اطلاعاتي کاري نداريد آنرا ببنديد.
٤- زمانيکه فقط مي خواهيد از بانک اطلاعاتي خودتان بخوانيد و نيازي به نوشتن يا ويرايش بانک نداريد، بانک را در حالت فقط خواندني باز کنيد. با تنشيم يک مشخصه کامپوننت مي توانيد به اين مهم دست پيدا کنيد.

در انتها اگر به هر دليلي به اين ايراد برخورد کرديد بايستي ايندکسهاي جدول را حذف کرده و مجددا بسازيد. اينکار مي تواند دستي و با برنامه موجود در دلفي انجام شود يا اينکه در برنامه بخشي براي دوباره سازي ايندکس هاي خراب شده درست کنيد که کاربر بتواند در مواقع شرور از آن استفاده کند.

چهارشنبه، شهریور ۲۵، ۱۳۸۳

Delphi 9: unofficial pre-release "review"

Delphi 9: unofficial pre-release "review"
شرکت بولند در دلفي ٩ سنگ تمام گذاشته.
علاوه بر پشتيباني دلفي قديمي و دلفي دات نت ، زبان سي شارپ را هم پشتيباني مي کند.
در ضمن يک دستور حلقه مربوط به سي شارپ را هم اضافه کرده است..
در يک فرصت مناسب امکانات جديد اين نگارش دلفي را به شما معرفي خواهم کرد.

چهارشنبه، شهریور ۱۸، ۱۳۸۳

Essential Delphi

Essential Delphi
اگر علاقه مند به یادگرفتن دلفی هستید و مشکل زبان انگلیسی هم ندارید می توانید این کتاب را دانلود کنید و از آن لذت ببرید.
نویسنده این کتاب بهترین کتابها را در زمینه دلفی نوشته و کتابهایش فروش زیادی داشته است.

Essential Delphi 8 for .NET

Essential Delphi 8 for .NET
یکی از کتابهائی است که در مورد نگارش جدید دلفی نوشته شده است.
دلفی در نگارش جدید کلیه امکانات برناه را تغییر داده است و برنامه نویسانی که قبلا با دلفی 7 به پائین کار کرده اند بایستی مطالب زیادی را یاد بگیرند.
در ضمن در دلفی 8 محیط برنامه نویسی هم عوض شده و به نظر من بیشتر شبیه محیط وی بی است.

یکشنبه، شهریور ۱۵، ۱۳۸۳

تشخیص سی دی درایو کامپیوتر

با برنامه زیر می توانید اسم سی دی درایو را پیدا کنید. کار این تابع در زمانی است که می خواهید بر روی سی دی کار کنید و مثلا وجود فایل خاصی را بررسی کنید.

Function GetCDDriveName:String;
var s:String; Found:Boolean;
begin
s:='d:\';
Found:=False;
While (Not Found) and Not (s[1] In ['z','Z']) Do
begin
If getdrivetype(PChar(s)) = DRIVE_CDROM then
Found:=True
Else
s[1]:=Chr(Ord(s[1])+1);
end;
If Found then
GetCDDriveName:=s
Else
GetCDDriveName:='';
end;

این تابع نام سی دی درایو را در خروجی بر می گرداند. در صورتیکه سی دی درایوی نباشد مقدار آن خالی است.