Q&A

  • [급 질문] ActiveX Control에서 Double click 이벤트 에러...
제가 ActiveX Control을 만드는중에 문제가 발생하여 답을 구하고자 합니

다.

제가 TPanel을 Base Class로 하는 ActiveX Control을 생성하여 그위에 string

grid를 생성 하였습니다. 그리고 string grid의 Double Click Event를 만들려구

했더니 에러가 발생하여 Double Click Event를 생성 할수가 없더군요.

제소스를 좀 보시고 답변좀 부탁 드리겠습니다.



Test는 VB6.0에서 했습니다. String grid를 Double click했을 경우에

Control '' has no Parent Window라는 에러 메세지가 발생 합니다.





type

TShipSchedule = class(TActiveXControl, IShipSchedule)

private

{ Private declarations }

FDelphiControl: TPanel;

FEvents: IShipScheduleEvents;

g_spl : TSplitter;

procedure ClickEvent(Sender: TObject);

procedure DblClickEvent(Sender: TObject);

procedure ResizeEvent(Sender: TObject);

procedure g_SDblClickCell(Sender: TObject; Arow,Acol: Integer);



protected

{ Protected declarations }

procedure InitializeControl; override;

procedure EventSinkChanged(const EventSink: IUnknown); override;

procedure DefinePropertyPages(DefinePropertyPage:

TDefinePropertyPage); override;

function Get_Alignment: TxAlignment; safecall;

function Get_BevelInner: TxPanelBevel; safecall;

function Get_BevelOuter: TxPanelBevel; safecall;

function Get_BevelWidth: Integer; safecall;

function Get_BorderStyle: TxBorderStyle; safecall;

function Get_BorderWidth: Integer; safecall;

function Get_Caption: WideString; safecall;

function Get_Color: TColor; safecall;

function Get_Ctl3D: WordBool; safecall;

function Get_Cursor: Smallint; safecall;

function Get_DragCursor: Smallint; safecall;

published

property OnDbClick: TNotifyEvent read FOnDbClick write FOnDbClick;

end;

var

G_Schedule : tadvstringgrid; //그리드 1

G_stock : tadvstringgrid; // 그리드 2

implementation

{ TShipSchedule }



procedure TShipSchedule.InitializeControl;

begin

FDelphiControl := Control as TPanel;

FDelphiControl.OnClick := ClickEvent;

FDelphiControl.OnDblClick := DblClickEvent;

FDelphiControl.OnResize := ResizeEvent;

FDelphiControl.Ctl3D := FALSE;



//************************************//

//** 그리드 1 **//

//************************************//

G_Stock := tadvstringgrid.Create(nil);

with G_Stock do begin

parent := FDelphiControl;

FixedCols := 0;

Align := alRight;

DefaultRowHeight := 15;

ShowHint := TRUE;

Width := 120;

Cells[0,0] := '재 고';

OnGetCellColor := g_SGetCellColor;









//****************************************************//

//** Grid를 click하면 아래의 이벤트가 발생 하질 않고

//** Control '' has no Parent Window 라는 에러 메세지만 발생을

//** 합니다.

//** 저는 동적으로 생성된 그리드의 Double Click 이벤트를 생성 하구 싶습

니다.

//*****************************************************//

OnDblClickCell := g_SDblClickCell;













ONGetAlignment := g_SGetAlignment;

OnGridHint := g_SGridHint;

end; //with



G_spl := TSplitter.Create(nil);

with G_spl do begin

Align := alRight;

Parent := FDelphiControl;

end; //with



//************************************//

//**그리드 2 **//

//************************************//

G_Schedule := tadvstringgrid.Create(nil);

with G_Schedule do begin

parent := FDelphiControl;

Align := alClient;

FixedCols := 2;

ShowHint := TRUE;

DefaultRowHeight := 15;

Cells[0,0] := '일 자';

Cells[1,0] := '요 일';

OnGetCellColor := g_MGetCellColor;

OnGridHint := g_MGridHint;

end; //with

end;

procedure TShipSchedule.g_SDblClickCell(Sender: TObject; Arow,Acol:

Integer);

begin

Showmessage('Test Double Click');

end;



