var
   I: Integer;
 begin
   Randomize;
   for I := 1 to 50 do begin
     { Write to window at random locations }
     Canvas.TextOut(Random(Width), Random(Height), 'Boo!');
   end;
 end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var testdialog:TsaveDialog;i:single;
    begin
      edit1.Text:=inttostr(random(123));
    end;我声明好函数后再调用不可以啊?
      

  2.   

    1。第一个问题上面已经回答了
    2。你可以新建一个unit,里面专门申明并定义你用到的函数、过程、全局变量等,其它unit要用到时只要use一把就可以了(不要告诉我你连这也不知道哦 ;))。
    3。假设字符串为str,要取得第i个字符可以写成 tempchar:=str[i];
      要替换成a旧可以这样str[i]:='a';
      

  3.   

    3.
    i:=pos('c',str);//这是Xstrings 中的代码,详见<Delphi深度历险>
    function ReplaceString(var S: string; const Token, NewToken: string; bCaseSensitive: Boolean): Boolean;
    var
      I         : Integer;
      sFirstPart: string; 
    begin
      if bCaseSensitive then
        I := AnsiPos(Token, S)
      else
        I := AnsiPos(AnsiUpperCase(Token), AnsiUpperCase(S));
      
      if I <> 0 then
      begin
        sFirstPart := Copy(S, 1, I - 1) + NewToken; // 磷礚絘患癹
        S := Copy(S, I + Length(Token), Maxint);
      end;
      
      Result := I <> 0;
      if Result then
      begin
        ReplaceString(S, Token, NewToken, bCaseSensitive);
        S := sFirstPart + S;
      end;
    end;
      

  4.   

    Randomize; 是随机函数的初始化。强烈建议在程序开始用它一次。
    random(int_num); 是产生数的函数。
      

  5.   

    建一个UNIT文件,就可以把一些公共函数和全局变量放到里面去了,用时只要USE一下就可以了!!!
      

  6.   

    字符串处理的函数名比较奇怪,初学者恐怕没有能自己找到的...
    Copy, Replace, Insert, Pos等