ThoseBug
asked on
how to my applicattion accept parameters..?
i need eexecute my app like this
MyApplication.exe [servername][databasename] [username][password] how..?
hot to recognize this paremters into MYApplication.exe? and how to accept this parameters?...
MyApplication.exe [servername][databasename]
hot to recognize this paremters into MYApplication.exe? and how to accept this parameters?...
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Hello
Just quick sample to show the no of parameters passed to your application and each one with it's value
procedure TForm1.FormCreate(Sender: TObject);
var
I : Integer;
begin
ShowMessage('Total Parameters passed = ' + IntToStr(ParamCount));
for I := 1 to ParamCount do
ShowMessage('Param No ' + IntToStr(I) + ' Value = ' + ParamStr(I));
end;
HTH
Regards,
Mohammed
Just quick sample to show the no of parameters passed to your application and each one with it's value
procedure TForm1.FormCreate(Sender: TObject);
var
I : Integer;
begin
ShowMessage('Total Parameters passed = ' + IntToStr(ParamCount));
for I := 1 to ParamCount do
ShowMessage('Param No ' + IntToStr(I) + ' Value = ' + ParamStr(I));
end;
HTH
Regards,
Mohammed
ASKER
sorry for the ignorance..but where i can do this code and how to call from antoher delphi program...when i try to execute from the run project1.exe someparameter i have a error...
My example is for a console application, you didnt state if your program used a gui or not.
but my example can easily be adjusted to fit.
if you want to run your project from the ide you need to pass the parameters.
goto menu "Run" "Parameters"
insert some test parameters into the parmaeters field:
{ -s <servername> -db <databasename> -u <username> -p <password> }
-s 127.0.0.1 -db dbname -u myname -p pass
only other way to test is from the cmd prompt manually.
but my example can easily be adjusted to fit.
if you want to run your project from the ide you need to pass the parameters.
goto menu "Run" "Parameters"
insert some test parameters into the parmaeters field:
{ -s <servername> -db <databasename> -u <username> -p <password> }
-s 127.0.0.1 -db dbname -u myname -p pass
only other way to test is from the cmd prompt manually.
If you program is called MyProgram.exe
you can run it with parameters typing:
"MyProgram db=testdb user=john pass=abcd"
from Delphi you set the parameters in Run / Parameters
from inside your application you can access the WHOLE command line with CmdLine function - it returns you a string.
you can also access parameters like this
var
param1 : String;
begin
param1 := ParamStr(1);
in this case param1 = 'db=testdb'
ParamCount returns you the number of parameters.
ParamStr(0) - this is the file full name. The same as Application.ExeName.
You can handle the command line parameters in OnCreate of the main form.
Hope this helps
you can run it with parameters typing:
"MyProgram db=testdb user=john pass=abcd"
from Delphi you set the parameters in Run / Parameters
from inside your application you can access the WHOLE command line with CmdLine function - it returns you a string.
you can also access parameters like this
var
param1 : String;
begin
param1 := ParamStr(1);
in this case param1 = 'db=testdb'
ParamCount returns you the number of parameters.
ParamStr(0) - this is the file full name. The same as Application.ExeName.
You can handle the command line parameters in OnCreate of the main form.
Hope this helps
The best way is to use TStringList to hold program parameters
ProgramParams:=TStringList .Create;
for i:=1 to ParamCount do
begin
ProgramParams.Add(ParamStr (i);
end;
// here you can assign defult values to parameters not assigned from command line
if ProgramParams.Values['-db' ]='' then
ProgramParams.Values['-db' ]:=Default DatabaseNa me;
// use these parameters
servername := ProgramParams.Values['-s'] ;
databasename := ProgramParams.Values['-db' ];
// so on so forth ...
// now you can save last run parameters
ProgramParams.SaveToFile(' ProgramNam e.cfg');
ProgramParams:=TStringList
for i:=1 to ParamCount do
begin
ProgramParams.Add(ParamStr
end;
// here you can assign defult values to parameters not assigned from command line
if ProgramParams.Values['-db'
ProgramParams.Values['-db'
// use these parameters
servername := ProgramParams.Values['-s']
databasename := ProgramParams.Values['-db'
// so on so forth ...
// now you can save last run parameters
ProgramParams.SaveToFile('
Just make a new applicacation with a listView with two columns and viewStyle=report
The most important think is to know the ParamStr and the ParamCount variables...
Here is the procedure :
procedure TForm1.FormCreate(Sender: TObject);
var i: integer; AddedItem: TListItem;
begin
for i := 1 to ParamCount do
begin
AddedItem := ListView1.Items.Add;
AddedItem.Caption := 'Param[' + IntToStr(i) + ']';
AddedItem.SubItems.Add(Par amStr(i));
end;
end;
The most important think is to know the ParamStr and the ParamCount variables...
Here is the procedure :
procedure TForm1.FormCreate(Sender: TObject);
var i: integer; AddedItem: TListItem;
begin
for i := 1 to ParamCount do
begin
AddedItem := ListView1.Items.Add;
AddedItem.Caption := 'Param[' + IntToStr(i) + ']';
AddedItem.SubItems.Add(Par
end;
end;
----------------
{ TODO -oUser -cConsole Main : Insert code here }
sc:=['/','-','|'];
sCmdLn := lowercase(CmdLine);
{ If help is needed display help & example, and then exit }
if (pos('help',sCmdLn) > 0) or (pos('?',sCmdLn) > 0) then
begin
WriteLineOutPut('Applicati
WriteLineOutPut('EXAMPLE:'
WriteLineOutPut(' command format: appname [options]');
WriteLineOutPut(' Explanations of usage are as follow:');
WriteLineOutPut(' -o : < Output Data to text file >');
WriteLineOutPut('Example:'
WriteLineOutPut('COPYRIGHT
exit;
end;
sCurDir := ExtractFilePath(ParamStr(0
if ParamCount > 0 then { Command line arguments were passed, parse them }
begin
{ [servername][databasename]
{ -s <servername> -db <databasename> -u <username> -p <password> }
for i:=1 to ParamCount do
begin
if ParamStr(i) = '-s' then
servername := ParamStr(i + 1);
if ParamStr(i) = '-db' then
databasename := ParamStr(i + 1);
if ParamStr(i) = '-u' then
username := ParamStr(i + 1);
if ParamStr(i) = '-p' then
password := ParamStr(i + 1);
end;
end;
try
Execute;
except
WriteLineOutPut('ERROR!');
exit;
end;
----------------
hope this helps.