처음에는 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;







Posted by bloodguy
,