저는 LAN에서 이루어 질수 있는 채팅 프로르램을 짤려고 하는데
어려운 점이 몇가지 있습니다. 좀 가르쳐 주십시요.
숫자형 변수 := strtoint(EditBox.Text);
이때 EditBox.Text 값이 숫자형으로 변하면 다행인데
문자같은 숫자로 바꿀수 없다면 메시지를 띄우고
다시 문자를 받아 들이는 방법
델파이에서 버튼을 클릭 했을때 .EXE 파일을 실행시키는 방법
ServerSockek이나 ClientSocket으로 자기 컴퓨터의 IP Address
알 수 있는 방법
Form1.Showmodal => Showmodal이게 뭐하는 것입니까?
윈도우의 닫기 버튼을 클릭해도 프로그램을 종료하지
않을 수 있는 방법
Edit1의 길이 제한을 두고 StrToIntDef함수를 사용해 체크하면 됩니다.
다음은 그 예(길이 제한 5자리)
var
Number : Integer;
begin
Number := StrToIntDef( Edit1.Text , 100000 );
if Number = 100000 then
begin
Application.MessageBox( '잘못 입력하셨습니다. 다시 입력해 주세요.', '알림', MB_OK+MB_DEFBUTTON1+MB_APPLMODAL );
Edit1.Text := '';
Edit1.SetFocus;
Exit;
end;
end;
2.두번째 질문
WinExec함수를 사용해 보셔요. 아마 여러 팁란에 나와 있을 겁니다.
procedure TAutoForm.Button1Click(Sender: TObject);
begin
WinExec('ServerSetup.exe',SW_SHOWNORMAL);
end;
3.세번째 질문
네트워크 프로그램을 짤 때 보통 ip주소는 세팅할 수 있게 합니다.
user가 세팅 할 수 있게 하면 됩니다.(서버 ip주소)서버에 접속이 되면
접속된 클라이언트의 ip주소는 소켓의 프로퍼티로 알 수 있습니다.
소켓에서 지원하니까 프로퍼티를 찾아 보셔요. 그리고 델파이에서 주는
소켓 콤퍼넌트는 별로 좋지 않아서 안 쓰시느 것이 좋아요. 저는
DWINSOCK 콤퍼넌트를 씁니다. 델코의 자료실에 있으니까 사용해 보셔요.
4.Showmodal은 윈도우를 modal로 띄우는 겁니다. 그 윈도우가 종료되지
않으면 다른 윈도우로 갈 수가 없습니다.
5.CloseQuery이벤트의 CanClose를 False로 주면 종료가 안 되죠.
혹은 아예 종료버튼을 사용하지 못하게 할 수도 있습니다.
아마 여러 팁에 예제가 있을 겁니다. 찾아 보셔요.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if //조건 then
begin
//어떤 메쎄지 뿌려주셔요.
CanClose := False;
end
else
CanClose := True;
end;
그럼 즐거운 하루되셔요.