如何在确定的数值范围内随机取值?
也就是要实现电脑随机抽奖的功能。
谢谢了!

解决方案 »

  1.   

    var
      i: Integer;  Randomize;
      i := Random(36);  //随机产生1到36的随机数
      

  2.   

    哦,错了
    Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range
    Random(36)应该是产生一个0到35的随机数,所以你要判断是否为0的情况
      

  3.   

    i := Random(n); i 为0到n-1之间的任意一个整数;
    然后要什么样的结果对i操作就行了
      

  4.   

    我要做一个电脑随机抽奖程序,就是一般庆典活动、晚会使用的那种,具体如下:
    抽奖号码为0001~0500,按住空格键不放时号码就不停地跳动,放下空格键时号码就停止跳动显示的就为中奖的号码,且同一个号码不能再次中奖.
    具体代码如何实现?
    ------------------------------------------
    MM我学Delphi时间不长,你们就行行好再帮帮我吧!
      

  5.   

    用keydomn事件,在其中用while循环去随机数并赋值.
      

  6.   

    在keydown 事件中判断key=' ' then timer.enable:=true; 在timer.ontime事件中 写入随机函数并赋值即可.  在keyup事件中判断 if key=' ' then timer.enable:=false;并读出随即数  一定可以.给分吧.呵呵
      

  7.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Timer1: TTimer;
        Memo1: TMemo;
        procedure Timer1Timer(Sender: TObject);
        procedure Button1KeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
      private
        { Private declarations }
      public
        { Public declarations }  end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Caption:=FormatFloat('0###',random(500)+1);
    end;
    procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      i:integer;
      bAdd:boolean;
    begin
      if key=32 then
        Timer1.Enabled:=not Timer1.Enabled;
      bAdd:=true;
      if not Timer1.Enabled then
      begin
        for i:=0 to Memo1.Lines.Count-1 do
        begin
          if Memo1.Lines[i]=Caption then
            BAdd:=false;
        end;
       if bAdd then
         Memo1.Lines.Add('您选的号码是'+Caption)
       else
         Memo1.Lines.Add('已经出现过'+Caption)
      end;
    end;
      

  8.   

    function CreateRandomStr(ALen: Integer):string;
    //ALen :要选择的字符个数
    var
      str: string;//待选定的字符
    begin
      Randomize;
      str := '0123456789';
      Result := '';
      repeat
        Result := Result + str[Random(Length(str)) + 1];
      until (Length(Result) = ALen);
    end;
      

  9.   

    cll007 GG,真是太謝謝你了!
    呵呵,你就好人做到底,再幫幫我,OK?
    我想在抽獎時加入背景音樂,怎麼實現?(也就是在號碼跳動時載入*.wav文件,號碼停止跳動時音樂停止)*********************************
    祝 
       新年快樂!
       加薪多多!
      

  10.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, MPlayer;type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure Button1KeyPress(Sender: TObject; var Key: Char);
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
        FMediaPlayer:TMediaPlayer;
      public
        { Public declarations }  end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Caption:=FormatFloat('0###',random(500)+1);
    end;procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
    var
      i:integer;
      bAdd:boolean;
    begin
      bAdd:=true;
      if key=#32 then Timer1.Enabled:=not Timer1.Enabled;
      if not Timer1.Enabled then
      begin
        for i:=0 to Memo1.Lines.Count-1 do
        begin
          BAdd:=not (copy(Memo1.Lines[i],length(Memo1.Lines[i])-3,4)=Caption);
          if not BAdd then break;
        end;
        if bAdd then
          Memo1.Lines.Add('您选的号码是'+Caption)
        else
          Memo1.Lines.Add(Caption+'已经出现过') ;
        FMediaPlayer.Pause;
      end
      else
        FMediaPlayer.Play;end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Enabled:=false;
      Timer1.Interval:=10;
      FMediaPlayer:=TMediaPlayer.Create(nil);
      FMediaPlayer.Parent:=self;
      FMediaPlayer.FileName:='F:\Mp3\天地英雄\The Golden Era.wav';
      FMediaPlayer.Open;
      FMediaPlayer.Visible:=false;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      FMediaPlayer.Close;
      FMediaPlayer.Free;
    end;end.