捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:ehlib4.2.16增强forD7.rar
rencaicgy139 38109 2009/7/22 16:38:12
问什么我装上后控件面板里面只有两个可见其他的看不到啊。
yuanfuh 37041 2009/3/31 15:56:59
请问怎么装这个控件呀
kinsunc 36913 2009/3/12 9:58:18
感觉还是不错的.不过实际使用了一下,发现中式金额栏还是有很大的bug的.希望能够改进.
kinsunc 36911 2009/3/12 9:36:05
看了.发现bug还是很多.继续努力
wine 36726 2009/2/4 12:37:16
楼主好同志呀,祝早日找到好工作
nbanba9756 36653 2009/1/12 20:22:37
type TLKCustomDBGridEh=class(TCustomDBGridEh);
这句的意思是继承TCustomDBGridEh为了访问类中保护成员
c++的继承是不能在函数内和类中嵌套 你放在那里都行就是不能在用到类函数的后面
否则你就必须前向申明例如delphi很多源码中的TControl=class; 这样的前向说明。
我建议sharegem你要好好巩固一下c++基础概念
hnxxcxg 36509 2008/12/31 12:37:23
感謝諸位的關注,我會繼續改良的
sharegem 36491 2008/12/29 12:23:24
to :nbanba9756
type TLKCustomDBGridEh=class(TCustomDBGridEh);

放在哪里??这个修改版请发上来吧
jxpxshh 36475 2008/12/28 0:12:07
用过DevExpress ExpressQuantumGrid cxGrid才知道什么叫强大,看了ehlib就头痛,过滤时动不动就出错。
zcm1975117 36474 2008/12/27 19:33:07
嘿嘿,这年头,做程序员还是很辛苦的哈
另外那个统计的功能和统计图我觉得应该放在一起,没有必要分开,更方便用户.
另外那个统计图也有问题,最好是动态创建那个图!
hnxxcxg 36467 2008/12/26 12:33:47
感謝nbanba9756 修正了BUG,只有大家的參與,這個控件才會做的更好~~
nbanba9756 36458 2008/12/24 23:07:35
TO HNXXCXG
这段代码有点瑕疵,如果记录数大于显示的行数以后,序号就不正常了
我改动了一下,现在正常了。和kinneng的效果一样随便怎么插入或添加都正常
在TCustomDBGrideh protected 中加入一个属性 FDataRowTop:integer;
type TLKCustomDBGridEh=class(TCustomDBGridEh);
procedure TGridDataLinkEh.DataEvent(Event: TDataEvent; Info: Integer);
{$ENDIF}
begin
  inherited;
  //add by lk 辅助显示序号
  if (Event = deCheckBrowseMode)and(FGrid<>nil) then TLKCutomDBGridEh(FGrid).FDataRowTop:= FGrid.DataRowToRecNo(0);
  //end by lk 
{$IFDEF EH_LIB_7}
  if Event = deDisabledStateChange then
    FGrid.Columns.ActiveChanged;
{$ENDIF}
end;

procedure TCustomDBGridEh.DrawColumnCell(const Rect: TRect; DataCol: Integer;
  Column: TColumnEh; State: TGridDrawState);
//add by cxg
var
  Str: string;
  i,t: Integer;
