|
pointer로 정의해 보세요.
참고로 C++ Builder 내에서는 클래스를 직접적으로 정의하여 사용하는 방식이 아니라 포인터를 이용한 접근방식을 사용하거든요. 그리고 pascal에서는 pointer형이 없습니다.
TMessageItem *mi; <= 이렇게...
홍지곤 님이 쓰신 글 :
:
: 델파이에서 이렇게 선언 된 것을 빌더로 고치는 중인데 한가지 막히는
: 부분이 있습니다.
:
: procedure TMainForm.MsgSimulator1StopRecord(Sender: TObject);
: var
: i : integer;
: mi : TMessageItem; <------------- 막히는 부분
: s : string;
: begin
: StopBut.Enabled := False;
:
: for i := 0 to MsgSimulator1.Messages.Count-1 do begin
: mi := MsgSimulator1.Messages[i];
:
: s := Format('Msg: %3d X: %4d Y: %4d Key: %4.4x Delay: %4d', [integer(mi.Msg), mi.PosX, mi.PosY, mi.VkKey, mi.Delay]);
: Memo1.Lines.Add(s);
: end;
: end;
:
: end.
:
: //---------------------------------------------------------------------------------
: void __fastcall TForm1::MsgSimulator1StopRecord(TObject *Sender)
: {
:
: int i;
: TMessageItem mi; ----------->이렇게 했더니 되지 않습니다.
: String s;
:
: StopBut->Enabled = False;
:
:
: for (i=0; i=MsgSimulator1->Messages->Count-1; i++)
: mi = MsgSimulator1->Messages[i];
: s = Format("Msg: %3d X: %4d Y: %4d Key: %4.4x Delay: %4d", [int(mi->Msg), mi->PosX, mi->PosY, mi->VkKey, mi->Delay]);
: Memo1->Lines->Add(s);
: }
:
: //-----------------------------------------
:
: TMessageItem 이게 *.pas에서 *.hpp로 바뀐 것을 보니
: TCollectionItem 클래스로 되어있는것 같습니다.
: 어떻게 MsgSimulator1StopRecord 부분에서 선언해야
: 하는지요? 답변 부탁드립니다.
:
: //-- user supplied -----------------------------------------------------------
:
: namespace Msgsimulator
: {
: //-- type declarations -------------------------------------------------------
: #pragma option push -b-
: enum TWMMessage { mmMouseDown, mmMouseUp, mmMouseMove, mmKeyDown, mmKeyUp };
: #pragma option pop
:
: class DELPHICLASS TMessageItem;
: class PASCALIMPLEMENTATION TMessageItem : public Classes::TCollectionItem
: {
: typedef Classes::TCollectionItem inherited;
:
: protected:
: #pragma pack(push, 1)
: tagEVENTMSG em;
: #pragma pack(pop)
:
: TWMMessage FMsg;
: unsigned FDelay;
: int FX;
: int FY;
: int FKey;
: int FHWND;
: Controls::TMouseButton FButton;
: void __fastcall Fill_EM_From_Props(void);
: void __fastcall Fill_Props_From_EM(void);
:
: public:
: __fastcall virtual TMessageItem(Classes::TCollection* Collection);
: __property int HWND = {read=FHWND, write=FHWND, nodefault};
:
: __published:
: __property TWMMessage Msg = {read=FMsg, write=FMsg, nodefault};
: __property int PosX = {read=FX, write=FX, nodefault};
: __property int PosY = {read=FY, write=FY, nodefault};
: __property int VkKey = {read=FKey, write=FKey, nodefault};
: __property unsigned Delay = {read=FDelay, write=FDelay, nodefault};
: __property Controls::TMouseButton Button = {read=FButton, write=FButton, nodefault};
: public:
: #pragma option push -w-inl
: /* TCollectionItem.Destroy */ inline __fastcall virtual ~TMessageItem(void) { }
: #pragma option pop
:
: };
:
: 이 밑에 부분은 생략
:
:
:
: //---------------------------------------------
:
:
: 그럼..감사합니다..
|