PDA

View Full Version : نمایش یک فیلد در dbgrid به صورت ایکن ؟



mahdi939
یک شنبه 08 خرداد 1384, 18:28 عصر
با سلام

من میخواهم فیلدی از یک table یا adotable مقدار فیلد 1 یا 0 باشد ولی در dbgrid برای هر یک از این مقادیر یک ایکن نمایش بدهد .


با تشکر

Tarrah
یک شنبه 08 خرداد 1384, 20:00 عصر
سلام
فکر می کنم اگه نوع فیلدتون رو ole یا graph بگیرین می تونین مشکلتون رو حل کنین.

kamyar_kimiyabeigi
چهارشنبه 18 خرداد 1384, 13:12 عصر
شما می تونین از wwdbgrid و یا cxgrid استفاده کنید

m-khorsandi
چهارشنبه 18 خرداد 1384, 13:35 عصر
درود

من این کار رو کردم البته به روش خودم:
به غیر از ADOQuery و DBGrid که روی فرم هست، یک ImageList هم رو فرم بذار.
یه متغیر هم از نوع TIcon تعریف کن به این صورت:



Var_FullExternalImage: TIcon;



که اینجوری هم باید ایجاد بشه و میتونی توی FormCreate بنویسی:



Var_FullExternalImage := TIcon.Create;


یه عکس هم به ImageList اضافه کن و برای اینکه بتونی عکس توی ImageList رو بخونی و به متغیر
از نوع TIcon بدی میتونی از دستوز زیر استفاده کنی و این رو هم میتونی توی FormCreate بنویسی:



ImageList.GetIcon(0, Var_FullExternalImage);



DBGrid یه Event داره به نام OnDrawColumnCell که دستورات زیر رو توی اون بنویس:



With Sender as TDBGrid do
Begin
Canvas.FillRect(Rect);
If (Column.Field.FieldName = 'FullAttExternal') Then
Begin
If qryGroups.FieldByName('FullAttExternal').AsInteger = 1 Then
Canvas.Draw(Rect.Left, Rect.Top, Var_FullExternalImage);
End
Else
Canvas.TextOut(Rect.Left, Rect.Top, Column.Field.AsString);
End;



امیدوارم چیزی رو کم ننوشته باشم.