//end by cxg  
begin
  //add by cxg
  if (dgIndicator in Options) and FShowSerialNo then
  begin
    Canvas.Brush.Style := bsClear;
    if Column.Field.Dataset.State = dsInsert then     //append state
    begin
     //下面不需要了
     { if DataSource.DataSet.RecordCount-datarowcount<0 then t:=0;
      if DataSource.DataSet.RecordCount-datarowcount=0 then t:=1;
      if DataSource.DataSet.RecordCount-datarowcount=1 then t:=2;
      if DataSource.DataSet.RecordCount-datarowcount>=2 then
        t:=DataSource.DataSet.RecordCount-datarowcount+1;
      i:=MouseCoord(Rect.Left + 1, Rect.Top + 1).Y+t;}
      //到这里结束
      i:=MouseCoord(Rect.Left + 1, Rect.Top + 1).Y+FDataRowTop-1;
      str := Format('%d', [i]);
    end
    else if not DataSource.DataSet.IsEmpty then      //no append state
      str:=Format('%d',[DataSource.DataSet.RecNo]);
      
    Canvas.TextOut((ColWidths[0] - Canvas.TextWidth(Str) - IndicatorWidth) shr
      1, Rect.Bottom - Canvas.TextHeight('0') - 2, Str);
    Canvas.TextOut(0,0,'序号');    //add by cxg 2008-01-02 11:02:05
  end;
  //end by cxg
  
  if Assigned(OnDrawColumnCell)
    then OnDrawColumnCell(Self, Rect, DataCol, Column, State);
end;   
顺便说一句我也是湖南人
jone_h 36451 2008/12/24 0:33:04
向楼主致敬! 希望你已找到合适的工作了。我也失业中
xxzqb 36441 2008/12/22 16:56:39
不好意思,  

我想问一下,这个控件如何加入到Delphi中呢?

望赐教, 谢谢。
aagen 36327 2008/12/10 6:15:49
呵呵,楼主好样的啊

我下载了你之前的版本

感觉还不错哦

另外为我的老乡支持加油o(∩_∩)o...哈哈
hnxxcxg 36316 2008/12/9 9:47:38
欢迎大家根据自己项目的需要对该控件做出适当的修改
happyhong 36295 2008/12/5 20:24:36
楼主,我比你小一年,我也是这三年才正式加入到软件公司工作,之前也是维护+业余,在软件编写方面,兴趣+细心+思路都很重要的,相信你进到软件公司的!
你那个增强方面的控件的分组统计,我想封装成控件,让用户能选择数据源(SQLSERVER或ACCESS)等,这样可用性就强多了
hnxxcxg 36291 2008/12/5 12:21:57
TO 红哈
你改成SQL SERVER临时表就不通用了,ACCESS表在WINDOWS操作系统里面是通用的,你那样,人家非得安装SQL SERVER数据库。

另外本人虽然30岁了,但实际开发项目只有年把时间,可以说属于工作不太稳定期,虽然本人很想稳定发展。所以一年之内多次失业,多次找工作,让某些人觉得不理解了。我也是冒办法:一大把年纪了才正式干程序员。但我还是敢于毛遂自荐:此人大可放心使用。呵呵。再次感谢红哈捧场。听不懂的话,我讲的是湘乡话。呵呵。
happyhong 36290 2008/12/5 11:28:25
不愧是楼主,求职求到这了,佩服你的勇气和对程序的兴趣。
那个问题我解决了
我改了大概几处,也把ACCESS的临时表移植进SQLSERVER中
function TADOBatchMove.ADOTableCreatefromQuery(ADOTablepara: TADOTable):boolean;
var
  i:integer;
begin
  result:=false;
//  FDESTADOQuery.connectionString:=ADOTablepara.connectionString;
  FDESTADOQuery.Connection:=ADOTablepara.Connection;
  FDESTADOQuery.sql.Clear;
  //hzh 2008-12-03 转到在SQLSERVER中创建临时表
  FDESTADOQuery.sql.add('if object_id(''tempdb..#grp'') is not null drop table #grp');
  //////////
  FDESTADOQuery.sql.add('create table '+ ADOTablepara.Tablename +'(');
