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

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

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

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

انتخاب همه رکوردها DBgrid

برای انتخاب همه رکوردها در dbgrid از کد زیر استفاده کنید


function GridSelectAll(Grid: TDBGrid): Longint;
begin
  Result := 0;
  Grid.SelectedRows.Clear;
  with Grid.DataSource.DataSet do
  begin
    First;
    DisableControls;
    try
      while not EOF do
      begin
        Grid.SelectedRows.CurrentRowSelected := True;
        Inc(Result);
        Next;
      end;
    finally
      EnableControls;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  GridSelectAll(DBGrid1);
end;

خبر کردن کاربر در حالتی کمینه بودن برنامه

وقتی می خواهید موضوعی را به کاربر اطلاع بدهید و برنامه در حالت مینیمایز است(مثل پنجره های چت یاهو مسنجر)
از کد زیر میتونید استفاده کنید


FlashWindow(Handle, True); // فرم فعلی
 
FlashWindow(Application.Handle, True);//

سریال برای نصب دلفی XE3

سریال: MAFA-A3D7PD-FJBBAE-FACN

جستجو در فایل های راهنما(Help)

procedure HelpSearch(sHelpFName, sSearchKey: string);
var
  pc: PChar;
begin
  Application.HelpFile := sHelpFName;
  pc := StrAlloc(Length(sSearchKey) + 1);
  StrPCopy(pc, sSearchKey);
  Application.HelpCommand(HELP_PARTIALKEY, LongInt(pc));
  StrDispose(pc);
end;

مثال

HelpSearch('DELPHI.HLP', 'colors');


HelpSearch('DELPHI.HLP', '');



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


با سلام
در این پست قصد معرفی کامپوننت های سازگار با دلفی  XE3 را دارم تا مهاجرت برای شما آسان شود.
Berg Soft Components
QuickReport v5.05

GExperts 1.37
LMD 2012.7

تمامی محصولات شرکت Devart (MYdac,sdac,odac,pdac,..)


ادامه دارد...


توجه داشته باشید تما کامپوننت های معرفی شده را از طریق جستجودر گوگل نسخه کامل آن را دریافت کنید!!!

اضافه ها در دلفی XE3

چه مواردی به دلفی XE3 اضافه شده است؟


اگه دوست دارید بدونید در دلفی XE3 چه چیزهایی اضافه شده است این PDF بخوانید.

تعیین گروهی از رکوردهای جدول

به سه روش می‌توان گروهی از رکوردها را در جدول تعیین کرد که عبارت‌اند از:

1ـ استفاده از خاصیت Filter

2ـ استفاده از رویداد OnFilterRecord

3ـ استفاده از متد SetRange

 

استفاده از خاصیت Filter

در این روش مراحل ایجاد فیلتر به صورت زیر است:

1ـ خاصیت Filtered را به مقدار True تغییر دهید.

2ـ مقداری را در خاصیت Filter قرار دهید که باید بر اساس آن فیلتر انجام شود.

به عنوان مثال، دستورات زیر را در نظر بگیرید:

Table1.Filtered := True;

Table1.Filter := ‘Fname = ‘Saeed’’ ;

این دستورات، رکوردهایی را نشان می‌دهد که نام آنها saeed باشد.

در خاصیت Filter می‌توان از عملگرهای not , or , and استفاده نمود. به عنوان مثال، دستورات زیر را در نظر بگیرید:

Table1.Filter := ‘Age > 20 and Age 40’ ;

Table1.Filtered := True ;

این دستورات، تمام رکوردهایی را نشان می‌دهد که سن  آنها بین 20 تا 40 باشد.

مجموعه دستورات زیر، تمام رکوردهای جدول را نمایش می‌دهد.

Table1.Filter := “ ;

Table1.Filtered := True ;

یا

Table1.Filtered :=False;

اگر مقدار خاصیت Filter خالی و مقدار خاصیت Filtered برابر با True باشد، تمام رکوردهای جدول را نمایش می‌دهد. از این روش می‌توان برای حذف فیلترهای قبلی استفاده کرد.

 

استفاده از رویداد OnFilterRecord

روش دیگر ایجاد فیلتر استفاده از رویداد OnFilterRecord است. این رویداد، برای هر یک از رکوردهای جدول فراخوانی می‌شود. این رویداد، برای ایجاد فیلتر از پارامتر

Accept استفاده می‌کند و به صورت زیر به کار می‌رود:

; (مقدار فیلتر) Accept :=

این دستور، در پارامتر Accept هر رکوردی که در شرط فیلتر صدق کند، مقدار True را قرار می‌دهد. به عنوان مثال، برای ایجاد فیلتر با این روش، رویداد OnFilterRecord جدول را دوبار کلیک کرده کد زیر را تایپ کنید:

