//类型定义
type
  lnode = record
    ihour : integer;
    imin : integer;
    strFilepath : string;
  end;
pnode: ^lnode;
TimeSet: Tlist;var
    i: integer;
    SysTime: TsystemTime;
    lihour: integer;
    limin: integer;
    shour: integer;
    smin: integer;
    URL: string;
begin
    GetSystemTime(SysTime);
    for i:= 0 to (Timeset.Count-1) do
    begin
        lihour :=((lnode)(Timeset.Items[i]) ).ihour;  //开始
        limin:= ((lnode)(Timeset.Items[i])).imin ;
        shour:= (int)(systime.wHour);
        smin:=  (int)(systime.wMinute);
        URL:= ( (lnode) (Timeset.Items[i]) ).strFilepath;//结束 这一段编译错误
//下面代码略错误提示
[Error] Unit1.pas(199): '(' expected but ')' found
[Error] Unit1.pas(199): ')' expected but ';' found
…………
请高手指点

解决方案 »

  1.   

    应该这样:
            lihour :=pnode(Timeset.Items[i]).ihour;  //开始
    果然如楼上所说,搂主是搞C++的。
      

  2.   

    使用TStringGrid控件,Name是sg_item,对应第一列的值sg_item.Cells[0,i],第二列的值sg_Item.cells[1,i]
    比如第一列取出来每行字符串是a,b,c,b,a五个,对应第二列的值是10,20,30,20,10
      现在需要把sg_item每行的字符串对应的值相加,但是忽略相同行的值
      上面的a对应10,b对应20,c对应30,那么结果就为60,重复行a和b只统计一次
    大家有什么好的解决方法 *_* 
    以下是程序片段.
    var
      i:integer;
      costsum:double;
    begin  
      for i:=1 to sg_Item.RowCount-2 do
      begin
        costsum:=costsum+ StrToFloat(sg_Item.cells[1,i])
      end;
    end;好像就是使用Tlist也可以解决,大家谁能帮忙看看呗
      

  3.   

    type
      lnode = record
        ihour : integer;
        imin : integer;
        strFilepath : string;
      end;
    pnode := ^lnode;
    TimeSet: Tlist;for:
    TimeSet[0] is a pointer;
    var
      p: pnode;
      p := pnode(TimeSet[0]);ShowMessage( p.strFilepath );
    ShowMessage( ( pnode(TimeSet[0]) ).strFilepath);C++:
    p = (pnode) TimeSet[0];delphi:
    p := pnode (TimeSet[0]);