자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi [마이그레이션][델파이3>델파이10시애틀] 실행화일이 연결이 안되는거 같습니다.
2015.09.30 10:14
본 게시판 사용시 당부 사항
* 이 게시판은 누구나 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
델파이3에서 델파이 10 시애틀로 마이그레이션 진행 중입니다.
다음과 같은 오류가 발생하는데요. 어떻게 조치해야 할까요?
1. procedure TFMAIN_HAKSA.Image8Click(Sender: TObject);
begin
try //입시정보
exe_name :='C:\GAMSHIN\IPSI.exe';
ExecuteOut;
except end;
end;
ipsi.exe가 실행되어야 하는데 안되고 있습니다.
procedure TFMAIN_HAKSA.ExecuteOut;
var exe_name_password : string;
PrevInstHandle : THandle;
begin
try
if not FileExists(exe_name) then Exit;
PrevInstHandle := FindWindow('TApplication', PChar(HANSHIN_MAIN_TITLE));
ShowWindow(PrevInstHandle,SW_MINIMIZE);
// ShowWindow(PrevInstHandle,SW_HIDE);
exe_name_password := exe_name + ' ' + info.User_ID+ ' '+info.user_password;
winexec(PAnsiChar(exe_name_password),SW_NORMAL);
except end;
end;
2. SELECT *
FROM PICK
pick 테이블에 컬럼중 numnber(38) 로 되어있는 selectcol 를 사용하는데
PickSELECTCOL: TFloatField; => PickSELECTCOL: TFMTBCDField; 로 바뀌어야 하는지
function TFPick.GetSearchKey : String;
var SelectCol : integer;
temp :string;
begin
try
SelectCol :=StrToInt(FloatToStr(PickSelectCol.Value)); //그리드의 컬럼
temp := DBGrid1.Fields[SelectCol].Text;
Result := temp;
except
on E: Exception do ShowMessage(E.Message);
end
end;
SelectCol :=StrToInt(FloatToStr(PickSelectCol.Value)); <= 이부분 인데요
칼럼을 number로 바꾸어야 하는지 아님
PickSELECTCOL: TFMTBCDField 로 바꾼다음
SelectCol :=StrToInt(FloatToStr(PickSelectCol.Value)); 이부분을 어떻게 처리 해야 하는지요
데이터 타입문제 같습니다.
Delphi [마이그레이션][델파이3>델파이10시애틀] 실행화일이 연결이 안되는거 같습니다.
2015.09.30 10:14
본 게시판 사용시 당부 사항
* 이 게시판은 누구나 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
델파이3에서 델파이 10 시애틀로 마이그레이션 진행 중입니다.
다음과 같은 오류가 발생하는데요. 어떻게 조치해야 할까요?
1. procedure TFMAIN_HAKSA.Image8Click(Sender: TObject);
begin
try //입시정보
exe_name :='C:\GAMSHIN\IPSI.exe';
ExecuteOut;
except end;
end;
ipsi.exe가 실행되어야 하는데 안되고 있습니다.
procedure TFMAIN_HAKSA.ExecuteOut;
var exe_name_password : string;
PrevInstHandle : THandle;
begin
try
if not FileExists(exe_name) then Exit;
PrevInstHandle := FindWindow('TApplication', PChar(HANSHIN_MAIN_TITLE));
ShowWindow(PrevInstHandle,SW_MINIMIZE);
// ShowWindow(PrevInstHandle,SW_HIDE);
exe_name_password := exe_name + ' ' + info.User_ID+ ' '+info.user_password;
winexec(PAnsiChar(exe_name_password),SW_NORMAL);
except end;
end;
2. SELECT *
FROM PICK
pick 테이블에 컬럼중 numnber(38) 로 되어있는 selectcol 를 사용하는데
PickSELECTCOL: TFloatField; => PickSELECTCOL: TFMTBCDField; 로 바뀌어야 하는지
function TFPick.GetSearchKey : String;
var SelectCol : integer;
temp :string;
begin
try
SelectCol :=StrToInt(FloatToStr(PickSelectCol.Value)); //그리드의 컬럼
temp := DBGrid1.Fields[SelectCol].Text;
Result := temp;
except
on E: Exception do ShowMessage(E.Message);
end
end;
SelectCol :=StrToInt(FloatToStr(PickSelectCol.Value)); <= 이부분 인데요
칼럼을 number로 바꾸어야 하는지 아님
PickSELECTCOL: TFMTBCDField 로 바꾼다음
SelectCol :=StrToInt(FloatToStr(PickSelectCol.Value)); 이부분을 어떻게 처리 해야 하는지요
데이터 타입문제 같습니다.
1. WinExec로 외부 실행파일 실행이 안됩니다.
-> 외부 실행파일을 실행하는 방법은 여러가지가 있습니다.
-> WinExec가 안되신다면, ShellExecute, CreateProcess 등으로 시도해보시기 바랍니다.
http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=30
http://niceit.tistory.com/50
-> 저도 아래와 같이 테스트해보니 잘 실행됩니다.
Params := info.User_ID+ ' '+info.user_password;
ShellExecute(Handle, 'open', PChar(exe_name), PChar(Params), nil, SW_NORMAL);
2, TFloatField 필드에서 정수(Integer) 값을 가져오는 방법