처음에는 PChar나 String을 Result로 넘기는 방식을 사용했는데,
여러 상황별로 InvalidPoint 등의 에러 상황이 돌출하는 바람에 그냥 String을 var로 넘기는 방법을 사용.
델파이에는 델파이만의 왕도가 있는 듯.
DLL에서 호출하고 하려면 물론 이야기는 달라지겠지만....
// 아래의 코드 중 많은 부분이 생략가능한 것도 사실...
procedure GetEditText(hEdit: HWND; var EditStr: String);
var len: Integer;
begin
if hEdit=0 then Exit;
len:=SendMessage(hEdit. EM_LINELENGTH, 0, 0);
if len<1 then Exit;
SetLength(EditStr, len);
SendMessage(hEdit, EM_GETLINE, 0, LParam(PChar(EditStr)));
EditStr:=Trim(EditStr);
end;
procedure GetEditText(hEdit: HWND; var EditStr: String);
var len: Integer;
begin
if hEdit=0 then Exit;
len:=SendMessage(hEdit. EM_LINELENGTH, 0, 0);
if len<1 then Exit;
SetLength(EditStr, len);
SendMessage(hEdit, EM_GETLINE, 0, LParam(PChar(EditStr)));
EditStr:=Trim(EditStr);
end;
'Delphi' 카테고리의 다른 글
[Delphi] 암호화 (델마당의 박후선님 作) (2) | 2010.07.02 |
---|---|
[Delphi] IPC - FileMapping [CreateFileMapping, OpenFileMapping, MapViewOfFile] (0) | 2010.07.02 |
[Delphi] 크기별 아이콘 설정하기 (ico) (0) | 2010.06.30 |
[Delphi] 에디트박스에 문자열 입력하기 (EM_REPLACESEL) (0) | 2010.06.30 |
[Delphi] 폼의 클래스명 바꾸기 (0) | 2010.06.18 |