//  for i:=0 to FSOURCEADOQuery.fielddefs.Count-1 do
//  begin
//    if i<FSOURCEADOQuery.fielddefs.Count-1 then
//      FDESTADOQuery.SQL.Add(FSOURCEADOQuery.fielddefs[i].Name+' '+
//        datatypetoaccesstypeandsize(FSOURCEADOQuery.fielddefs[i])+',')
//    else FDESTADOQuery.SQL.Add(FSOURCEADOQuery.fielddefs[i].name+' '+
//      datatypetoaccesstypeandsize(FSOURCEADOQuery.fielddefs[i])+')');
//  end;

  for i:=0 to FSOURCEADOQuery.fields.Count-1 do
  begin
    if i<FSOURCEADOQuery.fields.Count-1 then
      FDESTADOQuery.SQL.Add(FSOURCEADOQuery.fields[i].fieldname+' '+
        datatypetoaccesstypeandsize(FSOURCEADOQuery.fields[i])+',')
    else FDESTADOQuery.SQL.Add(FSOURCEADOQuery.fields[i].fieldname+' '+
      datatypetoaccesstypeandsize(FSOURCEADOQuery.fields[i])+')');
  end;

  FDESTADOQuery.execsql;
  FDESTADOQuery.close;
  result:=true;
end;
//////////

function TADOBatchMove.datatypetoaccesstypeandsize(ftdef: TField): string;
begin

  with ftdef do
  begin
    case DataType of
      ftAutoInc:Result:='integer';
      ftstring: Result:='varchar('+inttostr(ftdef.Size)+')';
      ftWideString: Result:='varchar('+inttostr(ftdef.Size)+')';
      ftsmallint: result:='integer';
      ftinteger: Result:='integer';
//      ftfloat: Result:='double';
      ftfloat: Result:='decimal('+inttostr(tfloatfield(ftdef).Precision)+
          ','+inttostr(tfloatfield(ftdef).Size)+')';
      ftcurrency: result:='money';
      ftbcd: Result:='decimal('+inttostr(tbcdfield(ftdef).Precision)+
          ','+inttostr(ftdef.Size)+')';
      ftboolean: result:='bit';
      ftDateTime: Result:='datetime';
    else Result:='varchar('+inttostr(ftdef.Size)+')';
    end;
  end;
end;
hnxxcxg 36281 2008/12/3 11:56:02
delphi求职

姓名:陈新光  性别:男  出生年月:1978年9月29日籍贯:湖南省湘乡市梅桥镇丰隆村伍组身高:165CM   体重:60KG  身体状况:绝对健康(有健康证)学历:中专  在校期间:1994年至1998年 毕业院校:湖南省岳阳市长岭石油学院手机:13054488940   EMail:hnxxcxg@yahoo.com.cnQQ:254072148 工作经历:      1998年至2001年湘潭市步步高连锁超市有限公司任网络维护员      2002年至2006年湘潭市志诚科技有限公司任技术员从事付食、百货POS软件系统集成      2006年至2007年中山市和景酒楼维护中餐餐饮POS软件      2007年至2008年佛山市易联资讯任程序员开发钢木门、铝合金门业软件     2008年深圳市华旭科技开发有限公司任程序员开发多表远传和管网压力软件 自我评价:      有一定的软件开发经验,能熟练地使用DELPHI进行数据库软件的开发。     从事软件开发纯粹兴趣使然,所以想一直地坚持下去。在从事网络维护、系统集成的多年时间里(始于2003年)业余时间里学习软件开发技术,应该来说已经深入了DELPHI语言的许多开发技术层面。能进行SOCKET网络编程;能使用INDY控件进行开发网络。会开发多线程程序。这有盒子上的一些作品为证(都是业余时间感兴趣写的)。但实际从事开发软件项目的时间并不长,所以想融入比较成熟的开发团队里面学习一番,加强对整个开发的可控制性。本人本着谦虚、谨慎的态度想在软件项目的实际开发取些真经,对待遇要求不高,般般就行。希望贵公司能给予我这种机遇。目前人在深圳。 作品展示:      http://2ccc.com/search.asp?KeyWord=hnxxcxg&Submit=%BF%EC%CB%D9%CB%D1%CB%F7或者请您google或百度搜一下"hnxxcxg"这个关键字就能看到我的一些作品。 如蒙贵公司录用,不胜荣幸。
第一页 上一页 下一页 最后页 有 53 条纪录 共3页 1 - 20
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表