Q&A

  • [급한 재 질문] 고수님의 빠른 답변을 기다리며.....
답변이 너무 늦어 재질문드립니다. 고수님들 제발 도움을 주셨으면 합니다.

이것 때문에 정말 미치기 일보 직전입니다.

마음이 답답하여 요즘 잠도 잘 못잡니다.



몇일전에 와서 한 질문입니다.....



여기에 와서 항상 질문만 하는 것에 대해서 아주 죄송한 마음뿐입니다.

저는 MDI로 구현하는 한 프로젝트에 참여하고 있습니다. 그런데, MDICHILD 폼을 DLL로

만들어서 호출하고 있습니다. 한 DLL에는 평균 15개 정도의 폼을 포함하고 있습니다.

메뉴별로 DLL을 만들었거든요.

그런데, 프로그램의 특성상, 한 DLL의 특정폼에서 다른 DLL의 특정폼을 호출할 일이 아

주 많습니다. 제가 방법을 몰라서 그런지, 아주 힘이 듭니다. 그래서, 현재는 그 부분을 제외하고 프로그래밍하고 있습니다.

한 DLL속에 포함하는 것도 그런것같고, 혹시 방법이 있는지, 아니면 불가능한 것을 제가

할려고 하는지 무척이나 궁금하군요. 여러 고수분들께서 이것을 꼭!꼭!꼭! 보시고 제발 저에게 가르침을 내려주셨으면 합니다.

그럼 20000.......................................................................

