یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

گرفتن عکس از صفحه نمایش

var
    bmp : Tbitmap;
    dc : Hdc;
begin
 bmp := Tbitmap.Create;
 bmp.Width := Screen.Width;
 bmp.Height := Screen.Height;
 image1.Width := Screen.Width;
 image1.Height := Screen.Height;

 dc := GetWindowDc(GetDesktopWindow);
 Bitblt(bmp.canvas.handle,0,0,Screen.Width,Screen.height,dc,0,0,srccopy);

 image1.Canvas.Draw(0,0,bmp);
 releasedc(getdesktopwindow,dc);
 // bmp.SaveToFile('save.bmp'); if you want to save it
 bmp.Free;
end;

اضافه کردن فایل به start menu

uses shellobj;


SHAddtorecentdocs(SHARD_PATH,pchar('adress file'));

اضافه کردن checkbox به dialogbox ها

procedure TForm1.Button1Click(Sender: TObject) ; var AMsgDialog: TForm; ACheckBox: TCheckBox; begin AMsgDialog := CreateMessageDialog ('This is a test message.', mtWarning, [mbYes, mbNo]) ; ACheckBox := TCheckBox.Create(AMsgDialog) ; with AMsgDialog do try Caption := 'Dialog Title' ; Height := 169; with ACheckBox do begin Parent := AMsgDialog; Caption := 'Don''t show me again.'; Top := 121; Left := 8; end; if (ShowModal = ID_YES) then begin if ACheckBox.Checked then begin //... do if checked end; //... do if NOT checked end; finally Free; end; end;

یک کار گرافیکی در دلفی


procedure TForm1.FormCreate(Sender: TObject);
begin
  { Set transparent background }
  Brush.Style:=bsClear;

  { Set pen color and width }
  Canvas.Pen.Color:=clBlack;
  Canvas.Pen.Width:=10;
end;

procedure TForm1.FormClick(Sender: TObject);
Var
  X, Y : Integer;
begin

   X:=Mouse.CursorPos.X;
   Y:=Mouse.CursorPos.Y;
   Canvas.MoveTo(0,Y);
   Canvas.LineTo(Form1.Width,Y);
   Canvas.MoveTo(X,0);
   Canvas.LineTo(X,Form1.Height);
end;

چگونه یک دیتابیس مناسب انتخاب کنیم؟ 2


امروزه در بیشتر نرم افزارها که تولید میکنیم نیاز داریم برای مخاطب هایمان محیطی فراهم کنیم که بتوانند داده هایشان را ذخیره و بهر برداری کنند.به همین منظور مجبور به استفاده از یتابیس ها هستیم چون دیتابیس ها چنین فضایی را با انکانات مناسب برای ما فراهم می کنند.فکر کنم از هر جایی که برنامه نویسی را شروع کرده باشیم یا اولین کتابی را که خوانده باشیم دیتابیس جزء اولین سرفصل ها است.اگر یک جستجو ساده به دنبال دیتابیس باشیم می بینیم که هزاران شرکت انواع دیتابیس را ارائه کرده اند. اگر در ابتدای شروع برنامه نویسی یک دیتابیس مناسب را انتخاب نکنیم به علت مشکل در پروژه ها بر خوردن مجبوری هر روز یک دیتابیس را امتحان کنیم به قولی از این شاخه به آن شاخه بپریم بهتر است از اول با اطلاع کامل دیتابیس مناسبی را انتخاب کنیم.

دیتابیس ها به دو گروه تقسیم می شوند:

Server

Local

 خیلی از دیتابیس ها ارائه شده دارای هر دو نسخه هستند مانند Sql Server,mysql ,… .

معمولا برای پروژه ها بدون اعتنا به تک کاربره یا تحت شبکه بودن sql server را انتخاب می کنیم. و چون تجربه و اطلاعات در موردش نداریم چند ما زحمت می کشیم و پروژه ای را انجام می دهیم گاهی در وسط راه و گاهی بعد از پایان پروژه هنگام تحویل تازه مشکلات شروع شروه میشه اگه سری به تالار برنامه نویس بزنیم پر از همچنین سوالاتی است:

تو را خدا کمکم کنید پروژ ام باید فردا تحویل بدهم  نمیدونم چگونه دیتابیسم را انتقال بدم...

.... چگونه attach کنم ...

 .... سرور پیدا نمی شود....

.... چگونه بانک را دور از دست کاربر نگه دارم...

و............ .

برای انتخاب یک دیتابیس مناسب با پروژه ابتدا به چند نکته توجه کرد:

1-      آیا برنامه تک کاربره یا تحت شبکه است ؟(local)

2-      حجم دیتا چقدر است؟

اگه برنامه ما تک کاربره است به نظر من یک اشتباه است که از sql server استفاده کنیم Microsoft یک نسخه بسیار مناسب برای این گزینه دارد SQL SERVER CE .

چند تا از مزایای این دیتابیس براتون شرح میدم:

