三人行必有汝师矣,I'm first person!

解决方案 »

  1.   

    //推荐
    http://www.csdn.net/expert/topic/429/429416.shtm嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
    嘻嘻嘻我来了嘻嘻嘻嘻
    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
      

  2.   

    cobi(我是小新): 师傅啊,快帮我解决一下啊http://www.csdn.net/expert/topicview1.asp
      

  3.   

    Linux2001(醒悟,发奋中):你给出的连接我是去不了的,没有帖子的id
      

  4.   

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
    to zswang(伴水)(被黑中) 俺还在看你的那个转换年月日的代码那,嘿嘿
    下一步做什么啊?快快快快布置任务啊,嘿嘿对了,师傅,为什么acess数据库里)0:00写不上?
    那么在DBgrid中也就显示不出来,怎么解决??
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      

  5.   

    DBGrid自动的除掉为空的时间部分Lesson 2
      练习题 2.1
      算法名题:九九乘法表
      输入范例:<NULL>
      输出范例:
    1*1=1
    1*2=2  2*2=4
    1*3=3  2*3=6  3*3=9
    .............
    1*7=7  2*7=14 3*7=21 4*7=28 .....7*7=49
    .............
    1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 ...........9*9=81 
      函数声明:
    procedure Calc(mStrings: TStrings);
    begin
      { 自己发挥 }
    end;测试代码:
    begin
      Calc(Memo1.Lines);
    end; 
      

  6.   

    to goalitaly (迈克尔.朱珠) 你你你你你你你,大胆,,嘿嘿,小心一点了
    //hammer//ice//zap//pinch//punch//grin
      

  7.   

    呵呵,懒刺猬要小心哦!!
    下一步就是挥刀了!!
    挥刀以后俺就不偷师了!!
    xixi!!
      

  8.   

    procedure Calc(mStrings: TStrings);
    begin
      { 自己发挥 }
    end;测试代码:
    begin
      Calc(Memo1.Lines);
    end; 师傅,俺知道怎么打印九九表,但是不明白怎么用你给的过程和测试方法啊?//cry
      

  9.   

    还有师傅,你这个下标用数值类型和不用数值类型我没看出好处来啊//cry
    俺笨笨,,,呜呜
    cNumberCn: array['0'..'9'] of string =
    //                ~~~~~~~~注意下标不是数值类型的巧妙用法
    ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
      cDateCn: array[1..3] of string = ('年', '月', '日');
    var
      

  10.   

    师傅,俺是自己编的,不知道用那个tstring参数怎么做啊?还有那个测试,怎么测试啊?
    俺这样做就直接在memo1里输出了,,
    precedure calc()
    const
    cNum: array [1..9] of integer=(1,2,3,4,5,6,7,8,9);
    var
    vString:string;
    i,j:integer;
    begin
     for i:=1 to 9 do
       begin
         vString:='';
         for j:=1 to i do
           vString:=vString+inttostr(cNum[j])+'*'+inttostr(cNum[i])+'='+ inttostr(cNum[j]*cNum[i])+'  '; //控制空格,可是对不齐啊//cry
         memo1.Lines.Add(vString);
       end;
      

  11.   

    procedure Calc(mStrings: TStrings);
    //                       ~~~~~~~~TStringList的父类就上TStrings
    //             ~~~~~~~~~这里的mStrings就是Memo1.Lines
    var
      S: string; //很好你知道vString的命名,不过简单的变量象I, J, S就没有必要遵循规则
      I, J: Integer;
    begin
      mStrings.Clear; //不要忘记清空
      for I := 1 to 9 do begin
        S := '';
        for J := 1 to I do
          S := Format('%s'#9'%d*%d=%d', [S, I, J, I * J]);
    //         ~~~~~~记住Format函数的用法,很有用
        Delete(S, 1, 1); //除掉前面的分隔字符"#9"
        mStrings.Add(S);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Calc(Memo1.Lines); //在编写函数的时候一定要把注意它的通用性和重用性
      Calc(RichEdit1.Lines); //你编写的函数只能在你的TForm1中使用
      Calc(ListBox1.Items); //而我写的函数可以在任何自定义单元中使用
      Calc(ComboBox1.Items); //要写会编写标准函数
    end;
      

  12.   

    precedure calc()
    const
    cNum: array [1..9] of integer=(1,2,3,4,5,6,7,8,9);
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~没有意义
    var
    vString:string;
    //  vString: string;//zs
    //~~递进两格//zs
    i,j:integer;
    //  I, J: Integer;//zs
    //    ~有个空格//zs
    begin
    for i:=1 to 9 do
      begin
        vString:='';
        for j:=1 to i do
          vString:=vString+inttostr(cNum[j])+'*'+inttostr(cNum[i])+'='+ inttostr(cNum[j]*cNum[i])+'  '; //控制空格,可是对不齐啊//cry
    //               ~~~~~最后会多一个空格//zs
        memo1.Lines.Add(vString);
    //  Memo1.Lines.Add(vString);//zs
    //  ~大小写要统一,以系统为标准//zs
      end; 
      

  13.   

    procedure TForm1.Button1Click(Sender: TObject);
    const
      cNumberCn1: array['0'..'9'] of string =
    ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
      cNumberCn2: array[0..9] of string =
    ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
    var
      C: Char;
    begin
      C := '1';  //通过一个数字字符返回中文表达方式
      Caption := cNumberCn1[C]; //字符下标用法
      Caption := cNumberCn2[StrToInt(C)]; //数字下标用法
    end;  
      

  14.   

    师傅,俺是不是不适合编程啊?怎么你说的俺总是忘啊,//cry//cry//cry//cry
    恩,
    1,看看那个数组是没有用啊,俺俺俺,,,//shy//blush
    2,俺一直在找格式那,就是用不好,俺记下了,不过不保证下次用正确,师傅你别生气啊//comfort//inn//dove//milk//tea//cry
    3,俺还没看明白,测试时,输入什么,可以输出九九表啊?输入的那个tstring示例是null,师傅的意思是输入null就输出九九表吗?//cry/cry//heihei//fool//think
      

  15.   

    procedure TForm1.Button1Click(Sender: TObject);
    const
      cNumberCn1: array['0'..'9'] of string =
    ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
      cNumberCn2: array[0..9] of string =
    ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
    var
      C: Char;  
    begin
      C := '1';  //通过一个数字字符返回中文表达方式<----如果只是为了用数字字符,干吗用字符?直接用数字不就可以吗?
      Caption := cNumberCn1[C]; //字符下标用法,
      Caption := cNumberCn2[StrToInt(C)]; //数字下标用法<-----这里如果开始就定义数组的下标是数字的不是就不用strtoint了吗???
    end;
      

  16.   

    procedure Calc(mStrings: TStrings);
    //                      ~~~~~~~~TStringList的父类就上TStrings
    //            ~~~~~~~~~这里的mStrings就是Memo1.Lines
    var
      S: string; //很好你知道vString的命名,不过简单的变量象I, J, S就没有必要遵循规则
      I, J: Integer;
    begin
      mStrings.Clear; //不要忘记清空
      for I := 1 to 9 do begin
        S := '';
        for J := 1 to I do
          S := Format('%s'#9'%d*%d=%d', [S, I, J, I * J]);
    //        ~~~~~~记住Format函数的用法,很有用
        Delete(S, 1, 1); //除掉前面的分隔字符"#9"
        mStrings.Add(S);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Calc(Memo1.Lines); //在编写函数的时候一定要把注意它的通用性和重用性
      Calc(RichEdit1.Lines); //你编写的函数只能在你的TForm1中使用
      Calc(ListBox1.Items); //而我写的函数可以在任何自定义单元中使用
      Calc(ComboBox1.Items); //要写会编写标准函数
    end;我明白了,师傅,这个procedure的意思是把那个mStrings当作输出的地方,是不是?
    俺把它想成要被处理的字符串了,实际是要输出的地方,对吗?在memo里,在RichEdit1.Lines
    在ListBox1.Items里,或者在ComboBox1.Items等等,是吗?
      

  17.   

    procedure TForm1.Button1Click(Sender: TObject);
    const
      cNumberCn1: array['0'..'9'] of string =
    ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
      cNumberCn2: array[0..9] of string =
    ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
    var
      C: Char;
    begin
      if Length(Edit1.Text) <= 0 then Exit;
      C := Edit1.Text[1]; //用户输入的是字符呀
      Caption := cNumberCn1[C]; //字符下标用法
      Caption := cNumberCn2[StrToInt(C)]; //数字下标用法
    end;
      

  18.   

    输入范例:<NULL>//表示没有输入范例
                  //你不知道我也不怪你
                  //乘法表是固定的有不需要任何输入
      

  19.   

    输入范例:<NULL>//表示没有输入范例
                  //你不知道我也不怪你 <---是啊,徒弟出错,当然责怪师傅吗,嘿嘿@_@
                  //乘法表是固定的有不需要任何输入 <---现在明白了啊,呜呜 if Length(Edit1.Text) <= 0 then Exit;
      C := Edit1.Text[1]; //用户输入的是字符呀<---不会让他输入数字啊?//cry//hammer(砸咋用户那,嘿嘿)
      Caption := cNumberCn1[C]; //字符下标用法
      Caption := cNumberCn2[StrToInt(C)]; //数字下标用法师傅,俺现在就在测试那,测试怎么这么烦啊?比学程序还累,对了
    我做的是那查询打印部分,是简单那?还是复杂?怎么都找俺的错啊?
    嘿嘿,不过不找恐怕难,都要用到俺这里,,//cry//cry//cry作业~~~~~~~~~~~~homework,俺怎么成小学生了?嘿嘿
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      

  20.   

    begin
      mStrings.Clear; //不要忘记清空
      for I := 1 to 9 do begin
        S := '';
        for J := 1 to I do
          S := Format('%s'#9'%d*%d=%d', [S, I, J, I * J]);<----此处的#9没有通过,:(
    //        ~~~~~~记住Format函数的用法,很有用<---师傅能给俺仔细写写这个函数的常用方法?                                     //俺查了,不是很清楚你这里可以直接把s
                                               //在format里连接?@_@
        Delete(S, 1, 1); //除掉前面的分隔字符"#9"<----是清空s开始的空格,还是#9产生的分隔符?
                                                //在说要清除,干吗开始要加上它啊?嘿嘿
        mStrings.Add(S);
      end;
    end;师傅,俺今天可能晚上不上来了,累死了,俺去sleep//heihei//cry//cry//cry
    明天早上俺来检查师傅的任务啊,,嘿嘿
      

  21.   

        for J := 1 to I do
          if S = '' then //这里会判断很多次
            S := Format('%d*%d=%d', [S, I, J, I * J])
          else S := Format('%s'#9'%d*%d=%d', [S, I, J, I * J]);
       //Delete(S, 1, 1); //这里只执行一次
      

  22.   

    procedure Calc(mStrings: TStrings);
    var
    vString:string;
    i,j:integer;
    begin
     mStrings.Clear;
     for i:=1 to 9 do
       begin
         vString:='';
         for j:=1 to i do
           //vString:=vString+inttostr(cNum[j])+'*'+inttostr(cNum[i])+'='+ inttostr(cNum[j]*cNum[i])+'  ';
           vString:=format('%s'+#9+'%d*%d=%d',[vString,j,i,i*j]);
         //师傅还是给俺仔细说说这个函数的用法吧,比如可以直接在format里实现字符连接
         //还有那个#9的作用,我用宽度控制整齐就不可以,怎么用#9就可以??
         //#9调试通过了,嘿嘿,师傅少了两个+号,,//@@
         Delete(vString, 1, 1);<--看见了,不删除,空格太多了
         mStrings.Add(vString);
       end;end;procedure TForm1.Button2Click(Sender: TObject);
    begin
    close;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    Calc(Memo1.Lines);
    end;
      

  23.   

      练习题 2.1
      算法名题:对不规则行计算合计。(合计每行后面的数值,没有数值的看作0处理)
      输入范例:
    zswang     10.9
    urchinjj   20.0
    goalitaly  30
    yyyyyyyyyyyyyy
    scripting  -1
      输出范例:59.9
    //        ~~~~~10.9+20.0+30+(-1)
      函数声明:
    function Calc(mStrings: TStrings): Real;
    begin
      { 自己发挥 }
    end;测试代码:
    begin
      Caption := FloatToStr(Calc(Memo1.Lines));
    end; 
      

  24.   

    师傅~~~~~~~~~先说说说这个啊,,//inn//heng//tea//milk//@@
       vString:=format('%s'+#9+'%d*%d=%d',[vString,j,i,i*j]);
        //师傅还是给俺仔细说说这个函数的用法吧,比如可以直接在format里实现字符连接
        //还有那个#9的作用,我用宽度控制整齐就不可以,怎么用#9就可以??
        //#9调试通过了,嘿嘿,师傅少了两个+号,,//@@
        Delete(vString, 1, 1);<--看见了,不删除,空格太多了
        mStrings.Add(vString);
      end;这个作业俺晚点交,俺在测试,烦烦烦~~~~~~~~~~~~//cry//cry
      

  25.   

    //from <<葵花宝典7.0正本>>
    首部  function Format(const Format: string; const Args: array of const): string; $[SysUtils.pas
    功能  返回按指定方式格式化一个数组常量的字符形式
    说明  这个函数是我在Delphi中用得最多的函数,现在就列举几个例子给你个直观的理解
    "%" [索引 ":"] ["-"] [宽度] ["." 摘要] 类型
    Format('x=%d', [12]); //'x=12' //最普通
    Format('x=%3d', [12]); //'x= 12' //指定宽度
    Format('x=%f', [12.0]); //'x=12.00' //浮点数
    Format('x=%.3f', [12.0]); //'x=12.000' //指定小数
    Format('x=%.*f', [5, 12.0]); //'x=12.00000' //动态配置
    Format('x=%.5d', [12]); //'x=00012' //前面补充0
    Format('x=%.5x', [12]); //'x=0000C' //十六进制
    Format('x=%1:d%0:d', [12, 13]); //'x=1312' //使用索引
    Format('x=%p', [nil]); //'x=00000000' //指针
    Format('x=%1.1e', [12.0]); //'x=1.2E+001' //科学记数法
    Format('x=%%', []); //'x=%' //得到"%"
    S := Format('%s%d', [S, I]); //S := S + StrToInt(I); //连接字符串
    参考  proceduer SysUtils.FmtStr
    例子  Edit1.Text := Format(Edit2.Text, [StrToFloatDef(Edit.3.Text, 0)]);
    &_  
      

  26.   

    <<葵花宝典7.0正本>>这这这这是那个武林秘籍吗?嘿嘿
    这个宝典在哪里啊?俺也要看看看
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      

  27.   

    //这里有个,我以前写的,for Delphi4,不是正本,正本还没有写完
    http://wlbookwl.myrice.com/book/Delphikhbd.zip
      

  28.   

    //这里有个,我以前写的,for Delphi4,不是正本,正本还没有写完
    http://wlbookwl.myrice.com/book/Delphikhbd.zip
      

  29.   

    #9:就是制表符号
    #13#10:换行符号
    #32:空格
    #97:a
    #65:A
    一些常用的Ascii码要记住
      

  30.   

    to goalitaly(迈克尔.朱珠)
    //bug,,翻译过来就是,,,(迈克尔.朱珠)你这个臭虫,嘿嘿,,
      

  31.   

    #9:就是制表符号//Delete(S, 1, 1); //除掉前面的分隔字符"#9",不是分隔符吗??
                  //制表符号是什么意思啊?为什么用它就可以每列对齐,具体功能是?
    S= Format('%s'#9'%d*%d=%d', [S, I, J, I * J]);
            //这里怎么实现的S连接功能?比如:S:='1*3 2*3 3*3  '
    #32:空格
    #97:a
    #65:A
    一些常用的Ascii码要记住 //俺记不住啊,用ASCI('A')可以查吧?嘿嘿师傅,俺可能暂时做不了上面的题了,俺的报表浏览的时候总是有问题
    不是缺条横线就是少条竖线,可是打印出来却是正常的,俺要找找看看能
    不能解决这个问题,师傅你也帮俺想想办法,实现所见即所得啊//cry
    //cry//cry//cry//cry//cry//cry//cry//cry//cry//cry//cry//cry//cry
      

  32.   

    http://www.csdn.net/expert/topic/433/433591.shtm
      

  33.   

    #9:你在记事本里按Tab键就知道了
      

  34.   

    师傅,这这这是做报表的?俺知道你是帮那个什么无名做的?//cry//hammer
    你的宝典,俺怎么看不见啊?说没有这个帖子啊??//cry/cry
      

  35.   

    function TForm1.Calc(mStrings: TStrings): Real; <---师傅这里还是
    VAR                                              //  不知道怎么声明单元函数
      I,J:integer;                                   //我不用类生成函数名字,就
    begin                                           // 说俺没声明啊?help~~~~
       result:=0;   //初值付0
       for I := 0 to mStrings.Count-1  do   // 判断每一个字符串
         begin
           for J := 1 to length(mStrings[I]) do  //在找到每一个字符串的第一个数字位
             begin
               if  mStrings[I][J] in ['0'..'9'] then
                 begin
                   result:=result+strtofloat(copy(mStrings[I],J,length(mStrings[I])));
                   break;     //找到第一个数字位就可以结束对这个字符串的循环
                 end;         //不过师傅,我这里不知道怎么处理后面没有数字的字符串
             end;            //不过这样做好象默认为0:)
         end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Caption := FloatToStr(Calc(Memo1.Lines));
    end;
      

  36.   

    师傅,这里还没说那~~~~~~~~~~呜呜
          vString:=format('%s'+#9+'%d*%d=%d',[vString,j,i,i*j]);
        //师傅还是给俺仔细说说这个函数的用法吧,比如可以直接在format里实现字符连接