给一个form贴了一张图片做启动界面,在.dpr文件中加了show,sleep,close之类语句,可是图片显示不出来,请高手指教!

解决方案 »

  1.   

    在工程第一個創建的窗體的OnCreate事件中;加入var  StartForm:TStartForm;   //TStartForm 為要顯示的啟動窗體 
    begin
      StartForm:=TStartForm.Create(Application);
      StartForm.Show;
      StartForm.Update;
      StartForm.Refresh;
      Sleep(1800);
      StartForm.free;
    end;窗體定義:
    object StartForm: TStartForm
      Left = 103
      Top = 146
      BorderIcons = []
      BorderStyle = bsNone
      Caption = '模具管理'
      ClientHeight = 340
      ClientWidth = 570
      Color = clBtnFace
      Font.Charset = ANSI_CHARSET
      Font.Color = clWindowText
      Font.Height = -12
      Font.Name = 'Arial'
      Font.Style = []
      OldCreateOrder = False
      Position = poDesktopCenter
      Visible = True
      PixelsPerInch = 96
      TextHeight = 15
      

  2.   

    flashwin:=Tflashwin.create(application);   flashwin.show; // 启动界面  flashwin.update;   mydate:=gettickcount;   while((GetTickCount-mydate) / 1000 <2) do;   Application.Initialize;   Application.Title := '社区卫生';   Application.CreateForm(TMainForm, MainForm);   …   flashwin.Close;   flashwin.free;   Application.Run; 
    上面这段代码首先创建启动窗口,并延时两秒种后初始化程序,在主窗口显示出来后再关闭启动窗口并释放内存。上面的代码可以再变通一下:如果你的程序启动很慢,那么就把延时的两行代码删除吧,如果你的程序启动很快就可以把延时时间再增加。上面的代码中启动窗体的关闭代码写在Application.Run之前可充分保证在主窗口没显示之前启动窗口不会消失。 
      

  3.   

    再问一下:
    Application.Initialize;做了什么?为什么我把创建显示界面的语句放在它之后就只能显示一个框呢??
      

  4.   

    用下面的方法试试
    创建一个表单form1作为启动界面,将其borderstyle属性设为bsnone,bordericons属性设为[],把一个timer控件放到form1中,timer1的interval属性设为3000(是启动界面的显示时间)在project1中加入下面的代码
      application.initialize;
      form1.show;
      form1.update;
      while form1.timer1.enabled do
        application.processmessages;
      application.createform(tform2,form2);//form2是主界面
      form1.hide;
      form1.free;
      application.run;
    在timer1的ontimer事件中添加以下代码:
      form1.timer1.enabled:=false;