Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[7798] [질문] 컴포넌트 제작에 관련된..... 질문
찌요리~~ [barleytea] 708 읽음    2001-12-24 15:28
TPageControl 과 TToolBar 컨트롤에 각 각 TTabSheet, TToolButton 을 만들고

Object Treeview 윈도우를 보면, 다른 컨트롤 과는 약간 틀린점이 보입니다

TabSheet1,TabeSheet2.. 혹은 ToolBar1,ToolBar2.. 등이 반투명한 흐린색으로

표시되죠. 그리고 이것들은 Copy&Paste 가 안되는 넘들입니다.

( 이거 아무렇지 않게 보여두 실제 컴포넌트 만들때 보니깐 요상한 겁니다. ㅡ_ㅡ;; )


그럼 본론으로 들어가서, 위에꺼랑 비슷하게 만들려고 하는 컴포넌트가 있습니다.

컴포넌트 만들때 컴포넌트 에디터를 하나 만듭니다. 거기에 Verb하나를 추가하구요

거기다 IDesigner.CreateComponent 함수를 이용해서 IDE가 컴포넌트를 생성하도록 만들죠

일반적인 방법이긴 한데.... 문제는 위에꺼처럼 흐린색으로 표시가 안됩니다.

만들려구 하는 컴포넌트가 TPanel1 그리고 TTabSheet처럼 TPanel1에만 올라가는

컴포넌트가 TInplace 라구 하면 TInplace가 Copy&Paste가 되버리는 사태가 발생합니다.

음... 예를 들어 아래와 같은 코드가 있다면, (설명이 위에껄루 충분하긴 한데...쩝.. ㅡ_ㅡ)

부분 부분만 발췌해서 올립니다.


////////////////////////////////////////////////////////////////////
unit  Panel1;
{중략..}

  TInplace = class(TPanel)
  public
    constructor Create(AOwner: TComponent); override;
  end;

  TPanel1 = class(TPanel)
  private
    FInplaces: TList;
    function GetInplaces(Index: Integer): TInplace;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
     procedure Add(Inplace: TInplace);
    property Inplaces[Index: Integer]: TInplace read GetInplaces;
  end;

procedure TPanel1.Add(Inplace: TInplace);
begin
  FInplaces.Add(Inplace);
  Inplace.Parent := Self;
  Inplace.Visible : = True;
end;

//////////////////////////////////////////////////////////////////
unit RegPanel1;

{중략..}

procedure TPanel1Editor.ExecuteVerb(Index: Integer);
var
  NewComponent: TComponent;
begin
  case Index of
  0:  begin
        if not Designer.IsSourceReadOnly then
        begin
          NewComponent := Designer.CreateComponent(TInplace, nil, -1, -1, -1, -1);
           TPanel1(Component).Add(TInplace(NewComponent));
        end;
      end;
  1:  begin

      end;
  end;
end;
{중략... }

////////////////////////////////////////////////////////////////////////

폼 디자인시 위의 함수가 실행되게쪄?
그러면 Panel1 위에 Inplace1 이 살짝 올라갑니다~~~~ (여기까진 넘 쉬우니깐..히~~~ ^^)
근데... Inplace1에서 (Ctrl + X) 키를 누르고,
폼위에서 (Ctrl+V) 키를 누르면?

폼위에 Inplace1이 올라갑니다  ( ㅡ_ㅡ;;; 커헉~~~~ ) 리드 온리가 안되여
Obejct Treeview 에 반투명하게 보이게 컴포넌트 생성하는 방법이 있나영?


( 질문이 넘 길었군여... 읽어주셔서 감사 ^_____________^
  가능하면 답변두 부탁드려영~~~~ )


+ -

관련 글 리스트
7798 [질문] 컴포넌트 제작에 관련된..... 질문 찌요리~~ 708 2001/12/24
7801     Re:[질문] 컴포넌트 제작에 관련된..... 질문 박정모 798 2001/12/24
7810         Re:Re:[질문] 컴포넌트 제작에 관련된..... 질문 찌요리~~ 738 2001/12/26
7818             포기 포기~~~~ 찌요리~~ 570 2001/12/27
7816             엄... 너무 어려워요... ㅠㅠ;; 박정모 664 2001/12/26
7832                 [자답] 드뎌 알아버렸씀다~~~ 홍홍홍 찌요리~~ 804 2001/12/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.