求教! 这个问题实在是不懂! 望高手教教我!分不是问题!

chezha 2002-11-08 10:55:31
我学Delphi不久,最近照着书上的列子作了个文本编辑器 ,可是发现我的文本编辑器不能通过用 命令行 来打开文件, 就是不能用类似 “NotePad.exe aa.txt” 这样的命令行来打开aa.txt文件。这是怎么回事呀?? 我把它覆盖了Windows下的NotePad.exe程序,还是不行,望高手指教!!!!!
...全文
85 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chezha 2002-11-10
  • 打赏
  • 举报
回复
感谢: yang6130(月明@沧海)

我把它编译成功了!

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
if ParamCount>0 then //先检测有无带参数,ParamStr(0)就是程序名本身
for i := 1 to ParamCount do
begin
if (Pos('.txt',LowerCase(ParamStr(i)))>0) or //如果是.TXT文件就打开
(Pos('.pas',LowerCase(ParamStr(i)))>0) or //如果是.PAS文件就打开
(Pos('.bat',LowerCase(ParamStr(i)))>0) or //如果是.BAT文件就打开
(Pos('.log',LowerCase(ParamStr(i)))>0) or //如果是.LOG文件就打开
(Pos('.diz',LowerCase(ParamStr(i)))>0) or //如果是.DIZ文件就打开
(Pos('.ini',LowerCase(ParamStr(i)))>0) or //如果是.INI文件就打开
(Pos('.inf',LowerCase(ParamStr(i)))>0) or //如果是.INF文件就打开
(Pos('.htm',LowerCase(ParamStr(i)))>0) or //如果是.HTM文件就打开
(Pos('.html',LowerCase(ParamStr(i)))>0) or//如果是.HTML文件就打开
(Pos('.asm',LowerCase(ParamStr(i)))>0) or //如果是.ASM文件就打开
(Pos('.cpp',LowerCase(ParamStr(i)))>0) or //如果是.CPP文件就打开
(Pos('.c',LowerCase(ParamStr(i)))>0) or //如果是.C文件就打开
(Pos('.h',LowerCase(ParamStr(i)))>0) //如果是.H文件就打开
then
begin
FlatMemo1.Lines.LoadFromFile(Paramstr(i));
Break;
end;
end;
end;
chougoushi 2002-11-09
  • 打赏
  • 举报
回复
to chezha (我爱DelphI) :
我是个初学者,也在试着写一个记事本,能把你的代码发给我看一下吗?
我的e_mail:studiobuyi@sina.com
Linux2001 2002-11-09
  • 打赏
  • 举报
回复
没有命令行处理代码当然不行了
yang6130 2002-11-09
  • 打赏
  • 举报
回复
procedure TForm1.FormCreate(Sender: TObject);

var
i: Integer;
if paramCount>0 then//先检测有带参数,ParamStr(0)就是程序名
for i := 1 to ParamCount do
begin
if pos('.txt',LowerCase(ParamStr(i)))>0 then//如果是文本文件就打开
begin
Memo1.loadfromfile(Paramstr(i);//
break;
end;
end;
end;
firetoucher 2002-11-09
  • 打赏
  • 举报
回复
up
你需要访问ParamStr数组
blucecat 2002-11-08
  • 打赏
  • 举报
回复
回复人: greencoding(绿色代码) ( ) 信誉:100 2002-7-17 1:30:55 得分:95



1. 取得命令列参数的个数: ParamCount 函数
2. 呼叫 ParamStr(0), 传回执行档的档名(含路径)
3. 呼叫 ParamStr(n), 传回第n个参数的内容
例子:
procedure TForm1.FormCreate(Sender: TObject);
var
 ix: integer;
begin
 Memo1.Lines.Clear;
 if ParamCount = 0 then
  Memo1.Lines.Add('??统??.')
 else
 begin
  Memo1.Lines.Add('档名:' + ParamStr(0));
  for ix := 1 to ParamCount do
  Memo1.Lines.Add(ParamStr(ix));
 end;
end;





chechy 2002-11-08
  • 打赏
  • 举报
回复
因为你必须让你的程序接收命令参数啊。
命令参数可以通过ParamStr获得。
procedure TForm1.FormCreate(Sender: TObject);

var
i: Integer;
for i := 1 to ParamCount do
begin
if LowerCase(ParamStr(i)) = 'beep' then
Beep
else if LowerCase(ParamStr(i)) = 'exit' then
Application.Terminate;
end;
end;

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