当前位置:主页>销售管理软件> 列表

delphi7里的DBGrid控件,如何玩转!?请高人指点 找进销存破解补丁

记账软件版1楼: 本人使用DBGrid控件,问题多多!
1、怎样可以使用户(在DBGrid里)无法修改表里的数据?
2、怎样可以利用鼠标滚轮对表记录进行上翻,下翻?
3、怎样可以像EXCEL一样多格或整行选取?
4、怎样可以获得所点击格内的记录值?
5、怎样可以鼠标移动位置所在的行,整行表示(变色或……),点击后选中所击单元格?

2楼: 老大我给你个程序。。。你研究一下吧。。。
这个东东被做的和EXCEL差不多了。。。
超好用。。。
bbgsgs@163.com 如电脑销售管理软件

3楼: 笔记里有专贴,找一找

4楼: wwDBGrid

5楼: 为何不用Ehlib的DBGrideh?--太省事了!比DBGrid强多了!

6楼: 1、怎样可以使用户(在DBGrid里)无法修改表里的数据?--DBGrid的ReadOnly属性
2、怎样可以利用鼠标滚轮对表记录进行上翻,下翻?--编程实现,网上这样的技巧很多
3、怎样可以像EXCEL一样多格或整行选取?--选取整行DBGrid1.Options里面的dgRowSelect 设置成true;多格选择不太容易实现。
4、怎样可以获得所点击格内的记录值?--DBGrid1.SelectedField.AsString
5、怎样可以鼠标移动位置所在的行,整行表示(变色或……),点击后选中所击单元格?--实现起来有些困难!

记账软件版7楼: 我没有Ehlib,那位仁兄给小弟发过来,在下将不胜感激!


ziliao20050903@126.com

8楼: 我奇怪一点,虽然外挂VCL确实很多很优秀,但是为什么不先学基础的?莫非大家都习惯了绕开困难走捷径?那可不是好主意。。。
我是菜鸟,回答你的问题也许不够好,帮你找了DFW离线论坛里的资料:
1.设置DBGrid的ReadOnly属性为True即可

2.需要自己捕捉WM_MOUSEWHEEL消息处理,示例代码如下:

private
OldGridWnd : TWndMethod;
procedure NewGridWnd (var Message : TMessage);

public

procedure TForm1.NewGridWnd(var Message: TMessage);
var
IsNeg : Boolean;
begin
if Message.Msg = WM_MOUSEWHEEL then
begin
IsNeg := Short(Message.WParamHi) < 0;
if IsNeg then
DBGrid1.DataSource.DataSet.MoveBy(1)
else
DBGrid1.DataSource.DataSet.MoveBy(-1)
end
else
OldGridWnd(Message);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
OldGridWnd := DBGrid1.WindowProc ;
DBGrid1.WindowProc := NewGridWnd;
end;

3.整行选取只需要设定DBGrid的Options属性下的dgRowSelect属性为True即可。

4.DBGrid默认是选定一个字段。你直接dbgrid1.SelectedField.Value 就可以,示例为:变量:=dbgrid1.SelectedField.Value;

5.设置Dbgird.Option.RowSelected:=true;(若你不想整行变色则就不要设置该项),然后在DBGrid的OnDrawDataCell事件里写如下代码即可:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if gdselected in state then
begin
dbgrid1.Canvas.Brush.Color:=clred; //选中的单元格或行的颜色
dbgrid1.Canvas.FillRect(rect);
dbgrid1.Canvas.Pen.Color:=clwhite; //选中的单元格或行的字体颜色
if VarType(Field.Value)=varNull then
dbgrid1.Canvas.TextOut(rect.left,rect.top,'''')
else
dbgrid1.Canvas.TextOut(rect.left,rect.top,Field.Value);
end;
end;

9楼: PS:楼主该好好看看离线论坛或找找网上的相关资料,然后再问:)另外DBGrideh确实不错,不过我也确实反感楼上几位不负责的态度,既然是相互交流,就不应该敷衍。若是“俯视”的态度,那就还是别回答算了,高手多着呢。。。

10楼: 340340仁兄给在下的这两段程序,我写后都没反映!而且不知阁下有没有离线论坛给在下欣赏一二!谢!
ziliao20050903@126.com

11楼: 可以试试到网上找资料啊

12楼: 我这里有一些资料


QQ:434965586 如进销存破解补丁

13楼: to bbgsgs:
给我也发一份吧
jjzjy@info.btd.com

记账软件版14楼: 还是不要用其他控件解决东西,
其实好多搜索以下都可以解决,
又可以学东西。

15楼: 我非常赞成340340的观点,就是要自己解决问题才有乐趣,不是很急的情况下,不要用控件。
http://www.delphibbs.com/keylife/iblog_show.asp?xid=4659