[Delphi] nazwapliku.exe -parametr

0

Chodzi o to jak najprościej zrobić coś takiego jak niegdyś i do dzisiaj w dosowych programach, czyli wywołujemy jakąś aplikację z parametrem, tzn. jak to zrobić pod delphi, aby pod danym paramtrem np. wykonal jakas procedurke...

MAM COŚ TAKIEGO, ALE STRASZNIE ZAMOTANE...--_____________________________________________
To jest właśnie złośliwość rzeczy martwych...

0

Witam
Nie wiem czy dobrze zrozumialem pytanie - postaram się pomoc :
Zalozmy, ze oprogramujesz trzy parametry : -a, -b, -c

w kodzie projektu przed Application.Initialize (o ile takowe tam bedzie) wstaw taki kod :

if paramstr(1) = '-a' then procedura1 else
if paramstr(1) = '-b' then procedura2 else
paramstr(1) = '-c' then procedura3 else ShowMessage('Nieznany parametr');

Jest jeszcze funkcja paramcount, poczytaj sobie o niej w helpie, mozna z jej pomoca troche oczyscic kod z bledow (np. jak ktos nie poda zadnego parametru)...

--
Delphi 5
[ www.dchcorp.host.sk] - niestety w budowie :((
Pozdrawiam

0

ParamCount zawiera liczbe parametrow z jakimi zostal wywolany program
ParamStr(nr) zwraca string z parametrem o numerze nr :)

do OnCreate wpisujemy:

if ParamCount > 0 then * jezeli liczba parametrow wieksza od 0 ...
ShowMessage('Zostalem wywolany z nastepujacym parametrem:'+ParamStr(1))
{ wyswietl MessageBox'a z nazwa pierwszego parametru }

jezeli program zostanie wywolany z jakimkolwiek parametrem to ujrzymy tego MessageBox'a

albo inny przyklad:
if (ParamCount > 0) and (ParamStr(1) = '-cos') then

  • jakas procedura np.
    ShowMessage('Jakis komunikat!');

MessageBox zostanie wyswietlony tylko wtedy gdy program zostanie odpalony z parametrem -cos :)

ParamStr(0) zwraca nazwe programu wraz ze sciezka do niego np. taka:
c:\katalog\program.exe

--
-=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

Polecam stosowanie tej funkcji

function HasParam(Opt: Char): Boolean;
var
x: Integer;
begin
Result:=False;
for x:=1 to ParamCount do
begin
if (ParamStr(x)='-'+Opt)or(ParamStr(x)='/'+Opt) then Result:=True;
end;
end;

sprawdza czy dany przelacznik wystapil gdzies w paramterach, za pomoca tej funkcji programik bedzie dzialal niezaleznie czy bedzie tak
program.exe -e -d -b czy program.exe -b -e -c -d

a uzycie to: If HasParam('d') then ShowMessage('Uzyles -d lub /d');--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.

0

Dzieki za wszystko Tobie i WaM ;)--_____________________________________________
To jest właśnie złośliwość rzeczy martwych...

1 użytkowników online, w tym zalogowanych: 0, gości: 1