1-      درایور(دیتا انجین) این نسخه از sql فقط 2.5 مگابایت است که نسخه رایگانش را از سایتش میتوانید دریافت کنید.برای نصب فقط دو بار کلیک کافی است!

2-      دیتابیس آن به صورت فایل بوده (مانند access) و به راحتی قابل جا به جایی است. پس خیلی از دردسرهای نسخه های server را نداره.

3-      سرعت بسیار مناسب.

4-      و....

از معایب به عدم پشتیبانی از sp و.. و همچنین نرم افزار اختصاصی برای مدیریت (ایجاد و ویرایش و...) را می توان نام برد.

اما گزینه دیگر که بسیار مناسب است برای چه سرور و چه لوکال MYSQL است.

Mysql نسخه Local تمام قابلیت های sp,fuction,view و... دارد درایورش هم نیاز به نصب نداره و فقط لازم کنار پروژه کپی بشه.

 

Mysql یک دیتابیس رایگان و بسیار سبک و دارای نسخه های 32 بیتی و 64 بیتی است اخرین نسخه آن 6.10 با حجم فقط 120 مگابایت!  است که میتوانید از سایتش دریافت کنید.

MYSQL متاسفانه همیشه پشت نام Sql Server قرار گرفته است در حالی که تمام قابلیتهایی که sql server را دارد و بسیار سبک تر و سریعتر از sql server است و خیلی از دردسرهای sql server را ندارد.و زبان هم تقریبا 90% شبیه به همان زبان T-SQL است شاید مایروسافتی بودن sql server باعث شده که زیاد سراغ mysql برنامه نویسان نیایند توصیه می کنم به دوستان اگر تا حالا از mysql استفاده نکرده اید یک بار امتحان کنید.


این مقاله را HTTP://delphiplus.ir نیز منتشر کرده ام

چگونه یک دیتابیس مناسب انتخاب کنیم؟

امروزه در بیشتر نرم افزارها که تولید میکنیم نیاز به استفاده از دیتابیس است و متاسفانه در بیشتر موارد یک دیتابیس مناسب با نرم افزارانتخاب نمی کنیم و به مشکلات زیادی بر می خوریم.
در اغلب موارد دیده میشود برای هر پروژه ای برنامه نویسان(اعم از دانشجویان برای پروژه های دانشجویی و برنامه نویسان که تازه شروع به برنامه نویسی تجاری می کنند ) SQL SERVER را انتخاب می کنند و معمولا چون تازه شروع کرده اند و اطلاعات چندانی ندارند و در فروم های برنامه نویسی میبینیم که دست به سر مانده اند برای این پروژه هایی که فکر نکنم از اول تا آخر برنامه بیش از 1000 رکورد را به خود نمی بینند(مخصوصا نرم افزارهای تجاری) و اطلاحا local هستند sql server که انتخاب اشتباه هست چون اولا sql server همون طور که از نامش پیداست برای دیتابیس تحت شبکه ساخته شده و همچنین مدیریت آن تقریبا کار مشکلی است و همچنین عدم انجام تنظیمات امنیتی در سیستم که اتصال به اینترنت و... دارند یک تهدید محسوب می شود(چون تنظیمات مربوط به کاربر و پورت پیش فرض انجام نمی شود). البته مشکلات attach و backup و... باید اضافه کرد.
حالا حرف حساب بعد از این همه سخنرانی!
توصیه من به دوستان که مطابق با نیازهاشون یک دیتابیس انتخاب کنند برای برنامه های لوکال sql یک گزینه بسیار مناسب داره SQL CE. که دیتابیس به صورت یک فایل هست . حجم بسیار سبکی داره قابلیت SP ندارد! به راحتی قابل جابه جایی و امنیت خوبی داره درایور برای این دیتابیس حدود 2 مگابایت می باشد و هیچ آیکونی هم اضافه نمی کند(به try) و سرعت بسیار بالایی دارد نه نیاز به attach و ... .
گزینه دیگه که قابلیت بیشتری داره sp  و ... هم داره سرعت بسیار عالی محدودیت آنچنانی هم برای تعداد رکورد ندارد نصب درایورش برای لوکال یک فایل فشرده 19 مگابایتی هست که پروژه باید unzip بشه یا از همون اول کنار برنامه باشه! (همراه برنامه جابه جا بشه) کاملا رایگان می باشد زبانش بسیار شبیه t-sql می باشد تقریبا همون دستورات هستند. نام این دیتابیس هم شنیده اید mysql. mysql دارای 2 نسخه است local و server
حجم سرورش 120 مگابایت (آخرین نسخه). مقایسه کنید با sql server 2008 که یک dvd هست!.در حال عادی برنامه مدیریت نداره ولی نرم افزار های زیادی برای مدیریت این دیتابیس رایگان هست از جمله sqlyog و ems و....
میبینید که حجم دیتابیس با نرم افزارهای مدیریتی زیر 150 مگابایت است.جا به جایی بانک بسیار ساده است و مدیریت کاربران خیلی خیلی ساده است و نصبش هم چند دقیقه بیشتر طول نمیکشه.