请大侠们帮我看看下边的代码.(50分)

S

siaosa

Unregistered / Unconfirmed
GUEST, unregistred user!
program Project1;
{$APPTYPE CONSOLE}

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1=class(Tform)
private
public
end;

var
Form1:Tform1;

begin
{ TODO -oUser -cConsole Main : Insert code here }
Form1:=TForm1.Create(application); //在控制台方式创建表单,这里为什么会出错?
Form1.ShowModal;
Form1.Free;
end.
 
是不是没有包含头文件
 
呵呵, 所谓控制台方式其实就是dos方式呀。 dos窗口里哪来的form?
 
既然是 console ,创建 window 干吗??
 
你的 Application 初始化了没有。
Form1 := TForm1.Create(nil);
 
Application 是没有 Handle 的!
但是只要是 Win32 程序,就可以 Call Win32Api,包括 Cerate a form。
 
你在D7下试一试就明白了,
原来是没有form的resource,应有{$R *.dfm}
另开个unit 放form吧
 
大家的方法都试过,不行,老是在Form1:=TForm1.Create(application)句出错,提示:
Project Project.exe raised exception class EResNotFound with message 'Resource TForm1 not found'.Process stoped.Use Step or Run to continue。

 
project1.pas

program Project1;
{$APPTYPE CONSOLE}

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1=class(Tform)
private
public
end;

var
Form1:Tform1;
{$R *.dfm} ---------------------添加
begin
{ TODO -oUser -cConsole Main : Insert code here }
Form1:=TForm1.Create(application); //在控制台方式创建表单,这里为什么会出错?
Form1.ShowModal;
Form1.Free;
end.

project1.dfm文件

object Form1: TForm1
Left = 202
Top = 213
Width = 696
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
end

这样应该可以了。
 
谢谢yjy2002
 
顶部