Q&A

  • 폼에 컴포넌트 배치하면 왜 모두 published로 가나요?

이번에 어찌어찌하여 델파이를 처음으로 하게 되었는데... 정말 이해가 안되는 것이 있어서 오늘 가입하고 질문 올립니다.


MyForm이라는 폼을 만들고 거기에 버튼을 하나 올리고, 버튼에 클릭이벤트를 달았습니다.

제 생각엔 private 쪽에 버튼이랑 이벤트 프로시저가 생겨야 하는거 같은데 왜 published 쪽에 생기나요?

아래 소스처럼 생기네요. 한 폼에 컴포넌트를 수십개도 넘게 배치하는 일이 자주 있을텐데... 헐~~ 제가 무엇을 모르는건가요?? 아무리 찾아봐도 모르겠네요. 도움 부탁드립니다. 


참고로 Delphi 2007 을 사용하고 있습니다.




unit uMyForm;


interface


uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;


type

  TMyForm = class(TForm)

    btn1: TButton;

    procedure btn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;


var

  MyForm: TMyForm;


implementation


{$R *.dfm}


procedure TMyForm.btn1Click(Sender: TObject);

begin

      ShowMessage('테스트');

end;


end.


4  COMMENTS
  • Profile
    zeliard 2013.01.23 20:00

    published에 저장되는 이유는 이 정보들이 폼파일(.dfm)에 저장되고 디자인시에 RTTI를 이용해서 여러가지 컴포넌트들의 속성들을 제어하기 위해서입니다.

    그냥 간단하게 델파이의 Object Instpector에 표시하기 위해서 사용한다라고 생각하시면 됩니다.

  • Profile
    스쳐도드라이브 2013.01.23 22:58

    답변 감사드립니다.


    그런데 TForm1과 TForm2가 있고, TForm1에는 btn1 이라는 이름으로 버튼이 있다고 했을 때

    TForm2에서 


    var

    form : TForm1

    begin

    form.  <= 이렇게 쩜(.)을 누르는 순간 btn1 도 나오자나요. 안나오게 할 수는 없을까요?

    end;


    ----------------------------------------------------------------

    예를 들어 닷넷에서는 델파이의 Object Inspector와 같은 속성창에도 나타나지만, 코딩에서는 btn1이 기본적으로 private 이어서 코딩시에 쩜을 눌러도 안 보이는데.. 델파이에서는 안되나요???

  • Profile
    zeliard 2013.01.24 20:17

    옵션에서 Code Insight기능을 끄시면 됩니다만... Published영역에 있는 것들만 안나오게 하는 기능은 없는것 같습니다.

  • Profile
    스쳐도드라이브 2013.01.24 20:27

     Code Insight 기능을 끌수는 없고 ~

    아.... 매우 유감이네요...~~ 어쩔수없죠.. 

    답변 감사드립니다.

    • 민환민준빠
      2015.07.02 18:44
      자체 해결 Panel 이 문제네여 .. -_-;;;
    • 바람순이
      2015.06.10 23:38
      Mozilla Firefox(35.0.1)에서 글 및 댓글을 달았습니다.
    • JangHeeJin
    • 2015.06.03 03:48
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.06.03 12:01
      http://codeverge.com/embarcadero.delphi.general/better-code-for-writing-reading-th/1067762 를 참고해...
    • JangHeeJin
      2015.06.04 01:21
      답변감사합니다 저기 나오는 함수들중 아무거나 사용해도 무관한건가요? 비슷한 함수 들이 많은거같...
    • 이정욱
      2015.06.04 03:45
      시도해보시는것이 기술을 가장 빨리 습득하는 방법입니다.
    • JangHeeJin
      2015.06.05 02:50
      485방식으로 읽으니 이런식으로 데이터가 올라오는데 왜 그런건가요?
    • 이정욱
      2015.06.06 01:16
      소스를 봐야 알 수 있을 듯 합니다. 참고로 시리얼 통신에서는 맞춰줘야할 것들이 있습니다. 컴포넌트로 ...
    • 바람순이
      2015.06.10 23:52
      리더기에서 순수하게 RF-Card 데이터만 넘어오는것이 아니고 Header도 같이 넘어옵니다. 그리고 데이터는 ...
    • 바람순이
      2015.06.10 23:59
      procedure Tform1.VaCommRxChar(Sender: TObject; Count: Integer);var rChr: Char;    Cnt: integer;    s...
    • 이정욱
      2015.05.29 10:20
      Delphi 2010 이 최신 업데이트까지 다 입혀진 상태여야 합니다. 한번 확인해 보세요~
    • 이정욱
      2015.05.26 18:08
      LinePen.Width 속성을 이용해 보세요~
    • 난이화
      2015.05.27 15:06
      답변 감사 합니다. 그러나 Chart1.Series[30].LinePan.width 나 Chart1.SeriesList[1].LinePan.Width ...
    • 이정욱
      2015.05.27 21:38
      (Chart1[0] as TLineSeries).LinePen.Width := 4;  이런식으로 한번 사용해 보세요~
    • 난이화
      2016.10.20 02:20
      답변이 아주 늦어 죄송합니다.  감사 합니다.
    • 이정욱
      2015.05.23 09:16
      http://www.devtools.co.kr/m_mall_detail.php?ps_goid=125&ps_goid=125 을 이용하시면 되실 듯 ...
    • ULP
    • 2015.05.05 22:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • ULP
      2015.05.05 23:07
      var  F : TFileStream;  buf : Array of Char;begin  F := TFileStream.Create('파일 명',fmOpenRead);  tr...
    • 이정욱
      2015.05.06 08:52
      아.. 몰아서 넣으셨다는 뜻이 여러개의 동적배열의 크기를 미리 메모리를 확보해 놓으셔서 그러셨던것 같습...
    • 김미경
    • 2015.05.05 00:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.05.05 10:19
      TAdvStringGrid라면 TMS사의 컴포넌트인데, 꽤 전통있고 유명한 컴포넌트 죠. 특히 바로 이 그리드 때문에...
    • 이정욱
      2015.04.22 09:05
      OnResize 이벤트에서 크기에 맞게 다시 그려주세요..
    • 이정욱
      2015.04.22 09:35
      Option에서 라이브러리의 Search Path 에 해당 경로를 추가해보십시오.
    • 횬이
    • 2015.03.27 02:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.03.27 09:40
      일단 DataSource 라는 개념을 이해 하시면 됩니다. TTable 이나 TQuery는 Dataset 이라는 것을 알아두시...
    • 횬이
      2015.03.27 17:42
      안녕하세요~ 설명해주셔서 감사합니다... 근데 DataSource Dataset에 TQuery로 설정을하게되면 "datasourc...
    • 이정욱
      2015.03.25 06:00
      http://blog.dummzeuch.de/2013/11/10/delphi-20052006-on-windows-8-1/  위 사이트를 참고 하시면...
    • 동키호테
      2015.03.25 18:10
      답변 감사합니다. 저도 그 링크는 보고 따라서 해봤는데, 안 되더라구요. 그래서, embarcadero 에 문의를...
    • jin
    • 2015.03.17 18:54
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.03.19 08:44
      값을 할 당 하시는 부분이 어느 부분이신지요...? 그냥 따옴표로 묶어서 하시는것인지, 아니면 변수를 넣...
    • jin
      2015.03.19 18:06
      소스는 아래와 같습니다. 스레드를 사용하지 않으면 잘되는데 스레드를 사용하면 변수 값이 변경됩니다.pro...
    • 이정욱
      2015.03.20 03:15
      음... 이상하네요. 저는 델파이 2007을 사용하는데 변수값이 변경되지 않고 잘 넘어 옵니다... 언어적으로...
    • 쿠로로
    • 2015.03.14 03:09
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.03.19 08:45
      그냥 Uses 절에 넣으시면 됩니다... 물론 해당 PAS파일이 버전에 맞게 잘 작성되어있다면 말이죠...
    • 쿠로로
      2015.03.23 05:07
      .pass파일의 경로는 어떻게 해야 하나요? uses절에 넣는다고 모든 경로를 검색할꺼 같지는 않습니다...
    • 이정욱
      2015.03.24 04:50
      프로젝트와 같은 경로에 있던지, 아니면 그 유닛이 있는 경로를 Option 에서 Library Search Path 에 추가...
    • 이정욱
      2015.03.04 07:11
      한글 데이터들을 유니코드로 변환해 놓으시던지, 아니면 조회 전에 한글을 안시코드로 변환 후 쿼리를 해야...
    • phono
      2015.03.03 08:09
      gdb파일이 쉽게 깨지는 파일이 아닙니다. 제 추측으론.. db를 핸들링 하실때..  db쪽에 커밋이 바로 작동...
    • 카카오톡
      2015.03.13 18:56
      감사합니다. 결국 엑셀에 있는데이터 다시 올리는  프로그램 만들어서 올렸네요 ㅎㅎ 감사해요
    • 이정욱
      2015.01.30 06:20
      Main 폼에 사용하신 ApplicationEvent 컴포넌트 라는것에서 다 먼저 가져가는것 같네요. 모달폼을 띄우기 ...
    • 윤박사
    • 2014.04.01 03:31
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2014.03.25 03:34
      1. 코딩중 단축키 Ctrl+Space , Ctrl+Shift+Space 로 코드컴플레이션, 툴팁 심볼 인싸이트 같은 코드 인싸...
    • gandus
      2014.03.25 06:52
      호출하는 함수에서 para3의  para2 구조체에 반환값을 줘서요
    • gandus
      2014.03.25 06:56
      C로 제작된 dll을 쓰는데, 소스로 확인해보니 c로 쓰레기값이 넘어가서...
    • 이정욱
      2014.03.25 08:14
      dll 을 호출하기 위해 선언한 부분을 알려주셔야 할 듯 합니다. cdecl 인지 stdcall 인지...
    • gandus
      2014.03.25 18:14
      Function 함수4(m_Align_Data : T_Align_Data ; var m_Align_Result : T_Align_Result) : Integer  cdecl; ...
    • 이정욱
      2014.03.26 02:37
      그 DLL의 헤더 부분 및 구조체도 알려주셔야 합니다~ 그리고 Record 를 Packed Record 로 변경해서 해보세요~
    • gandus
      2014.03.28 19:30
      LDC_ReadCalUVWPosition(LD_CAL_UVW *pStageCalUVW)LDC_WriteCalXY(LD_CAL_XY ViewL, LD_CAL_XY ViewR)LDC_...
    • • • •