Q&A

  • 생성된 동적폼이 안보여집니다
동적폼에 동적라벨,동적타이머를 생성하고나서
동적라벨에 마우스좌표를 보여주려고하는데
동적 폼 자체가 아예 안보여집니다 T^T

self를 DynamicForm으로 바꿔보기도하고 어쨌든 폼이 안보여집니다
show 를 써봐도 안되구요...

그리고 Destroy에 free를 서주었더니 오류 발생하네요 T^T 왜그런가요?

폼 생성을 잘못한건가요? 고수님들의 조언부탁드립니다요 ^^
즐프되세요~

=======================================================================


unit FormSRC;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TMainForm = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    DynamicForm : TForm;
    DynamicLabelX, DynamicLabelY : TLabel;
    DynamicTimer : TTimer;
    procedure DynamicTimerProc(Sender : TObject);
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure TMainForm.FormCreate(Sender: TObject);
begin
   DynamicForm                 := TForm.Create(self);
   with DynamicForm do
   begin
      DynamicForm.FormStyle    := fsStayOnTop;
      DynamicForm.Width        := 80;
      DynamicForm.Height       := 16;
      DynamicForm.Color        := clBtnFace;
      DynamicForm.Visible      := True;
//      DynamicForm.OnDestroy     := DynamicFormDestroyProc;
   end;
   /////////////////////////////////////////////////////////////////////////////
   /////////////////////////////////////////////////////////////////////////////
   DynamicLabelX               := TLabel.Create(self);
   with DynamicLabelX do
   begin
      DynamicLabelX.Left       := 0;
      DynamicLabelX.Top        := 0;
      DynamicLabelX.Visible    := True;
      DynamicLabelX.Align      := alLeft;
      DynamicLabelX.Width      := 40;
      DynamicLabelX.Font.Size  := 8;
      DynamicLabelX.Font.Color := clBlue;
      DynamicLabelX.Parent := DynamicForm;
   end;

   DynamicLabelY               := TLabel.Create(self);
   with DynamicLabelY do
   begin
      DynamicLabelY.Left       := 0;
      DynamicLabelY.Top        := 0;
      DynamicLabelY.Visible    := True;
      DynamicLabelY.Align      := alRight;
      DynamicLabelY.Width      := 40;
      DynamicLabelY.Font.Size  := 8;
      DynamicLabelY.Font.Color := clBlue;
      DynamicLabelY.Parent := DynamicForm;
   end;
   /////////////////////////////////////////////////////////////////////////////
   /////////////////////////////////////////////////////////////////////////////
   DynamicTimer                := TTimer.Create(self);
   with DynamicTimer do
   begin
      DynamicTimer.Interval    := 1;
      DynamicTimer.Enabled     := True;
      DynamicTimer.OnTimer     := DynamicTimerProc;
      Parent := DynamicForm;
   end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure TMainForm.DynamicTimerProc(Sender : TObject);
begin
   DynamicLabelX.Caption := 'X: ' + IntToStr(Mouse.CursorPos.X);
   DynamicLabelY.Caption := 'Y: ' + IntToStr(Mouse.CursorPos.Y);
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

