Q&A

  • RegisterClasses 를 이용하여 from를 생성한후 퀵 레포트출력문에


이곳에서 항상 많은 도움을 받고 있습니다...

여기에서 구한 팁중에 RegisterClasses 를 이용하여 MDI 프로젝트를 수행 할수 있는 좋은 팁이 있는데
그팁의 내용은

(1) 차일드 유닛의 맨 아래에 다음라인을 추가한다.

initialization RegisterClasses([TForm2]);

컴포넌트에서 볼 수 있는 소스지요...클래스를 등록하면
'TForm2' 라는 클래스 이름으로 클래스를 찾을 수 가 있습니다.

(2) 이제 생성을 해보지요

function CreateChild(sClass : string):Boolean;
var MyFormClass : TFormClass;
WorkForm : TForm;
H : THandle;
begin
Result := True;
MyFormClass := TFormClass(GetClass(sClass)); //클래스를 찾아온다
if MyFormClass <> nil then begin
WorkForm := MyFormClass.Create(Application.MainForm);
end else Result := False;
end;
..........

메인 폼에서 Form2 := TForm2.Create(Self); 라고 생성했던 루틴을 지우고

CreateChild('TForm2');

이렇습니다....

이렇게 해서 Child를 만들었는데...문제는 퀵레포트에서
  
<!--CodeS-->

   Q_TITLE.Caption :=F_fa0280.Panel1.Caption;

<!--CodeE-->

이부분에서 에러가 발생합니다

RegisterClasses([TForm2]) 이렇게 생성한 차일드 폼의 컴포넌트의 프로퍼티를 알아 올수 있는 방법이
없을 까요....?












