起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: linjiawei

【搞定】关于甘特图(PSGanttGraph)定位的问题 **

[复制链接]
发表于 2006-2-28 17:43:02 | 显示全部楼层
1、先判断传进来的参数是不是当前焦点;
2、把Bar的画笔颜色置为红色;
3、在最后加上GanttBar.DefaultPaint;就可以了。

因为我不知道如何得到甘特图中的一个PSGanttBar,所以上面的方法我没有测试过 ,请楼主试试,顺便共享一下方法,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-28 19:51:52 | 显示全部楼层

不知道下面的方法是否合理

定位DataGrid是可以了,但还是不知道如何定位TPSGanttBar

procedure TRPPROJECTSCHEDULEFORMDOC.PSGanttGraph1FocusBarChange(Sender: TPSGanttGraph; GanttBar: TPSGanttBar; var Allow: Boolean);
begin
  if TPSDataObject(GanttBar.DataObject).BarType=TPSBarType.btProjectSummary then
  begin
    Allow := False;
    Exit;
  end;
  With dsData.DataSet do
  begin
    DisableControls;
    Locate('GUID',TPSDataObject(GanttBar.DataObject).TaskName,[]);
    EnableControls;
  end;
end;

procedure TRPPROJECTSCHEDULEFORMDOC.DataGridClick(Sender: TObject);
var
  lGanttBar :TPSGanttBar;
begin
  lGanttBar :=PSGanttGraph1.GetGanttBar(dsData.DataSet.RecNo,1);  //数据的行和PSGanttBar的RowID是一一对应的
  if PSGanttGraph1.FocusBar<> lGanttBar then
  begin
     //这里咋整啊...
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2006-3-1 09:34:57 | 显示全部楼层
还是11楼的方法,在TPSGanttGraph的OnDrawBar事件中写如下代码:
procedure TPlanGanttView.GanttGraphDrawBar(Sender: TPSGanttGraph; GanttBar: TPSGanttBar);
begin
  if FSelectBarList.Indexof(GanttBar) <> -1 then
    GanttBar.Canvas.Brush.Assign(GanttBar.Owner.FocusBrush);
  GanttBar.DefaultPaint;
end;

看楼主12楼的方法,如果DataGrid中数据比较多的话,滚动数据可能会导致数据条与甘特图对应不在一行上面。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 10:55:26 | 显示全部楼层

问题已经解决,感谢!

:jumpy:
回复 支持 反对

使用道具 举报

发表于 2006-3-1 11:00:37 | 显示全部楼层
哦,太好了!
结贴:)

楼主,如果方便的话,把这个甘特图功能打个资源包搞上来,可以当作论坛的案例,也方便大家共同学习,谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 22:18:25 | 显示全部楼层

打包

打包

打包.rar

52.62 KB, 下载次数: 75

回复 支持 反对

使用道具 举报

发表于 2006-3-2 08:35:50 | 显示全部楼层
感谢楼主:)
回复 支持 反对

使用道具 举报

发表于 2007-10-30 08:26:28 | 显示全部楼层

跟贴,我也要知道

以备后用!
回复 支持 反对

使用道具 举报

发表于 2008-1-18 17:15:11 | 显示全部楼层
16楼的资源包适用于24XX以前的版本,以后的版本用此楼

甘特图.rar

651.04 KB, 下载次数: 136

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-6 01:00 , Processed in 0.040958 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表