PDA

View Full Version : آیکن روی عنوان ستون DBGrid



Mahdi_S_T
دوشنبه 03 بهمن 1384, 14:43 عصر
چطوری روی عنوان یه ستون DBGrid می تونم آیکن بزارم که با کلیک ماوس روی آن آیکن عوض بشه ؟

Touska
سه شنبه 04 بهمن 1384, 18:28 عصر
میتونید از Infopower 4000 استفاده کنید.

موفق باشید.

vcldeveloper
چهارشنبه 05 بهمن 1384, 03:34 صبح
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
R : TRect;
Pic : TPicture;
i : integer;
begin
with Sender as TDBGrid do
begin
//Draw the image on the third colum
if DataCol = 2 then
begin
Pic := TPicture.Create;
try
pic.Assign(Image1.Picture); //--> Create your own image!
R.TopLeft := Point(0,0);
R.Bottom := THackedGrid(DBGrid1).RowHeights[0];
//Calculate the picture's Left value
for i := 0 to DataCol-1 do
Inc(R.Left,Columns[i].Width);
//The picture must be drawn after the column's title
Inc(R.Left,Canvas.TextWidth(Column.Title.Caption) + 8);
R.Right := Pic.Width + R.Left;
//Draw the picture
Canvas.StretchDraw(R,Pic.Graphic);
finally
Pic.Free;
end;
end; //if DataCol
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end; //With
end;

Mahdi_S_T
چهارشنبه 05 بهمن 1384, 13:37 عصر
استاد ممنون میرم تست کنم .

دنی کوئیل
چهارشنبه 05 بهمن 1384, 17:16 عصر
از این کد خطا می گیره


R.Bottom := THackedGrid(DBGrid1).RowHeights[0];


از این THackedGrid

اَرژنگ
چهارشنبه 05 بهمن 1384, 17:48 عصر
type
THackedGrid = class(TDBGrid);

شفیعی
جمعه 15 اردیبهشت 1385, 09:29 صبح
سلام


R.Bottom := THackedGrid(DBGrid1).RowHeights[0];
[Error] UNIT6.PAS(319): Undeclared identifier: 'THackedGrid'

vcldeveloper
جمعه 15 اردیبهشت 1385, 21:51 عصر
آقای شفیعی، من یادم رفت بخش type سور را هم در پستم قرار بدم. RowHeights یک خصوصیت Protected هست و در صورتی می تونید ازش استفاده کنید که از کلاس TCustomDBGrid یک کلاس مشتق کنید:


type
THackedDbGrid = class(TCustomDbGrid);

sardar_ahmadi
شنبه 16 اردیبهشت 1385, 05:57 صبح
type را کجا قرار دهیم
هرکجا که این type را قرار میدهیم باز هم خطا میگیرد .

m-khorsandi
شنبه 16 اردیبهشت 1385, 09:00 صبح
جستجو کنید :
http://www.barnamenevis.org/forum/showthread.php?p=226995

شفیعی
سه شنبه 19 اردیبهشت 1385, 15:28 عصر
سلام
من از دستورات بالا استفاده کردم فقط مشکل اینجاست که عکس را فقط در یکجای ثابت از DBGRID نمایش می دهد مثلا فقط روی ستون دوم نمایش می دهد

vcldeveloper
چهارشنبه 20 اردیبهشت 1385, 07:47 صبح
عزیز جان، کد بالا یه مثال هست. کد رو بخون و مناسب با سلیقه خودت اون رو تغییر بده...
(خط if DataCol = 2 then)