0  COMMENTS
    • 김광섭
      2000.02.10 19:42
      초짜베기 wrote: > 제목으로 보아 조금 에메모호하죠. > 질문 내용은 다음과 같습니다. > > 즉, 특정 ...
    • 김광섭
      2000.02.10 19:52
      무림식객 wrote: > 델파이 무림식객입니다. > 테이블을 가장 빠르게 초기화 하려는데 어떻게 하여야 하는...
    • 김천식
    • 2000.02.10 18:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김광섭
      2000.02.10 19:58
      김천식 wrote: > 테이블의 특정필드 내용을 다른 필드로 일괄 복사하려는데 가장 효과적으로 > 복사하는 ...
    • 김천식
      2000.02.10 23:57
      테이블에서 테이블간의 필드 복사가 아니고 하나의 테이블에서 필드간 자료 교환이 방법입니다. 즉, A필...
    • 이영헌
    • 2000.02.10 16:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김광섭
      2000.02.10 20:07
      이영헌 wrote: > 안녕하십니까? 좋은 아침입니다. > > 퀵레포트 양식이 전체 30줄 인쇄할 크기입니다. ...
    • 김광섭
      2000.02.10 20:22
      전성환 wrote: > 안녕하십니까? > > 저는 퀵레포트를 처음 사용해봅니다. > 이러한 질문을 하는게 부...
    • 이재식
      2000.02.10 12:47
      무지한 wrote: > isam파일인지 정확히는 모르겠지만 아마 isam인걸루 알구있는 > > 파일이 하나 있는데...
    • 무지한
      2000.02.11 11:58
      > Isam파일은 어떤 툴을 이용해서 직접 디비화 하는 방법은 모르겠는데요, > 혹 그것이 cobol로 되어있...
    • 델초
    • 2000.02.10 08:51
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 배꼽
    • 2000.02.10 08:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.02.10 10:39
      배꼽 wrote: > 게시판의 글을 쭉~~~ 읽어 보니요. > 버튼을 실시간으로 움직일 수 있는 것이 있더라고요...
    • 민석이
    • 2000.02.10 07:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.02.10 08:14
      민석이 wrote: > 다름이 아니라. 이미지 확대 축소를 할려고 하는데 > 화살표 키 값을 몰라 고생하고 있...
    • 초짜
    • 2000.02.10 05:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.02.10 06:09
      초짜 wrote: > 스피드버튼과 같은 윈도우 컨트롤에 키이벤트를 넣으려면 어찌해야 > 하나요? > 비튼 버...
    • 최종민
    • 2000.02.10 05:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.02.10 07:03
      최종민 wrote: > 아...매일 질문하는 종민입니다... > 제가 form을 두개 만들었답니다... > 둘다 자동생...
    • 허진
    • 2000.02.10 04:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.02.10 06:08
      허진 wrote: > 프로그램에서 환경을 변경한 후에 > > 종료를 하고 다시 프로그램을 실행하고 싶거던요....
    • 이재식
      2000.02.10 06:05
      허진 wrote: > 프로그램에서 환경을 변경한 후에 > > 종료를 하고 다시 프로그램을 실행하고 싶거던요....
    • 최재원
    • 2000.02.10 03:55
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.02.10 06:04
      최재원 wrote: > 수고 많습니다. > > 지금 데이타 백업하는 작업을 하고 있는데요, > > 타겟 디렉토...
    • 최재원
      2000.02.10 20:39
      먼저 답변해 주신것 감사합니다. 메세지 던져 주는 것은 가능한데요, 문제는 한번 드라이브를 읽고, ...
    • 구창민
      2000.02.10 21:47
      최재원 wrote: > 먼저 답변해 주신것 감사합니다. > > 메세지 던져 주는 것은 가능한데요, > > 문제...
    • 최재원
      2000.02.10 23:13
      먼저 이렇게 직접 테스트 까지 해주시고, 두번씩이나 답변해 주신것 정말 감사합니다. 제가 테스트 하던...
    • 엄화용
    • 2000.02.10 03:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김광섭
      2000.02.10 23:34
      엄화용 wrote: > * 디비그리드를 이용해서 자료사전을 만들었습니다. > 디비그리드에 레코드수를 20개...
    • 이재식
      2000.02.10 08:13
      엄화용 wrote: > * 디비그리드를 이용해서 자료사전을 만들었습니다. > 디비그리드에 레코드수를 20개...