Q&A

  • 한번 생성된 Form을 실행 안 되게 하기 위해서
말 그대로 이미 생성되 있는 Form이 생성 되는 것을 막기 위한 방법을 알고 싶습니다.
제가 해 본 방법으로는
FindWindow로 자기 자신을 찾아서 Show Message를 띄우는 것까지는 하겠는데 아예 실행이 안 되게 하는 것을 하기가 어렵네요..

if (Ord(FindWindow('TRobot', 'Window Message')) <> 0) then
   begin
     ShowMessage('Program이 이미 열려 있습니다.');
   end;
2  COMMENTS
  • Profile
    홍성락 2002.09.10 02:38
    hsr///////////////////////////////////////////////
    저도 이방법이 좋은것 같아 계속사용하거든요.

    1.폼호출시
    procedure TFrmmain.Btn_ChartClick(Sender: TObject);
    begin
          //1.말씀하신 : 이미 생성되 있는 Form이 생성 되는 것을 막기 위한
          if not(assigned(FrmChart)) then
              FrmChart := TFrmChart.Create(nil);
           FrmChart.ShowModal;
    end;
    1-1.항상 폼을 닫을때 코딩
    procedure TFrmChart.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        Action := caFree;
    end;

    procedure TFrmChart.FormDestroy(Sender: TObject);
    begin
        FrmChart := nil;
    end;

    2.'FindWindow로 자기 자신을 찾아서 Show Message를 띄우는 것까지는 하겠는데 아예 실행이 안 되게 하는 것'
    => 이건 좀 이해가 안가는데요...
    위에서 begin...end;로 묶으시면 될거 같은데요
    if not(assigned(FrmChart)) then begin
       FrmChart := TFrmChart.Create(nil);
       FrmChart.ShowModal;
    end;
  • Profile
    최용일 2002.09.10 02:20
    안녕하세요. 최용일입니다.

    흠~ 무슨 말인지 정확히 의미가 와 닫지 않네요...

    같은 프로그램을 두번이상 띄우지 않으실려면 뮤텍스(Mutex)를 이용하시는 것이 제일 좋은 방법이구요. 쓰는 방법은 검색해보시면 많이 있습니다.

    같은 프로그램내에서 폼을 두번이상 띄우지 않으실려면 띄워진 폼들을 관리하는 클래스를 만드시던가 Screen.Forms속성을 조사하셔서 같은 폼이 이미 있다면 안띄우시면 됩니다.

    ^^ 항상 즐코하세요...

    • 이~장
    • 2002.09.10 02:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.09.10 02:59
      이 내용만 보고는 왜 그런지 알기가 쉽지 않네요 소스를 올린다던다 어떤 특별한 상황이라던가 좀더 구체...
    • 최수림
    • 2002.09.10 02:27
    • 3 COMMENTS
    • /
    • 0 LIKES
    • KDDG_zzang
      2002.09.11 03:43
      TreeView의 CustomDrawItem 이벤트에 코딩해 보세요. begin     if Node.Level = ...
    • 홍성락
      2002.09.10 02:49
      hsr//////////////////////////////////////////////// FullExpend는 전체구요 TreeView1.Items.Item[i]....
    • 최수림
      2002.09.10 09:58
      감사합니다...^__^ =====================================================================
    • 브래드
    • 2002.09.10 02:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.09.10 02:38
      hsr/////////////////////////////////////////////// 저도 이방법이 좋은것 같아 계속사용하거든요. 1...
    • 최용일
      2002.09.10 02:20
      안녕하세요. 최용일입니다. 흠~ 무슨 말인지 정확히 의미가 와 닫지 않네요... 같은 프로그램을 두번...
    • 손규만
    • 2002.09.10 02:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김종균
    • 2002.09.10 02:00
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.09.10 02:29
      안녕하세요. 최용일입니다. inherited는 상속받은 부모의 메소드를 쓴다는 예기네요... type  ...
    • 김종균
      2002.09.10 02:34
      답변 감사합니다. B는 A클래스를 상속받았다는거죠? inherited를 쓰지 않아도 B는 A클래스의 모든 메소드...
    • 최용일
      2002.09.10 02:55
      안녕하세요. 최용일입니다. inherited안써주어도 상속받은객체의 메소드나 변수를 사용하는덴 아무런 제...
    • 최용일
      2002.09.10 02:39
      안녕하세요. 최용일입니다. 폼에서 마우스오른쪽클릭해서 Add To Repository... 눌러서 저장하시면 됩니...
    • 최용일
      2002.09.10 03:32
      폼을 상속해서 쓰실려면 상위폼, 그러니까 님이 처음에 만드신 폼 있잖아요, 폰트등이랑 그런거 새롭게 설...
    • 델사랑
    • 2002.09.10 01:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황재훈
      2002.09.12 00:05
      엑서스에서 테이불 구조를 보지 못하게 암호를 설정해 놓은 MDB 파일을 최적화 하는 알고리즘 방법좀 알...
    • 양용성
      2002.09.10 07:25
      아래와 같이 하면 됩니다. procedure TFmain.SendBug_BtnClick(Sender: TObject); var em_subject, em_...
    • KDDG_ZZOM
      2002.09.10 01:27
      파워빌더에서는 바로 텍스트나 excl롤 저장시킬수 있는걸로 알고 있는데... 델파이에서는 직접적으로 저장...
    • 이승재
      2002.09.10 02:07
      답변 고맙습니다. 님이 말씀하신대로....파워빌더에서는 제가 알기로... save as를 이용하면...된다고 알...
    • 니암~
    • 2002.09.10 01:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.09.10 01:29
      ...
    • 주관석
    • 2002.09.10 00:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.09.10 01:08
      제가 알기로는 Editmask 에서도 입력되는 값에 대해 자체 검사는 않되는 걸로 알고 있습니다. 힘드셔두 ...
    • 김종곤
    • 2002.09.10 00:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.09.10 03:03
      안녕하세요. 최용일입니다. 흠 그냥 하시면 될텐데요... A := Query1.FieldByName('aa').Asinteger *...
    • 이대희
    • 2002.09.09 23:51
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.09.10 00:39
      질문이 모호한 것 같습니다. 설치를 마친 후 님이 작성한 프로그램을  실행할 때 Tray Icon...
    • 이대희
      2002.09.10 02:37
      다시 질문 합니다. 제가 프로그램 배포시, 사용자가 첫번째 인스톨을 하면, 제 프로그램이 Tray에 등록 ...
    • 밥팅민수
      2002.09.10 00:37
      hkeycurrentusersoftwaremicrosoftwundowscurrentversionrun 헉헉... 대충 저 키에 해당 프로그램들을 ...
    • 바다를향해
      2002.09.09 23:33
      저는 아주 잘 되는데여.......
    • 바다를향해
      2002.09.09 23:26
      10051은 아마도 네트워크가 끊어졌다는 것일 겁니다.(Network Unreachable) 잘 기억이 안나는데.............
    • 바다를향해
      2002.09.09 23:41
      걍 node1.EditText; 하믄 되는거 아니에여?? 전 잘 되는데...
    • 홍성락
      2002.09.09 23:34
      hsr/////////////////////////////////////////////////////////////// 위 리스트박스는 맨뒤에 추가이구...
    • 홍미자
    • 2002.09.09 22:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 황재훈
      2002.09.09 23:08
      인쇄용지의 디폴트가 윈도우에서 A4 라서 그런것이 이닌가 쉽네요
    • 홍미자
      2002.09.10 17:57
      Qreport에서 인쇄용지를 B5로 지정했기 때문에 윈도우 98에서는 저상적으로 인쇄된것입니다. 단지 윈도우 X...
    • 황재훈
    • 2002.09.09 22:31
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이정은
    • 2002.09.09 21:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2002.09.09 22:14
      order by 는 쿼리문 명령어아닌가요? 쿼리를 오픈하기전에 추가하시고 해보세요... 즐프 하세요...
    • 2002.09.09 22:13
      RequestLive 속성을 TRUE로 설정하는 것은 JOIN을 하지 않는 Query에 대해서만 가능합니다. 즐코하세요....