Q&A

  • 한프로젝트에 포함된 여러개의 폼을 각각의 실행파일로 만들순 없나요?
한 프로젝트에는 로그인폼과 입력폼, 조회폼, 출력폼이 있습니다.
헌데 어느 한폼을 수정하면 프로젝트 전체를 다시 배포해야 하는 번거러움이 있어서 각각의 실행파일로 쪼개서 수정된 폼만 자동다로운드 되도록 만들고 싶습니다.

헌데 각각의 폼들은 전역변수를 통해서 값들을 주고 받고 있는데 만약 쪼개진다면 그런 변수들은 어떻게 사용할수 있습니까?

3  COMMENTS
  • Profile
    김수경 2002.10.22 19:45
    저같은 경우는
    실제 실행 Code보다 Data 특히 Image등이
    전체 크기의 대부분(2/3 이상)을 차지하는 경우가 많아
    Runitime시 이 File들을 불러 오도록 처리하도록 한답니다.
    물론 최초 배포시 모든 File을
    그 다음 부터 실행 File만 배포 하지요.
    님도 Image을 많이 사용하다면 이 방법을 사용해 보세요.
    현 프로그램에 몇 줄(Image 읽어 붙이는 코드)만 추가하면 되니까
    개인적으로 추천해 드리고 싶군요.

    즐푸하세요 ^^;


  • Profile
    박장용 2002.10.22 19:17
    프로그램 배포를 고려한 프레임웤을 짜는일은 프로젝트 초기에 결정되어져야 하는 일입니다. 나중에 이것을 바꾸기란 무척 힘들다고 할수 있습니다.
    물론 규모가 작고 프로그램간 연계가 적다면 적은 노력으로도 가능하지만 반대의 경우 새로운 프로젝트를 발생시켜야만 가능할 정도로 공수가 많이 들어 갑니다.

    일단 몇가지 예를 들면

    1.델파이 초창기에 유행했던 실행파일 레벨의 체계가 있습니다.(SDI스타일 이였죠) . 메뉴역시 EXE형태의 실행파일이었고 단위 프로그램 역시 EXE로 되어 윈도우프로그램이라고 하기에는 좀 어설펐습니다..이때는 프로그램간 연동을 프로그램을 처음 실행할때는 런 파라미터 (dir에 /r 처럼)를 사용하였고 이미 기동중인 프로그램과 연동할땐 DDE또는 OLE를 연동해 처리 했습니다..

    2.그뒤에 사용되던것이 님이 얘기하신 통짜로 묶어서 배포 관리하는 방식이었습니다.(MDI스타일 이였죠)  님이 얘기하신대로 프로그램 변경시 전체를 다운 해야 하는 문제가 있었습니다.. 20M가 넘는 실행파일이 변경 될때마다 몇백개 클라이언트가 다운 받는다는건 네트웍의 마비가 우려되는 상황입니다..

    3.요즘 유행하는 것은 MDI형태의 메인 프로그램과 별도로 만들어진 DLL을 동적으로 LoadLibrary하여 사용하는 방법입니다..실제 공통bpl들을 별도 배포하고  버전관리를 통해 변경된 프로그램(DLL)만 다운 받아 사용하면 200~300K정도의 파일을 다운 받게 됩니다.

    4.마지막으로 BPL형태로 프로그램을 분리하는 방식인데 불행히도 제가 직접 해보지 않은 것이라 뭐라 평가 하기 어렵군요..

    제가 보기에는 이미 MDI코딩이 되어 있는 프로그램 인것 같은데 세번째 방법으로 전환하심이 좋을것 같습니다..물론 코딩은 사뭇 다름니다..얼마나 공수가 들어갈지 미리 예측하시는 것도 중요하구요..왜냐하면 ALL or Nothing이기 때문입니다.. ^^;

    그럼..
  • Profile
    타락천사 2002.10.22 18:39
    안녕하세여. 타락임다..

    폼별로 DLL 로 만들어 넣는 방법이 있습니다.
    그런데 DLL 은 사용에서 좀 많이 신경 쓰입니다. 한마디로 문제가 생기면 잘 찾기 힘들다는 거져. 저 같은 경우는 신경쓰기 구찮아서 그리고 디버깅 하기 힘들어서 잘 안씁니다.

    또 다른 방법은 여러개의 실행파일로 만드는 방법이 있습니다. 말씀하신 프로젝트는 다운로드 때문에 쪼개실려는 것으로 보입니다. 그럼 자주 변경될 여지가 있는 순으로, 또는 기능별로 쪼개서 실행파일을 만들어야죠. 실행파일 간의 통신은 WM_COPYDATA 쓰면 됩니다.

    WM_COPYDATA 사용법은 팁에서 "타락천사"로 검색하심 될겁니다.

    즐푸하세여..

    타락천사..

    • 머슴
      2002.10.22 23:55
         if FileExists('update.list') then //화일이 있으면
    • 샤리
      2002.10.23 00:40
      감사합니다.. 음..파일을 다운받고나서 정보를 보면.. 경로|파일이름|날짜|시간.. 이렇게 나와야 하거든...
    • 벤지
      2002.10.23 02:30
      델코에 올린적이 있었는데 지워져 버렸네요오 어디까지 개발하실지는 개발하실때에 생각를 하시어서 ...
    • [ROOKIE]
      2002.10.22 23:42
      간단하게 생각해서... 일단 24bit로 해상도를 바꾸세요. 걍.. 화면이랑 그런건 바꿀필요 없고... 단지 Im...
    • 나윤호
      2002.10.23 02:27
      Image1.Picture.Bitmap.PixelFormat := pf24bit; 이것만 추가해주니 기존의 로직데로 모두다 잘되는군요....
    • 송영식
    • 2002.10.22 22:00
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.10.22 22:25
      님이 만드신  텍스트 파일을 체크해서 있으면 열고,없으면 새로 만들어 열어 기록하는 문장으...
    • 송영식
      2002.10.22 23:09
      먼저 답변에 감사드리구여. ^&^ Append로 바꾸어 테스트 해보앗는데여. 파일을 찻을수 없다는 에러 ...
    • 니야옹
      2002.10.22 23:17
      질문내용으로 봐서는 FileCreate함수에서 발생하는 오류를 해결하시려는 것 같은데... 그건 파일명에...
    • 송영식
      2002.10.22 23:49
      몇달동안을 헤멨는데 인제야 해결햇읍니다. 머슴님 께서 써주신 구문에 Append 대신 Rewrite 프로시져를 ...
    • 김진호
    • 2002.10.22 20:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채태숙
      2003.12.17 20:29
      Options 에 goRangeSelect 부분을 True로 주시면 Row의 다중 선택이  가능합니다..
    • 정성훈
      2002.10.22 22:27
      SELECT '국어',            ,A.강의사작일  &...
    • 델사랑
      2002.10.22 23:16
      답변고맙습니다 제가 ADO를 이용해서 MDB를 연결했는데 쿼리에서 CASE를 사용하면 없는 문법이라고 나옵니...
    • 정성훈
      2002.10.23 00:44
      mdb 라면 Access 인가요? 걔는 안되는걸로 알고잇는디.. ㅡ.ㅡ 직접 테이블 만들어서 한번 보니까 순전히...
    • KDDG_ZZOM
      2002.10.22 20:54
      테이블키도 함께 알려주셔야될것같은데요?? 글구 델파이에서 case,decode가 안되는게 아니고 데이타베이...
    • (_^^)~U
      2002.10.22 20:35
      if FileExists('D:liveupdateupdate.list') then //D:liveupdateupdate.list 파일이 있으면
    • 샤리
      2002.10.22 20:51
      감사해요.. 그런데 제가 이걸 어디다가 써야할지 잘 모르겠거든요..ㅡㅡ;; 제가 지금 다운로드 버튼을 누...
    • 이은우
    • 2002.10.22 20:29
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.10.22 20:31
      TTable 또는 TQuery에서  FieldList.Find를 이용해 보세요 TTable을사용하는 경우  &...
    • 양준호
      2002.10.22 21:00
      답변감사합니다. 그런데요. 제말은 DB에서 특정필드가 있으면 에디터박스를 보여주고 필드가없으면 박스...
    • 2002.10.23 00:05
      Enabled를 Visible로 하면 되겠네요... 즐코하세요...
    • 코난
    • 2002.10.22 20:10
    • 3 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Hoya
      2002.10.22 20:22
      ^^ 예전에 이것땜시 고민하다가..고생한 적이 있는데.. 그럼... sql 스토어 프로시져 내용.. CREATE PRO...
    • 코난
      2002.10.22 20:33
      내용물에는 이상이 없구여.. sql2000을 쓰고  델파이 5.0 을 쓴ㄴ데.. PBOOKJANCHECK 라는 ...
    • KDDG_Hoya
      2002.10.22 21:07
      --- 흠.. 쿼리를 오픈하시는 건가여..?       스토어프로시져로 데이터를 ...
    • 정용광
    • 2002.10.22 19:50
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정성훈
    • 2002.10.22 19:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김해성
    • 2002.10.22 18:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2002.10.22 19:12
      안녕하세여. 타락임다.. TDBEdit 나 TDBGride 등등의 것들은 Show 하기 위한 것으로 사용하시는게 좋습...
    • 짱아
    • 2002.10.22 18:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조성환
      2002.10.22 19:43
      Deployment 라이센스가 없는 듯 합니다. 관련 라이센스를 확인하시고 라이센스 파일과 같이 배포하면서 ...
    • 프리빌
    • 2002.10.22 08:06
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 권상현
    • 2002.10.22 07:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.10.22 19:45
      저같은 경우는 실제 실행 Code보다 Data 특히 Image등이 전체 크기의 대부분(2/3 이상)을 차지하는 경우...
    • 박장용
      2002.10.22 19:17
      프로그램 배포를 고려한 프레임웤을 짜는일은 프로젝트 초기에 결정되어져야 하는 일입니다. 나중에 ...
    • 타락천사
      2002.10.22 18:39
      안녕하세여. 타락임다.. 폼별로 DLL 로 만들어 넣는 방법이 있습니다. 그런데 DLL 은 사용에서 좀 많이...
    • 타락천사
      2002.10.22 18:41
      안녕하세여. 타락임다.. 사실 사용자가 보는 화면은 여러개의 Layout 이 겹쳐진 겁니다. 전에 최용...
    • 윤기원
    • 2002.10.22 05:12
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박정찬
    • 2002.10.22 04:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2002.10.22 19:24
      안녕하세여. 타락임다.. 저.. 혹시. Thread 에 nil 을 할당했나여? 그럼 문제의 여지가 있을 수 있습니...
    • 박정찬
      2002.10.23 03:39
      OnTerminate 이벤트가 일어날때 거기서 Nil을 해줬거든요. 어쨌든 Nil로 된걸 막았어여. 그래두 난다면 ...
    • 김만구
    • 2002.10.22 04:28
    • 0 COMMENTS
    • /
    • 0 LIKES