Q&A

  • DLL을 만드는데 고수들의 지도를 부탁합니다.
DLL 사이즈가 너무나도 크기 만들어지고 있는 데

폼과 테이블, 로직을 분리해서 만들고자 하면 어떻게 해야 하나요

지금 제가 만들고 있는 방법은

하나의 DLL에 열 대여섯개의 폼과 각종 로직, 테이블등을 몽땅 집어넣다보니

DLL 하나가 보통 1M이 넘는 경우가 허다합니다.

또한 모듈 재사용에도 문제가 있고...



중원의 고수들의 한 수 지도를 부탁합니다.





5  COMMENTS
  • Profile
    기련이 1999.03.05 01:12
    저도 프로그램을 테스트 해 보았는데 문제가 생겼어요.

    body의 내용이 정상적으로 나타나지 않고

    마치 암호처럼 보이는데 왜 그런지 잘 모르겠군요.

    혹시 메일링시 Encode/decode와 관련있는 것인지요?

    그렇다면 어떻게 decode해야 되는지요?

    아니면 다른 것이 원인일 수 있는지요?

    어제하고 오늘 하루종일 궁리해보았지만

    어렵습니다. 도와주세요?



  • Profile
    안치봉 1999.03.05 23:06
    기련이 wrote:

    > 저도 프로그램을 테스트 해 보았는데 문제가 생겼어요.

    > body의 내용이 정상적으로 나타나지 않고

    > 마치 암호처럼 보이는데 왜 그런지 잘 모르겠군요.

    > 혹시 메일링시 Encode/decode와 관련있는 것인지요?

    > 그렇다면 어떻게 decode해야 되는지요?

    > 아니면 다른 것이 원인일 수 있는지요?

    > 어제하고 오늘 하루종일 궁리해보았지만

    > 어렵습니다. 도와주세요?

    >



    물론 델4에 internetpop 에 포함된 예제를 말씀하시는거 겠죠?



    질문하신 내용에 대해 테스트를 해 보았습니다요~



    테스트를 해보면 아시겠지만 메일을 받으면 속성중에 AttachFilePath 라는 항목이 있고 설정되어 있지 않다면 프로그램이 있는 폴더에 몇가지 화일이 생깁니다(메일의 내용) 그 내용을 일반편집기로 보면 body 의 내용이 html 로 작성되어 있는것이 있습니다. nmpop3 의 경우 텍스트기반의 메일수신을 하기 때문에 메일의 내용이 html 이라면 당연히 맛(?)이 가죠.



    한번 텍스트기반으로 메일을 보낸뒤 다시한번 body 의 내용을 보세요. 제가 해본결과로는 잘 됩니다.



    아직 충분히 nmpop3 콤포넌트의 도움말을 보지 않으셨다면 꼭! 읽어 보시고 작업을 하시기 바랍니다.

  • Profile
    기련이 1999.03.06 02:33
    도와주셔서 정말 감사합니다.



    제가 메일을 보낸 것은 OUTLOOK EXPRESS이고,

    메일서버는 MS EXCHANGE서버 입니다.

    근데 이것이 메일을 MIME1.0으로 ENCODE하여

    메일을 송신하여



    1. 수신 메세지의 BODY부문을 MEMO에 ASSIGN하면 ENCODE된 내용이 뜹니다.

    2. ENCODE된 내용을 TNMUUprocessor로 DECODE하면

    정상적으로 BODY의 내용이 나타납니다.



    <죄송하지만 추가 질문드립니다>

    1. 메일수신메세지가 무엇으로 ENCODE되었는지는 어떻게 체크하나요?

    uuMiME인지 uuCODE인지 어떻게 체크하는지요? HEADER에 서술형으로

    나타나던데 그것으로 체크하기는 좀 뭣하고요

    2. 수신메세지를 ENCODE할때 NUUUE1.INPUTSTREAM:=TFILESTREAM으로 대입되던데

    BODY가 TStringList이므로 InputSteam을 대입하면 에러가 납니다.

    INPUTSTREAM에 직접 BODY의 내용을 대입할 수는 없습니까?



    가령

    VAR IN: TStringStream;

    IN:= TStringStream.Create;

    NMPOP31.MailMessage.body.SavetoStream(IN)

    NUUUE1.INPUTSTREAM:= IN;

    으로 하면 에러가 나던데요.

    꼭 수신메일의 BODY를 화일로 저장하고

    저장된 화일을 다시 DECODE하여 저장하고 하는일 없이

    InputStream이나 OutputStream(TStream)을 TFileStream나 TBlobStream이

    아닌 TStringStream으로 대입할 수 있는 방법 좀 알려주세요.



    PS. 죄송합니다. 질문만 해서요.

    저도 이 홈페이지에 자주 방문해서리 저와 같은 혼자 고민하는 친구들을

    위해 도움이 될까 합니다. 즐거운 하루되세요~.



  • Profile
    안치봉 1999.03.06 04:46
    기련이 wrote:

    > 도와주셔서 정말 감사합니다.

    >

    > 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고,

    > 메일서버는 MS EXCHANGE서버 입니다.

    > 근데 이것이 메일을 MIME1.0으로 ENCODE하여

    > 메일을 송신하여

    >

    > 1. 수신 메세지의 BODY부문을 MEMO에 ASSIGN하면 ENCODE된 내용이 뜹니다.

    > 2. ENCODE된 내용을 TNMUUprocessor로 DECODE하면

    > 정상적으로 BODY의 내용이 나타납니다.

    >

    > <죄송하지만 추가 질문드립니다>

    > 1. 메일수신메세지가 무엇으로 ENCODE되었는지는 어떻게 체크하나요?

    > uuMiME인지 uuCODE인지 어떻게 체크하는지요? HEADER에 서술형으로

    > 나타나던데 그것으로 체크하기는 좀 뭣하고요

    > 2. 수신메세지를 ENCODE할때 NUUUE1.INPUTSTREAM:=TFILESTREAM으로 대입되던데

    > BODY가 TStringList이므로 InputSteam을 대입하면 에러가 납니다.

    > INPUTSTREAM에 직접 BODY의 내용을 대입할 수는 없습니까?

    >

    > 가령

    > VAR IN: TStringStream;

    > IN:= TStringStream.Create;

    > NMPOP31.MailMessage.body.SavetoStream(IN)

    > NUUUE1.INPUTSTREAM:= IN;

    > 으로 하면 에러가 나던데요.

    > 꼭 수신메일의 BODY를 화일로 저장하고

    > 저장된 화일을 다시 DECODE하여 저장하고 하는일 없이

    > InputStream이나 OutputStream(TStream)을 TFileStream나 TBlobStream이

    > 아닌 TStringStream으로 대입할 수 있는 방법 좀 알려주세요.

    >

    > PS. 죄송합니다. 질문만 해서요.

    > 저도 이 홈페이지에 자주 방문해서리 저와 같은 혼자 고민하는 친구들을

    > 위해 도움이 될까 합니다. 즐거운 하루되세요~.

    >



    답변드리옵죠.



    1 번질문



    쓰신그대로 헤더형에 나타난값을 가지고 하는게 가장 확실하고 또 좋은방법인것 같습니다. 아니면 스스로 더 낳은 방법을 연구해 보십시요.



    2 번질문



    VAR

    IN: TStringStream;

    begin

    IN:= TStringStream.Create;

    NMPOP31.MailMessage.body.SavetoStream(IN)

    NUUUE1.INPUTSTREAM:= IN;

    ...

    end



    위 소스를 정말 델파이에서 컴파일 시켜보시고 질문을 하시는지 묻고 싶습니다. 컴파일 시켜 보셨다면 왜 안되는지는 굳이 질문을 하지 않으셔도 잘 아실것 같습니다.



    IN: TStringStream; <= IN 은 예약어 입니다.



    IN:= TStringStream.Create; <= 델파이 도움말중 TStringStream.Create 에 대한 도움말을 읽어 보셨는지 의심스럽군요.



    현재 소스에 문법에러가 있기 때문에 답변을 드린다는것 자체가 잘못되는것 같아 이 정도로만 힌트를 드리겠습니다^^



    아울러 너무 답변이 불성실하다고 욕하시거나 하시지는 마시기 바랍니다. 저는 그렇게 생각합니다. 완전히 문제를 풀어주기 보다는 어려운 문제를 만났을때 문제를 푸는 방법을 가르쳐 드리는게 더욱 낳다고 생각합니다.



    이상입니다. 그리고 TStringStream 의 도움말을 충분히 읽으시고 문법에러를 수정하신뒤 다시 그 부분에 대한 소스를 올려 주시면 그때 또 해결하는 방법을 가르쳐 드리겠사옵니다요~



    열심히 하십시요!!!.



  • Profile
    기련이 1999.03.10 02:30
    덕분에 문제를 해결하였습니다.



    Var

    InStr, OutStr: TStringStream;

    Begin

    InStr := TStringStream.Create(NMPOP31.MailMessage.Body.Text);

    outStr := TStringStream.Create('');

    NMUUE1.InputStream := InStr;

    NMUUE1.OutputStream := OutStr;

    NMUUE1.Method := uuMIME;

    NMUUE1.Decode;

    End



    이렇게 하니까 TStream에 TStringStream이 대입되더군요.

    === 다시한번 감사드립니다. ===

    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 송기원
    • 1999.06.10 19:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.06.10 20:22
      송기원 께서 말씀하시기를... > windows 95에서 실행중인 모든 프로그램의 Handle을 참조할려고 합니다. ...
    • 원영준
      1999.03.09 22:20
      안녕 하십니까 ! 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. 당분간은 ROM족 신세를 면치 못하겠...
    • 글쎄요
      1999.06.11 00:02
      이승윤 께서 말씀하시기를... > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다. ...
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 구창민
      1999.06.10 20:16
      이승윤 께서 말씀하시기를... > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다. ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.09 06:01
      박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
    • 박근영
      1999.03.09 17:39
      답변 감사합니다... 건강하세요.....
    • neperz
    • 1999.06.10 09:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정청환
    • 1999.06.10 07:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김성동
      1999.06.11 00:10
      StringGrid의 소스를 보면 protected 멤버로 DeleteRow란 프로시져가 있습니다. 그러니까 StringGrid에서 ...
    • 안치봉
      1999.03.09 06:01
      박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
    • 박근영
      1999.03.09 17:39
      답변 감사합니다... 건강하세요.....
    • 정청환
    • 1999.06.10 07:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김태균
      1999.06.10 18:23
      정청환 께서 말씀하시기를... > stringgrid에서 한 라인(Row)을 삭제 > > stringgrid에서 한 라인(Row)...
    • chobo
    • 1999.06.10 07:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박근영
      1999.03.09 04:01
      안녕하세요.... 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... 사이트 내용이 좋아 자주 들...
    • 최석기
      1999.06.10 09:22
      chobo 께서 말씀하시기를... > 프로그램에서 특정프로그램을 동작시킬려고 합니다. > ShellExecute()함수...
    • 안치봉
      1999.03.09 06:01
      박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
    • 박근영
      1999.03.09 17:39
      답변 감사합니다... 건강하세요.....
    • 김성률
    • 1999.03.06 05:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.08 00:34
      김성률 wrote: > 먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되...
    • 이창석
    • 1999.03.08 00:11
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최현호
      1999.06.10 05:53
      델파이상에서 다른 컴퓨터의 공유디렉토리를 네트워크 드라이브로 잡는 방법이 있나요? 델파이는 4.0을 ...
    • 안치봉
      1999.03.10 03:12
      이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
    • 구창민
      1999.06.10 20:04
      최현호 께서 말씀하시기를... > 델파이상에서 다른 컴퓨터의 공유디렉토리를 네트워크 드라이브로 잡는 ...
    • 이창석
      1999.03.12 00:33
      안치봉 wrote: > 이창석 wrote: > > 반갑습니다. > > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. ...
    • 신인재
      1999.03.12 04:33
      > procedure TForm1.Button1Click(Sender: TObject); > var > i,y:integer; > begin > if opendialo...
    • 정성호
    • 1999.06.10 05:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김성률
      1999.03.06 05:11
      먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되는 것을 소스라고 ...
    • 안치봉
      1999.03.08 00:34
      김성률 wrote: > 먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되...
    • 공대규
      1999.06.10 22:35
      델파이에서 ActiveForm 어플리케이션으로 만드시는 것이 좋을 듯 합니다. 일단 File-New-ActiveX-ActiveFo...
    • 기련이
      1999.03.05 01:12
      저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. body의 내용이 정상적으로 나타나지 않고 마치 암...
    • 안치봉
      1999.03.05 23:06
      기련이 wrote: > 저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. > body의 내용이 정상적으로 나...
    • 기련이
      1999.03.06 02:33
      도와주셔서 정말 감사합니다. 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, 메일서버는 MS EXCHANGE서...
    • 안치봉
      1999.03.06 04:46
      기련이 wrote: > 도와주셔서 정말 감사합니다. > > 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, > ...
    • 기련이
      1999.03.10 02:30
      덕분에 문제를 해결하였습니다. Var InStr, OutStr: TStringStream; Begin InStr := TStringStr...