PDA

View Full Version : ثابت کردن یک ستون از dbgrid در scroll کردن افقی



ALIreza_nil
سه شنبه 03 شهریور 1383, 10:56 صبح
چطوری میشه یک ستون از
dbgrid
را در حرکت دادن افقی ثابت نگه داشت


:?:

_alish_
سه شنبه 03 شهریور 1383, 13:35 عصر
یک کامپوننت از زیز کلاس DbGrid که می خوای، بنویس و event زیر را براش بگذار حال رویه ای exchange برای تعویض Columns در آن قرار بده



private
FVerScroll:TNotifyEvent;
{ Private declarations }
protected
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
....

procedure TMyScrollBox.WMVScroll(var Message: TWMVScroll);
begin
inherited;
if Assigned(FVerScroll) then
FVerScroll(Self);
end;

Sohrab_Tapar
سه شنبه 03 شهریور 1383, 13:49 عصر
افقی میشه horizontal
:wink:
همون کد با یک دستکاری مختصر



private
FVerScroll:TNotifyEvent;
{ Private declarations }
protected
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
....

procedure TMyScrollBox.WMHScroll(var Message: TWMHScroll);
begin
inherited;
if Assigned(FHorScroll) then
FHorScroll(Self);
end;

ALIreza_nil
سه شنبه 03 شهریور 1383, 13:54 عصر
:flower:

ALIreza_nil
سه شنبه 03 شهریور 1383, 14:01 عصر
اگه امکان داره کامپونت این را بگذارید
البته باعث زحمت میشه

:mrgreen:

_alish_
سه شنبه 03 شهریور 1383, 14:37 عصر
شرمنده داداش کدو برنامه نویس دیدی که وقت داشته باشه .تو این سایت برو بچ فقط راهنمایی می کنند و بقیه کارها با خودتان است یک کم تکون بخورید مشکل داشتید در خدمتیم :D

Sohrab_Tapar
سه شنبه 03 شهریور 1383, 18:48 عصر
1.منوی component
2.new component
3.Ansector Type = TDbgrid
4.انتخاب نام کلاس برای کامپاننت و pallete برای آن
5.تغییر کد به صورت زیر
:


unit Dbgrid1;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, Grids, DBGrids;

type
TDbgrid1 = class(TDbgrid)
private
FHorScroll:TNotifyEvent;
{ Private declarations }
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;

{ Private declarations }
protected
{ Protected declarations }

public
{ Public declarations }
published
{ Published declarations }
property OnHorizontalScroll : TNotifyEvent read FHorScroll write FHorScroll;
end;

procedure Register;

implementation

procedure TDbGrid1.WMHScroll(var Message: TWMHScroll);
begin
inherited;
if Assigned(FHorScroll) then
FHorScroll(Self);
end;

procedure Register;
begin
RegisterComponents('Tapar', [TDbgrid1]);
end;

end.


6.منوی کامپاننت
7.install component و انتخاب فایلی که کامپاننتتو در اون ذخیره کردی
8.Ok و Save
9.کار تمومه.الان یک dbgrid داری که یک event به نام OnHorizontalScroll داره که هر وقت
grid به صورت افقی اسکرول بشه اجرا میشه
کد مربوط به exchange کردن جای ستونها رو در آن بنویس.

ALIreza_nil
چهارشنبه 04 شهریور 1383, 08:39 صبح
اقا خیلی متشکر بازم به شما
:تشویق: :flower: (:D) :heart: :موافق: :mrgreen:

_alish_
چهارشنبه 04 شهریور 1383, 09:31 صبح
دمت گرم یعنی ما هیچی دیگه (حالا یکم سرمون شلوغه ) :oops:

ALIreza_nil
چهارشنبه 04 شهریور 1383, 13:20 عصر
اختیار دارید مهندس شما هم دستت درد نکنه راهنمایی توپی کردی
:flower: :wink: