也就是说,如果用户使用命令行开关 /i, 则启动form1窗口,否则是个控制台程序,windowsxp自带的shutdown就是这样一个程序,如果带上参数/i,就是窗口程序,否则就只显示控制台.
解决方案 »
- indy10通信小问题
- 我不知道有没有人用DELPHI7+CORBA做数据库开发?
- !!!长期招聘Delphi程序员、项目经理...(北京)!!!
- 120分 求禁止DBLookupComboboxEh1的自动填充功能的方法
- 在DELPHI7中 一个工程怎样引用另一个工程的窗体和变量
- 分栏的报表怎么做???
- ActionList控件只能控制当前窗体的控件吗?
- delphi 6 开发多程的Tuxedo客户端.
- 一个Delphi程序,调试了很久,出错信息很少,不知道错在什么地方,还请高手帮忙看看!【高分送上】
- 提一个暴弱智的问题!
- 帮我看看这个视频聊天程序
- 我们学校搞了个电脑节,我想参加,不知道做个软件好,请大家指教
Forms,
SysUtils,
Windows,
GUIForm in 'GUIForm.pas' {GUI};{$R *.res}var
Name: string;begin
if not FindCmdLineSwitch('i') then
begin
AllocConsole;
try
WriteLn('控制台');
ReadLn(Name);
WriteLn('你的大名:');
ReadLn(Name);
WriteLn(Name+' 您好!');
ReadLn(Name);
finally
FreeConsole;
end;
end else
begin
Application.Initialize;
Application.Title := '图形界面';
Application.CreateForm(TGUI, GUI);
Application.Run;
end;end.
但与我的要求还是有些差别,我希望的是在命令提示符下面输入myproj.exe /i, 启动到窗口模式,这个没有问题,但在不用参数运行时,运行的结果不是显示在当前的控制台的,而是新出来一个控制台.这个如何解决呢?
program Project2;{$APPTYPE CONSOLE}uses
SysUtils,
Forms,
Unit1 in 'Unit1.pas' {Form1};var
Name: string;begin
if not FindCmdLineSwitch('i') then
begin
WriteLn('控制台');
ReadLn(Name);
WriteLn('你的大名:');
ReadLn(Name);
WriteLn(Name+' 您好!');
ReadLn(Name);
end else
begin
Application.Initialize;
Application.Title := '图形界面';
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
这样我试过了,在/i参数运行时会出来一个很讨厌的控制台窗口.
{$APPTYPE CONSOLE}uses
Forms,
SysUtils,
Windows,
GUIForm in 'GUIForm.pas' {GUI};{$R *.res}var
Name: string;begin
if not FindCmdLineSwitch('i') then
begin
//AllocConsole;
try
WriteLn('控制台');
ReadLn(Name);
WriteLn('你的大名:');
ReadLn(Name);
WriteLn(Name+' 您好!');
ReadLn(Name);
finally
//FreeConsole;
end;
end else
begin
FreeConsole; //新增
Application.Initialize;
Application.Title := '图形界面';
Application.CreateForm(TGUI, GUI);
Application.Run;
end;end.
能不闪那个窗口就完全没有问题了