在做启动画面时出现如下问题,请大家帮忙呀?(15分)

  • 主题发起人 主题发起人 wangwang5188
  • 开始时间 开始时间
W

wangwang5188

Unregistered / Unconfirmed
GUEST, unregistred user!
我在制作启动和登录窗口时出现如现问题
源代码:
program sale;
uses
Forms,
sample in 'sample.pas' {Form1},
main in 'main.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
sample:=Tsample.create(application);
sample.show;
sample.repaint;
sleep(5000);
sample.update;
Application.CreateForm(TForm2, Form2);
sample.close;
sample.free;
Application.Run;
end.
出现以下错误
[Error] sale.dpr(12): '.' expected but ':=' found
[Error] sale.dpr(13): Undeclared identifier: 'show'
[Error] sale.dpr(14): Undeclared identifier: 'repaint'
请大家帮忙呀!
如果有通用的启动画面和登录窗口麻烦给我发一份好吗? wangwang5188@sina.com
 
在uses中加上windows
 
program sale;
uses
Forms,
sample in 'sample.pas' {Form1},
main in 'main.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
application.create(Tsample,sample);
sample.show;
sample.repaint;
sleep(5000);
sample.update;
Application.CreateForm(TForm2, Form2);
sample.close;
sample.free;
Application.Run;
end.

这样如何?
 
sample即是窗口名又是单元名,这样不行。
 
在begin之前先要定义sample:
var
sample : Tsample;

下面是我的一个应用的示例:
program BankCommMain;

uses
Forms,
Windows,
uBankCommMain in 'uBankCommMain.pas' {frmBankCommMain},
Startup in 'Startup.pas' {frmStart},
About in 'About.pas' {AboutBox},
DMCommon in 'DMCommon.pas' {DataCommon: TDataModule},
GlobalShare in 'GlobalShare.pas',
ViewLog in 'ViewLog.pas' {frmViewLog},
ViewSetupIni in 'ViewSetupIni.pas' {frmSetupIni};

{$R *.RES}

const ApplicationName = 'TfrmBankCommMain';

var
Start : TfrmStart;
HWD : Integer;

begin
Application.Title := '税银联网接口';
HWD := FindWindow(ApplicationName,nil);
if HWD <> 0 then
begin
MessageBox(0,'该程序已经有一个在运行中!' + #13 + ' 无法运行第二实例','提示',0);
// Halt;
end;
Application.Initialize;
Start := TfrmStart.Create(Application);
try
Start.Show;
Start.Update;
Application.CreateForm(TDataCommon, DataCommon);
Application.CreateForm(TfrmBankCommMain, frmBankCommMain);
finally
Start.Free;
end;
Application.Run;
end.
 
delphi把第一个创建的窗体作为MainForm,MainForm被Free后程序结束!
 
还是不行呀!
我想请教大家,我上面的程序错在什么地方呀,为什么错了.我真的搞不明白.
寻梅,你说'它sample即是窗口名又是单元名,这样不行'那怎么才可以呀!
 
就是缺少有关定义啦!
你可以分析一下我所提供的例子啦!
 
program sale;
uses
Forms,
sample in 'sample.pas' {Form1},
main in 'main.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
sample:=Tsample.create(application);
sample.show;
sample.repaint;
sleep(5000);
sample.update;
Application.CreateForm(TForm2, Form2);
sample.close;
sample.free;
Application.Run;
end.
_____________________________

把sample改为form1,应该没问题了!
 
楼上说的是.
 
我想是因为wangwang5188兄没有分清单元和窗体,一个窗体有一个单元,
但一个单元不一定有一个窗体,而当设计的时候你想把单元名改成和Form名一样的是不行的,
Delphi不会允许你作这样的修改,除非你用其他的编辑器来修改,如果你真的通过其他的编辑
器改变了单元名和Form使用它们一样,那没有办法,你只有试着用其他编辑器改回来,
但是如果你这个Form还可以在Delphi中打开,就说明Form名和单元名并不是一样的,
那就是你在程序中使用了单元名而不是Form名,请打开Simple单元,找到Form后找到它的Name属性并记下来,
再把你上面的程序中的Simple改成记下的Form名就可以了!
 
给你一个启动画面的例子吧!
这是delphi5开发人员指南上的例子;
program Project1;

uses
Forms,
SysUtils,
Unit1 in 'Unit1.pas' {Form1;

{$R *.res}

begin
Application.Initialize;
Form1 := TForm1.Create(Application);
Form1.Show; // Display the splash screen
Form1.Update; // Update the splash screen to ensure it gets drawn

{ This while loop simply uses the TTimer component on the SplashForm
to simulate a lengthy process. }
while Form1.Timer1.Enabled do
Application.ProcessMessages;

Form1.Hide; // Hide the splash screen
Form1.Free; // Free the splash screen
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg;

type
TForm1 = class(TForm)
Timer1: TTimer;
Image1: TImage;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
end;

end.
 
多人接受答案了。
 
后退
顶部