Accept := (Table1.FieldByName ('Code').Values = '7’) ;

 این دستور، رکوردی را نمایش می‌دهد که کد دانشجویی آن ‘7’ باشد. کد کامل این برنامه به صورت زیر است:

procedure Tform1.TableFilterRecord (DataSet:TdataSet; var Accept:Boolean);

begin

     Accept := (Table1.FieldByName ('code').Values = '7’);

 

متد FindFirst : با استفاده از این متد می‌توان اولین رکوردی را پیدا کرد که شرایط فیلتر را داشته باشد و به صورت زیر استفاده می‌شود:

.FindFirst; نام عنصر

در این متد، اگر اشاره‌گر، به اولین رکوردی انتقال یابد که دارای شرایط فیلتر باشد، مقدار True و گرنه مقدار False را برمی‌گرداند.

 

متد FindNext: با استفاده از این متد می‌توان رکورد بعدی را تعیین کرد که دارای شرایط فیلتر است و کاربرد آن به صورت زیر است:

.FindNext ; نام عنصر

اگر اشاره‌گر به رکورد بعدی که دارای شرایط فیلتر است، منتقل شود، این متد مقدار True و گرنه مقدار False را برمی‌گرداند.

 

متد FindLast : این متد، برای پیدا کردن آخرین رکوردی به کار می‌رود که شرایط فیلتر را داشته باشد، و به صورت زیر استفاده می‌شود:

.FindLast ; نام عنصر

اگر اشاره‌گر، به آخرین رکوردی انتقال یابد که دارای شرایط فیلتر باشد، این متد مقدار True و گرنه مقدار False را برمی‌گرداند.

 

متد FindPrior : این متد، اشاره‌گر را به رکورد قبلی انتقال می‌دهد که دارای شرایط فیلتر باشد، و به صورت زیر به کار می‌رود:

.FindPiror ; نام عنصر

اگر اشاره‌گر، به رکورد قبلی که دارای شرایط فیلتر باشد، منتقل گردد این متد مقدار True و گرنه مقدار False را برمی‌گرداند.

 

متد SetRange : با استفاده از این متد می‌توان گروهی (محدوده‌ای) از رکوردها را در جدول تعیین کرد و از آنها استفاده نمود. پس از تعیین محدوده‌ای از رکوردها، می‌توان فرض کرد که بقیه رکوردها وجود ندارند. متد SetRange به صورت زیر به کار می‌رود:

‘ ; نام فیلد.IndexName := ' نام عنصر

; ([مقدار 2] , [مقدار 1]) .SetRange نام عنصر

به عنوان مثال، دستورات زیر را در نظر بگیرید:

Stu.IndexName := 'Fname';

stu.SetRange (['Saeed']) ;

در این دستورات، رکوردهایی در جدول ظاهر می‌گردند که نام آنها ‘saeed’ باشد. مجموعه دستورات زیر، رکوردهایی را که حقوق آنها بین 20 تا 40 ریال باشد، نمایش می‌دهد.

Stu.IndexName := 'Age' ;

Stu.SetRange ([20] , [40]);

 

متد CancelRange : با استفاده از متد CancelRange می‌توان محدوده در نظر گرفته برای جدول را حذف نمود و تمام رکوردهای جدول را نمایش داد. کاربرد متد CancelRange به صورت زیر است:

.CancelRange ; نام عنصر

به عنوان مثال، دستور زیر را در نظر بگیرید:

Stu.CancelRange;

این دستور، محدوده‌ای را حذف می‌کند که توسط SetRange قبلی ایجاد شد و سبب نمایش تمام رکوردهای بانک اطلاعاتی می‌شود.

 

متد SetRangeStart : با استفاده از این متد می‌توان بازه شروع فیلتر قبلی را حذف نمود و بازه شروع فیلتر جدیدی را تعریف کرد. این متد به صورت زیر به کار می‌رود:

.SetRangeStart; نام عنصر

 ;مقدار بازه شروع فیلتر := نوع فیلد .as (نام فیلد) FieldByName . نام عنصر

متد SetRangeEnd: این متد، بازه پایانی فیلتر قبلی را حذف کرده بازه پایانی فیلتر جدیدی را تعریف می‌کند و به صورت زیر به کار می‌رود:

.SetRangeEnd ; نام عنصر

; مقدار بازه پایانی فیلتر := نوع فیلد .as (نام فیلد) FieldByName . نام عنصر

 

متد EditRangeStart : با استفاده از این متد می‌توان بازه شروع فیلتر قبلی را تعویض کرد و بازه شروع جدیدی را تعریف نمود و به صورت زیر به کار می‌رود:

.EditRangeStart; نام عنصر

 ;بازه شروع فیلتر := نوع فیلد .as (نام فیلد) FieldByName . نام عنصر

 

متد EditRangeEnd: این متد برای تعویض بازه پایانی فیلد موجود به کار می‌رود و به صورت زیر مورد استفاده قرار می‌گیرد: 

.EditRangeEnd ; نام عنصر

; بازه پایانی فیلتر جدید := نوع فیلد .as (نام فیلد) FieldByName . نام عنصر

به عنوان مثال، دستورات زیر را در نظر بگیرید:

with Table1 do

   begin

       EditRangeStart;

       FieldByName ('Age').asInteger := StrToInt (Edit1.Text);

       EditRangeEnd;

       FieldByName ('Age').asInteger := StrToInt (Edit2.Text); 

       ApplyRange;

End;

این دستورات کلیه رکوردهایی را نمایش می‌دهد که سن  آنها بین مقادیر عنصر Edit2 , Edit1 باشد.

متد ApplyRange : این متد، فیلتر را با استفاده از بازه شروع فیلتر و بازه پایان فیلتر بر روی جدول اجرا می‌کند و به صورت زیر استفاده می‌شود:

.ApplyRange ; نام عنصر

به عنوان مثال، دستورات زیر را در نظر بگیرید:

with Table1 do

     Active := True;

     SetRangeStart;

     FieldByName ('Age').asInteger := 20;

     SetRangeEnd;

     FieldByName ('Age').asInteger := 40;

     ApplyRange;

End;

این دستورات، رکوردهایی از جدول را نمایش می‌دهد که سنشان در بازه 20 تا 40 باشد.