function TimeDelay(DelayTime:integer ):string;var start_time: integer;beginstart_time := GetTickCount();while ((GetTickCount - start_time) < DelayTime) do
beginApplication.ProcessMessages;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
beginlabel1.Caption:='开始';
TimeDelay(8000);
label1.Caption:='运行成功';end;end.为什么我运行的时候,不能显示开始,而是等到8秒后才显示运行成功???

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject); 
    begin 
    label1.Caption:='开始'; 
    label1.Refresh;   //加上这句
    TimeDelay(8000); 
    label1.Caption:='运行成功'; 
    end; 
      

  2.   

    label1.Caption:='开始'; 
    label1.update;
    TimeDelay(8000); 
      

  3.   

    写在create事件,好像不能看吧,你看到的是show后的
      

  4.   

    要显示进程,这类代码就不应该放在 Create 和 Show 事件里面,建议 LZ 用 TTimer 吧procedure TForm2.Timer1Timer(Sender: TObject);
    begin
      Timer1.Enabled := False;
      label1.Caption:='开始';
      TimeDelay(2000);
      label1.Caption:='运行成功';
    end;procedure TForm2.FormCreate(Sender: TObject);
    begin
      Timer1.Enabled := False;
    end;procedure TForm2.FormShow(Sender: TObject);
    begin
      Timer1.Interval := 100;
      Timer1.Enabled := True;
    end;