4  COMMENTS
  • Profile
    최용일 2005.07.05 07:06
    안녕하세요. 최용일입니다.

    Form2 := TForm2.Create(Self);

    위에코드는 Form2란 변수에 객체가 생성된 메모리 레퍼런스가 들어가서 사용을 할 수 있게 됩니다.

    그런데 2)에서는 Form2대신에 WorkForm이란 변수에 레퍼런스가 들어가죠. WorkForm은 지역변수이므로 함수가 끝난 뒤에 변수는 사라집니다. TForm2 형태의 객체는 메모리에 존재하지만 지역변수를 썼기 때문에 접근할 수 있는 반법이 사라진겁니다. 물론 WorkForm에 객체의 레퍼런스를 넣고 접근은 Form2로 하셨겠죠...

    WorkForm대신에 Form2를 쓰셔야지 똑같은 상황이 됩니다.

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

    WorkForm
  • Profile
    강정구 2005.07.05 07:36

    너무도 빠른 답변에...놀랬습니다...커피 쏟을뻔 했습니다....
    먼저 친절한 답변에 감사를 드립니다.

       그럼 TForm2 라는 형태의 객체에 접근할 수 없다는 말씀이신지....

    WorkForm대신에 Form2 를 쓴다면 각각의 다른 Form3 ,Form4 이런것들도
    다 써주어야한다는 말씀인지... 아직 실력이 많이 부족하다는 것을 느낍니다..

    늦은 시간임에도 불구하고 답변해 주셔서 감사 합니다
  • Profile
    최용일 2005.07.05 09:35
    Form2를 쓰든 Form3를 쓰든... 메모리에 생성된 객체를 참조할 땐 변수를 이용합니다. 또한 그 객체를 참조할려면 레퍼런스가 변수에 할당이 되어야 하죠. 그냥 생성만 한다고 해서 자동으로 그 변수에 값이 들어가지는 않습니다.

    맨처음 아래 예제가 이상이 없었다고 하셨는데... 당연히 아래 코드가 실행되기 전에 F_fa0280에 객체를 할당하는 코드가 먼저 실행되었기 때문에 이상이 없었던겁니다.

       Q_TITLE.Caption :=F_fa0280.Panel1.Caption

    님의 코드는 TForm2란 객체를 생성했지만 외부에서 참조할 수 있는 방법을 제공하지는 않습니다. 일종의 메모리릭이죠... 공중에 붕 떠있는...

    ^^

  • Profile
    강정구 2005.07.05 10:04
    그 공중에 떠있는걸 찾아야 겠군요.....
    친절한 답변에 감사 드립니다.....
    건승 하세요.....
    • 서정길
    • 2005.07.06 02:02
    • 4 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.07.06 10:52
      간단히 구현가능할줄 알았더니..은근히 ... 리소스 자료실에 간단한 셈플하나 올려두겠습니다 참고하...
    • 서정길
      2005.07.06 20:46
      덕분에 해결했습니다~ ^^ 그런데 TWincontrolForm 은 뭔가요? 폼 젤 위에 있던데... 행복하세요~ ※ 아...
    • nilriri™
      2005.07.08 07:48
      TWincontrolForm 이게 뭘까요? 저도 궁금한데요..ㅡㅡ; 폼 젤위에 있다라??? 도대체 어디지?? ...
    • 하얀까마귀
      2005.07.06 03:59
      안녕하세요 하얀까마귀 입니다. 음.. 퀵은 말씀하신 3단 4단과 같은 리포트는 제대로 지원하지 않습니다...
    • 모영철
      2005.07.06 18:04
      DataBasename을 설정해 주시고.. StoredProcName의 콤보 박스버턴을 클릭하면 프로시져 목록이 나오니 ...
    • 타락천사
      2005.07.06 02:30
      안녕하세여. 타락임다.. 코드는 딱히 에러날건 없는거 같은데... 에러가 난다면.... Create 함수 때...
    • 천희택
      2005.07.06 05:00
      먼저 Create을 한후에 Active라는 property를 True 하면 CreateEvent하도록 했습니다. Create을 했으니&...
    • 천희택
      2005.07.06 19:04
      인터넷에서 구한 WinSock2.pas로 대체하니까 됩니다..
    • nilriri™
      2005.07.06 11:18
      레포트를 호출하는 폼에서.. 변수하나 선언하시고 초기화 하시고.. 레포트의 private 영영에도 변수를 ...
    • 김락원
      2005.07.06 19:21
      충실한 답변에 감사드립니다.. ^^ 근데.. 제가 델파이 초짜 이다 보니... 쪼금 이해를 못하는 부분이 있...
    • nilriri™
      2005.07.06 23:14
      이런식의 답변이 님께 해악이 될지도 모르겠지만.. 분석해 보세요.. 말로 설명하기가 어려워서 셈...
    • 김락원
      2005.07.07 22:06
      감사합니다... 덕분에 해결했습니다.. 코드보고.. 더욱 열씨미 공부하겠습니다...
    • 조혜진
    • 2005.07.05 23:33
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김성원
      2005.07.06 00:35
      참고만 하세여. 파라미터는 ':'콜론 뒤에 파라미터명을 주면 됩니다. 이름은 같아도 되지만 혼돈이 우려되...
    • 조혜진
      2005.07.06 00:39
      감사드립니다 !.
    • 이경범
    • 2005.07.05 23:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.07.06 18:01
      DDNS 서비스를 해주는 업체에 물어보시면 될것 같은데요. 요즘에도 공짜로 해주는데가 있나 모르겠지만....
    • 이대성
    • 2005.07.05 22:20
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Timeless
    • 2005.07.05 20:18
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 강정구
    • 2005.07.05 06:49
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.07.05 07:06
      안녕하세요. 최용일입니다. Form2 := TForm2.Create(Self); 위에코드는 Form2란 변수에 객체가 생성...
    • 강정구
      2005.07.05 07:36
      너무도 빠른 답변에...놀랬습니다...커피 쏟을뻔 했습니다.... 먼저 친절한 답변에 감사를 드립니다. ...
    • 최용일
      2005.07.05 09:35
      Form2를 쓰든 Form3를 쓰든... 메모리에 생성된 객체를 참조할 땐 변수를 이용합니다. 또한 그 객체를 참조...
    • 강정구
      2005.07.05 10:04
      그 공중에 떠있는걸 찾아야 겠군요..... 친절한 답변에 감사 드립니다..... 건승 하세요.....
    • nilriri™
      2005.07.05 09:34
      이거 말씀하시는건지?? QuickRep1.ShowProgress   속성값 조정해..보세요~
    • 모영철
      2005.07.05 05:22
      pppoe 방식은 IP를 유동으로 받기때문에 netsh로 강제적으로 바꿔주는건 안될테구요.. 이게 유동IP이...
    • henryloy
      2005.07.05 05:48
      먼저 힌트를 주신것에 대해 매우 감사를 드립니다. 말씀하신 폼의 컨트롤를 하는 것은 이미 해봤구요....
    • 박기웅
    • 2005.07.05 03:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.07.05 05:14
      Navigate 해서 페이지가 다 로딩되면 OnComplete인가? 하는 이벤트가 발생됩니다. 이건 페이지의 프...
    • 문혜윤
    • 2005.07.05 02:29
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김성진
      2005.07.05 05:52
      스캔한 정보에 대한 정보는 대부분 다 가능합니다. 검은부분의 분포도는 정확히 알 수 있을 지는 모르지만...
    • 문혜윤
      2005.07.07 13:30
      확실히 방향은 안보이지만 부딪혀 보고 걸리는 부분이 있으면 다시 조언 부탁드립니다.......
    • 박찬
    • 2005.07.05 00:11
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박기웅
    • 2005.07.05 00:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.07.05 09:27
      document 객체에서 innerhtml로 로딩된 리소스 문자열을 검사해서. 특정 문자열...비밀번호가 틀렸습...
    • 김세현
    • 2005.07.04 23:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2005.07.05 00:47
      무한대기 상태로 빠져도 프로그램 종료후 232 포트의 사용이 불가능한것은 232 쪽 프로그램에서 뭔가 ...
    • 김세현
      2005.07.07 17:54
      답변 감사 드립니다. 많은 도움이 되었습니다. 말씀하신대로 오라클 서버를 만들고 테스트 해바야 ...
    • 모영철
    • 2005.07.04 23:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.07.05 07:18
      안녕하세요. 최용일입니다. 길이는 4바이트입니다. 문자열 주소 - 4옵셋 에 길이가 들어 있습니다. S...
    • 김용호
    • 2005.07.04 23:19
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 배정은
    • 2005.07.04 23:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.07.05 09:43
      Static Text  라면 caption 속성에 텍스트를 보여주는 역활만 담당하는건가요? 용도를 몰라서...
    • Galaxy
    • 2005.07.04 20:44
    • 0 COMMENTS
    • /
    • 0 LIKES