임프랍니다..
오늘은 팁이 너무 늦었죠.. 기다렸을 분들껜 정말 죄송하구요.. 쩝~
오늘의 팁은 명령행인자 받아오기 입니다.
윈도우즈 어플리케이션에서 어플리케이션 아이콘 위로 다른 데이터화일을 드랍
했을때 처리도 역시 명령행 인자를 통해서 하므로, 드래그 앤 드랍 처리를
해주려면 반드시 명령행 인자를 처리해줘야 합니다.
명령행 인자의 갯수는 vcl 함수 ParamCount() 로
알아낼 수 있구, 그 값은 역시 vcl 함수인 ParamStr()로 알아낼 수 있습니다.
일단 간단한 예제를 봅시다.
빈 폼 위에 메모 컨트롤을 하나 놓구, 다음과 같은 코드를 적어봅시다.
void __fastcall TForm1::FormShow(TObject *Sender)
{
for(int i=0; i<=ParamCount(); i++)
Memo1->Lines->Add(ParamStr(i));
}
procedure TForm1.FormShow(Sender: TObject);
var
i: integer;
begin
for i:=0 to ParamCount do
Memo1.Lines.Add(ParamStr(i));
end;
이렇게 하면 간단히 명령행 인자가 메모의 각 라인으로 읽혀집니다.
IDE 안에서 테스트를 해보시려면 메뉴에서 Run->Parameters...->Parameters 에다가
뭐라고 잔뜩 입력해놓고 실행해보시면 됩니다.
주의할 것은... for문을 ParamCount보다 1 적을 때까지 돌린 것이 아니라, ParamCount와
같을 때까지 돌렸다는 겁니다.
ParamCount() 함수는 프로그램 자체의 패스로 넘겨지는 ParamStr(0)를 갯수에 포함
하지 않는데 ParamStr() 은 포함하기 때문이죠.
넘 간단한 거였나요? 하지만, 제대로 알지 못하면 나중에 황당한 꼴을
당할수도 있는 팁이랍니다.
그럼, 도움되시길...
독립문에서 임펠리테리였습니다.
|