end.
4  COMMENTS
  • Profile
    김철홍 2004.05.04 17:56
    잘하셨는데요.. 다만 실행시키고 보이지 않는 건  Form Size가 너무 작아서 그런거랍니다. form의 Width, Height를 해상도와 맞춰보세요..그럼 화면에 꽉차서 나올거고요.. 그런식으로 Form  Size를 조절하시면 됩니다.
    일단 해상도를 1024(width), 768(height)을 기준으로 아래처럼 해보세요.

    procedure TMainForm.FormCreate(Sender: TObject);
    begin
       DynamicForm                 := TForm.Create(self);
       with DynamicForm do
       begin
          DynamicForm.FormStyle    := fsStayOnTop;
          DynamicForm.Width        := 1024;         // Form Width
          DynamicForm.Height       := 768;          // Form Height
          DynamicForm.Color        := clBtnFace;
          DynamicForm.Visible      := True;
    //      DynamicForm.OnDestroy     := DynamicFormDestroyProc;
       end;

  • Profile
    영원한초짜 2004.05.04 23:31
    우선 잘했다고 칭찬까지 해주셔서 무척 감사드리고
    답변주셔서 감사 드립니다 (__*)

    그런데 저는 아래소스와같이 해상도에 맞춰 해봐도 계속 안보여지네요...
    (동적폼 부분 코드만...)

    아무래도 제 짧은 소견이지만, 폼크기와는 상관없나 봅니다 T^T

    뭔가 문제가 있는듯 싶긴한데..이것때문에 지금 몇시간째 T^T 흑흑...

    대체 뭐가 잘못됐는지 찾을 길이... 아...머리 빠지네요 T^T

    타이머 코드 라벨코드 삭제해도 그렇고...

    결국 폼에서 문제인듯 싶긴 한데...쫍...

    아시는 분 제발 가르쳐 주십시오...T^T


    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;

    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        DynamicForm : TForm;
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    procedure TForm1.FormCreate(Sender: TObject);
    begin
       DynamicForm                 := TForm.Create(self);
       with DynamicForm do
       begin
          DynamicForm.FormStyle    := fsStayOnTop;
          DynamicForm.Width        := 1024;
          DynamicForm.Height       := 768;
          DynamicForm.Color        := clBtnFace;
          DynamicForm.Visible      := True;
       end;
    end;

    end.
  • Profile
    최용일 2004.05.05 00:59
    안녕하세요. 최용일입니다.

    맨 마지막 줄에서 폼을 띄워주세요...

    procedure TForm1.FormCreate(Sender: TObject);
    begin
        DynamicForm                 := TForm.Create(self);
        with DynamicForm do
        begin
            DynamicForm.FormStyle    := fsStayOnTop;
            DynamicForm.Width        := 1024;
            DynamicForm.Height       := 768;
            DynamicForm.Color        := clBtnFace;
            DynamicForm.Visible      := True;
        end;
        DynamicForm.Show;
    end;

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

  • Profile
    영원한초짜 2004.05.05 02:35
    질문올리기전 해볼 것은 이것저것 다 해봤는데.. (제가 아는 한도까지 ^^)

    왜 안되는지 몇시간동안 델파이랑 씨름하다
    혹시나 해서 결국 델파이를 다시 깔아봤습니다...
    (사용하고있는 버전이 7.0이거든요...)

    그랬더니 엄청 화나던데요? T^T

    초초초짜이긴 하지만 저도 델파이를 쓰는 유저로서 델파이탓 하기도 뭐하고 T^T

    다시 깔았더니 잘되데요 T^T 아휴...속상해 미치겠네요...

    이것땜시 까묵은 시간이 대체 얼마야...

    다른분 혹시나 저 같은 경우 발생하게되면 델파이부터 다시 깔아보세요 T^T

    왜 이런 현상이 나왔는지 밝혀진건 없고...

    앞으로는 이런 오류가 없었으면 하네요 T^T

    아우 눈물나...짜증나기도 하지만 한가지 알게됐으니

    다음부턴 헛고생하지 않아도 되겟네요 T^T

    답변주신 분들 깊이 감사드립니다...^^

    그럼 즐프하세요 ^^;
    • 뭉치
    • 2004.05.05 02:39
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박수영
      2004.05.06 17:56
      보통은 DB의 패스워드는 건드리지 않고 user 테이블을 하나 두어서 관리를 하던구요...디비의 패스워드...
    • 정승운
      2004.05.05 02:44
      DB를 외부에 노출시킴으로서 발생되는 문제입니다. 실제로 id나 암호가 노출되는 문제보다 외부에서 직접 ...
    • 미소^^
      2004.05.05 03:59
      ..
    • 이선행
    • 2004.05.05 02:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김철홍
      2004.05.06 19:27
      999\.999\.999\.999;1 마지막 부분에서   .\999;1이 아니고 \.999;1 으로 써야겠지요.
    • 엄문용
    • 2004.05.05 01:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • [勳]후니
      2004.05.06 18:13
      시리얼 통신쪽을 공부 하셔야 할꺼 같네요.. 우선 통신에선 일반적으로 네트워크를 이용하여 소켓 통신...
    • 너구리
      2004.05.05 01:31
      이와 관련된 답변은 많이 있습니다. Sender로 찾으셔도 나올거 같구요.. 아니면 Components로 찾으셔...
    • Crazy
      2004.05.05 02:02
      1) for i := 0 to ComponentCount - 1 do    begin       &nbs...
    • 조우택
    • 2004.05.04 23:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • help me
    • 2004.05.04 19:07
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김진용
      2004.05.04 22:04
      procedure TForm1.SortStringgrid(Grid: TStringGrid; byColumn: LongInt;  ascending: Bool...
    • help me
      2004.05.05 01:13
    • Crazy
      2004.05.05 02:59
      이건 이해가 가실지??? 델파이코딩이 아니라 pl-sql 이거든요? 로직보시면 아실겁니다. 참고로 p_GUBUNS...
    • 김철홍
      2004.05.04 19:10
      제가 잘은 모르지만 2000이나 XP에서 잘 돌아간다면 그건 OS의 문제가 아닌거 같은데요. 실행시키는데 문...
    • 홍봉기
    • 2004.05.04 17:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김철홍
      2004.05.04 17:56
      잘하셨는데요.. 다만 실행시키고 보이지 않는 건  Form Size가 너무 작아서 그런거랍니다. form...
    • 영원한초짜
      2004.05.04 23:31
      우선 잘했다고 칭찬까지 해주셔서 무척 감사드리고 답변주셔서 감사 드립니다 (__*) 그런데 저는 아래...
    • 최용일
      2004.05.05 00:59
      안녕하세요. 최용일입니다. 맨 마지막 줄에서 폼을 띄워주세요... procedure TForm1.FormCreate(Send...
    • 영원한초짜
      2004.05.05 02:35
      질문올리기전 해볼 것은 이것저것 다 해봤는데.. (제가 아는 한도까지 ^^) 왜 안되는지 몇시간동안 델파...
    • 맑은물
    • 2004.05.04 12:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.05.05 03:05
      답변이라기 보다는 그럼 아싸리 퀵리포트 폼에 쿼리 하나 두고서 그 쿼리에 값을 출력할 자료만 넣는것은 ...
    • 성지현
    • 2004.05.04 04:30
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 프리맨
      2004.05.04 20:12
      Class는 붕어빵 기계(?) 입니다. 여기에 밀가루 반죽(리소스)을 넣고 구으면.. 붕어빵(인스턴스)이 나...
    • 너구리
      2004.05.04 20:40
      붕어빵기계의 상위 클래스 빵기계 클래스가 있습니다. 빵기계 클래스에는 내용물변수와 틀모양변수와 (C...
    • 김민웅
    • 2004.05.04 04:05
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 미러
    • 2004.05.04 02:45
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 프리맨
      2004.05.04 19:39
      StrPos를 써보세요. function StrPos(const Str1, Str2: PChar): PChar; StrPos는 PChar를 사용하기 ...
    • 김철홍
      2004.05.04 18:54
      그냥 허접하게 만들어봤네요. Str이라는 문자열에서 '1'이라는 문자를 찾으려고 할때 3번째 문자의 위치를 ...
    • 김도형
      2004.05.04 02:59
        nPos := pos( 's' , sStr ) + 2; 이렇게 하면 어떨까요 ^^;; 답변이 되지 않았다면 ...
    • 미러
      2004.05.04 03:01
    • 김도형
      2004.05.04 03:21
      procedure TForm1.Button1Click(Sender: TObject); var   sStr : string;   nI...
    • 김도형
      2004.05.04 03:28
      procedure TForm1.Button1Click(Sender: TObject); var   sStr : string;   nI , n...
    • 박수영
    • 2004.05.04 01:51
    • 2 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2004.05.04 02:23
      procedure TForm1.Button1Click(Sender: TObject); var   Rect : TRect; begin   ...
    • 박수영
      2004.05.05 00:18
    • 홍길동
    • 2004.05.03 23:11
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 전대식
    • 2004.05.03 23:09
    • 0 COMMENTS
    • /
    • 0 LIKES