3  COMMENTS
  • Profile
    김영해 2000.07.19 09:35
    김명성 wrote:

    > 답변이 너무 늦어 재질문드립니다. 고수님들 제발 도움을 주셨으면 합니다.

    > 이것 때문에 정말 미치기 일보 직전입니다.

    > 마음이 답답하여 요즘 잠도 잘 못잡니다.

    >

    > 몇일전에 와서 한 질문입니다.....

    >

    > 여기에 와서 항상 질문만 하는 것에 대해서 아주 죄송한 마음뿐입니다.

    > 저는 MDI로 구현하는 한 프로젝트에 참여하고 있습니다. 그런데, MDICHILD 폼을 DLL로

    > 만들어서 호출하고 있습니다. 한 DLL에는 평균 15개 정도의 폼을 포함하고 있습니다.

    > 메뉴별로 DLL을 만들었거든요.

    > 그런데, 프로그램의 특성상, 한 DLL의 특정폼에서 다른 DLL의 특정폼을 호출할 일이 아

    > 주 많습니다. 제가 방법을 몰라서 그런지, 아주 힘이 듭니다. 그래서, 현재는 그 부분을 제외하고 프로그래밍하고 있습니다.

    > 한 DLL속에 포함하는 것도 그런것같고, 혹시 방법이 있는지, 아니면 불가능한 것을 제가

    > 할려고 하는지 무척이나 궁금하군요. 여러 고수분들께서 이것을 꼭!꼭!꼭! 보시고 제발 저에게 가르침을 내려주셨으면 합니다.

    > 그럼 20000.......................................................................



    저두 비슷한 경우가 있어서 경험을 말씀드리면...

    호출되는 폼이 dll의 메인 폼이 아니라면(예를 들어 코드조회 같은거겠죠?)

    그냥 포함해서 사용하셔도 무방할거라고 생각됩니다.

    dll을 굳이 호출해서 사용할 필요는 없더군요.

    대신 dll이 동시에 호출되었을 경우는 서로 다른 것으로 인식되던걸로 기억됩니다.



  • Profile
    타락천사 2000.07.19 08:56
    안녕하세여..타락임다..^^



    제가 요즘 시간 여유가 좀 있어서뤼...ㅠㅠ



    질문의 요지를 모르겠군여.. 흠.. 아래의 코딩을 수정해쓰세여..



    폼이 필요할때 DLL를 로딩해 쓰고, 다 쓰며, DLL을 제거하면 돼져.



    TShowCalendar 만 폼으로 바꾸면 돼지않을까여?



    type

    TShowCalendar = function(AHandle : THandle; ACaption: string):

    TDateTime; stdcall;

    EDLLLoadError = class(Exception);

    ..........

    procedure TForm1.ButtonClick(Sender: TObject);

    var

    LibHandle: THandle;

    ShowCalendar: TShowCalendar;

    begin

    LibHandle := LoadLibrary('CALENDARLIB.DLL');

    try

    if LibHandle = 0 then

    raise EDLLLoadError.Create('Unable to Load DLL');

    @ShowCalendar := GetProcAddress(LibHandle, 'ShowCalendar');

    if not (@ShowCalendar = nil) then

    IblDate.Caption := DateToStr(ShowCalendar(Application.Handle,

    Caption ))

    else

    RaiseLastWin32Error;

    finally

    FreeLibrary(LibHandle);

    end;

    end;



    즐푸 하세여..



    타락천사...^________^

  • Profile
    김명성 2000.07.20 06:44
    타락천사 wrote:

    > 안녕하세여..타락임다..^^

    >

    > 제가 요즘 시간 여유가 좀 있어서뤼...ㅠㅠ

    >

    > 질문의 요지를 모르겠군여.. 흠.. 아래의 코딩을 수정해쓰세여..

    >

    > 폼이 필요할때 DLL를 로딩해 쓰고, 다 쓰며, DLL을 제거하면 돼져.

    >

    > TShowCalendar 만 폼으로 바꾸면 돼지않을까여?

    >

    > type

    > TShowCalendar = function(AHandle : THandle; ACaption: string):

    > TDateTime; stdcall;

    > EDLLLoadError = class(Exception);

    > ..........

    > procedure TForm1.ButtonClick(Sender: TObject);

    > var

    > LibHandle: THandle;

    > ShowCalendar: TShowCalendar;

    > begin

    > LibHandle := LoadLibrary('CALENDARLIB.DLL');

    > try

    > if LibHandle = 0 then

    > raise EDLLLoadError.Create('Unable to Load DLL');

    > @ShowCalendar := GetProcAddress(LibHandle, 'ShowCalendar');

    > if not (@ShowCalendar = nil) then

    > IblDate.Caption := DateToStr(ShowCalendar(Application.Handle,

    > Caption ))

    > else

    > RaiseLastWin32Error;

    > finally

    > FreeLibrary(LibHandle);

    > end;

    > end;

    >

    > 즐푸 하세여..

    >

    > 타락천사...^________^



    타락천사님과 김영해님의 정성스러운 답변 감사합니다.

    위의 dll 호출은 dll에 한 폼만 있는 것을 부르는 것같습니다.

    제가 알고 싶은 것은 dll에 여러폼이 있습니다. 그런데, 다른 dll에서 한 dll의

    특정 폼을 마음대로 불러 낼 수 있냐는 겁니다.

    그 호출 방법을 몰라서 이렇게 애만 태우고 있습니다.

    호출하는 방법은 위와 비슷하게하면 되겠지만, 호출 되는 dll에서 어떻게 해야지

    호출할때 특정 값을 받아서 그 값에 의해서 특정폼이 호출 될 수 있게 할 수 있는

    방법을 몰라서요.

    모듈을 아무리 생각해 봐도 잘 생각이 나지 않네요.

    이 답답한 인간의 마음을 풀어 주시기 바랍니다.

    위의 답변을 하신 김영해님께서의 답변데로 포함 할수도 있겠지만 그러면 열개의 폼

    을 또 더해야 하니깐 조금 그래서요

    최대한 용량을 줄여야 하거든요



    타락천사님과 김영해님 두분중에 꼭 한분이라도 저의 질문에 대해 답변을 주셨으면합니다.

    • 가가가
    • 2000.07.19 18:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.07.19 19:29
      안녕하세여.. 타락임다..^^ 커널DLL이 깨졌네여... Win98 DLL이 가끔 깨져여.. Win98 다시 까세여......
    • 최용일
      2000.07.19 12:01
      안녕하세요. 최용일입니다. CompareText함수를 사용하세요. ^^ 항상 즐코하세요. 꼴뚜기 wrote: ...
    • 뭉치
    • 2000.07.19 10:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최영근
      2000.07.20 04:52
      이선주 wrote: > 초보입니다. > > 고수님들의 조언이 필요합니다 > > 현재 스트링 그리드에 있는 내...
    • Black}{ole
      2000.07.19 22:37
      이선주 wrote: > 초보입니다. > > 고수님들의 조언이 필요합니다 > > 현재 스트링 그리드에 있는 내...
    • 4master
    • 2000.07.19 08:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.07.19 14:46
      안녕하세요 하얀까마귀 입니다. 오늘 날밤 샛내요.. 흑흑.. 밤샘안하기로 다짐을 했건만... 이놈 눈...
    • 김명성
    • 2000.07.19 07:40
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      2000.07.19 09:35
      김명성 wrote: > 답변이 너무 늦어 재질문드립니다. 고수님들 제발 도움을 주셨으면 합니다. > 이것 때문...
    • 타락천사
      2000.07.19 08:56
      안녕하세여..타락임다..^^ 제가 요즘 시간 여유가 좀 있어서뤼...ㅠㅠ 질문의 요지를 모르겠군여.. ...
    • 김명성
      2000.07.20 06:44
      타락천사 wrote: > 안녕하세여..타락임다..^^ > > 제가 요즘 시간 여유가 좀 있어서뤼...ㅠㅠ > > ...
    • heimdal
    • 2000.07.19 07:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      2000.07.19 09:45
      heimdal wrote: > procedure Tmachine.DateTimePicker1Click(Sender: TObject); > begin > with qu...
    • 조규춘
      2000.07.19 08:38
      heimdal wrote: > procedure Tmachine.DateTimePicker1Click(Sender: TObject); > begin > with qu...
    • 김영해
      2000.07.19 09:56
      델파이걸 wrote: > 블랙홀님의 답변 감사합니다. > > 그런데 그 방법은 파일명을 갖고 오는 것입니다. ...
    • Black}{ole
      2000.07.19 06:45
      델파이걸 wrote: > 블랙홀님의 답변 감사합니다. > > 그런데 그 방법은 파일명을 갖고 오는 것입니다. ...
    • Mr.Q
      2000.07.19 08:26
      Black}{ole wrote: > 델파이걸 wrote: > > 블랙홀님의 답변 감사합니다. > > > > 그런데 그 방법은 파...
    • Codenj
    • 2000.07.19 05:01
    • 4 COMMENTS
    • /
    • 0 LIKES
    • Black}{ole
      2000.07.19 06:43
      Codenj wrote: > DBGrid에서 특정행을 보이지 않게 하려고 하는데요, 어떻게 하면 될까요? > 예를 들면 ...
    • Codenj
      2000.07.19 07:13
      Black}{ole wrote: > Codenj wrote: > > DBGrid에서 특정행을 보이지 않게 하려고 하는데요, 어떻게 하면...
    • Mr.Q
      2000.07.19 08:21
      Codenj wrote: > Black}{ole wrote: > > Codenj wrote: > > > DBGrid에서 특정행을 보이지 않게 하려고 ...
    • 조규춘
      2000.07.19 08:12
      Codenj wrote: > Black}{ole wrote: > > Codenj wrote: > > > DBGrid에서 특정행을 보이지 않게 하려고 ...
    • 델초보
    • 2000.07.19 04:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.21 22:11
      델초보 wrote: 어찌하여 하위버젼에서 상위버젼으로 바뀌는데 Migration이 필요한 것인가!!! 상식적으로 ...
    • 최용일
      2000.07.19 11:49
      안녕하세요. 최용일입니다. 흠~ 이걸 구조적인 차이라고 해야하나~ 암튼 버전별로 함수나 메소드, 속성,...
    • mallove
    • 2000.07.19 04:51
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Mr.Q
      2000.07.19 11:19
      mallove wrote: > 키가 없는 테이블에서 '번호'필드가 있다고 할 때 자동증가를 사용 > 하지 않고 Number...
    • Black}{ole
      2000.07.19 07:24
      mallove wrote: > 키가 없는 테이블에서 '번호'필드가 있다고 할 때 자동증가를 사용 > 하지 않고 Number...
    • 최용일
      2000.07.19 12:03
      안녕하세요. 최용일입니다. 패키지 형태로 만들어서 컴파일하면 bpl파일이 나옵니다. File/New하셔서 패...
    • hugehead
      2000.07.20 00:22
      Client에 갖다 놓으신 ClientDataSet의 DataRequest 함수를 사용하시면 될 것 같군요. DataRequest 함수...
    • 정지호
      2000.07.19 03:30
      참신 wrote: > 안녕들 하십니까..... > 모듈간 파라메타를 전달하려 합니다 > > WinExec('Out_Agen...
    • 283
    • 2000.07.19 02:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.19 12:10
      안녕하세요. 최용일입니다. 모두 다 지원합니다. 근데 스탠다드나 프로페셔널버전에는 없습니다. 엔터프...
    • 정지호
      2000.07.19 03:36
      somoon wrote: > > 델파이 안에서 dos명령어는 어떻게 사용합니까? > > winexec('')명령어가 있다는...
    • 김형선
    • 2000.07.19 02:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.21 22:12
      김형선 wrote: 퀵레포트의 차트에 Background Image를 삽입할수 있습니다. > 안녕하십니까???? > > ...