°³¿ä
¸Å¸ÅÇϽô ºÐµéÀº º¸´Â °üÁ¡¿¡ µû¶ó ¶Ç´Â ½ÃÀå»óȲ¿¡ µû¶ó ´Þ¶óÁö´Â Factor¸¦ ¹Ù·Î Àû¿ëÇÒ ¼ö ÀÖ´Â Àü·«À» ±¸ÃàÇϰíÀÚ ÇÕ´Ï´Ù. GOMÀº °í¼öPlusÀÇ ½Ã¼¼/°èÁÂ/íƮµî ³»ºÎµ¥ÀÌŸ¸¦ Á¦°øÇÔÀ¸·Î½á ÀڽŸ¸ÀÇ ³ëÇϿ츦 ´ãÀº Àü·«¸¸µé¾î ÁÖ¹®À» ³¾ ¼ö ÀÖµµ·Ï µµ±¸¸¦ Áö¿øÇÏÀÚ´Â ÃëÁö¿¡¼­ ¸¸µé¾î Á³½À´Ï´Ù. COMÀ» ¸ð¸¥´Ù°í GOMÀ» »ç¿ëÇÏÁö ¸øÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ¹°·Ð ±âº»Áö½ÄÀ» °¡Áö°í ÀÖ´Ù¸é ´õ ÁÁ°ÚÁö¸¸ ±âº»ÀûÀ¸·Î´Â COMÀ̵ç COMÀ» ±â¹ÝÀ¸·Î ¸¸µç GOMÀ̵ç ÄÄÆ÷³ÍÆ®ÀÇ °³³ä»óÀ¸·Î´Â »ç¿ë¹ý¸¸ ¾Ë¸é ¾µ ¼ö ÀÖ°Ô ¸¸µå´Â °ÍÀÔ´Ï´Ù. °³³äÀûÀÎ ÀÌÇØ°¡ Èûµé´õ¶óµµ »ç¿ë¹ýÀ» ÀÍÈù´Ù´Â °³³äÀ¸·Î µû¶ó¿À½Ã°í µû¶óÇϱâµîÀÇ ¿¹Á¦¸¦ ÅëÇØ ½ÇÁ¦·Î ÀÛ¼ºÇϽø鼭 ¿¬½ÀÇÏ½Ã¸é µË´Ï´Ù.
GOM ±¸Á¶ ÀÌÇØÇϱâ
GOMÀÇ ±¸Á¶¸¦ ÀÌÇØÇϱ⿡ ¾Õ¼­ GOM Àüü ±¸Á¶¸¦ ´«¿¡ ÀÍÇô º¾´Ï´Ù.

GOM ±¸Á¶º¸±â

°í¼öÀÇ °ø°³µÈ °´Ã¼µé Áï GOMÀº À§ÀÇ ±×¸²Ã³·³ Æ®¸®±¸Á¶·Î ±¸Á¶È­µÇ¾î ÀÖ½À´Ï´Ù. GxServer¸¦ ÃÖ»óÀ§°´Ã¼·Î ÇÏ¿© ±× ¾Æ·¡·Î Å©°Ô´Â GxSymbolStore, GxTradeStore, GxChartStore°¡ ÀÖ°í °¢°¢ÀÇ ÇÏÀ§±¸Á¶¸¦ °®°í ÀÖ½À´Ï´Ù. ÀÌ ±¸Á¶¸¦ ´«¿¡ ÀÍÇô¾ß ÇÏ´Â ÀÌÀ¯´Â ´ÙÀ½°ú °°½À´Ï´Ù. ¿¹¸¦ µé¾î °èÁÂÀÇ ¿¹Å¹±ÝÀ» ¾Ë°í ½Í´Ù¸é GxServer °´Ã¼¸¦ ¾òÀº ÈÄ À̸¦ ÅëÇØ ÀÌ °´Ã¼ÀÇ GxTradeStore¸¦ ¾òÀ» ¼ö ÀÖ°í ´ÙÀ½À¸·Î GxAccounts¿Í GxAccountÀÇ °´Ã¼¿¡ Á¢±ÙÇÏ¿© ÇØ´çµÇ´Â °èÁÂÀÇ ¿¹Å¹±ÝÀ» ºñ·ÔÇÏ¿© Áõ°Å±Ý, ÁÖ¹®°¡´É±Ý¾×µîÀ» °¡Á®¿Ã ¼ö ÀÖÀ½À» ¾Ë±â À§Çؼ­ ÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ÄÚµå»óÀ¸·Î ÀÌÇØ¸¦ ÇØº¸¸é ¨Í,¨Î,¨Ï °´Ã¼¸¦ ´ãÀ» º¯¼ö¸¦ ¼±¾ðÇϰí GetObjectÇÔ¼ö·Î GOM¿¡ ¿¬°áÇÏ¿© °èÁÂÁ¤º¸¸¦ °¡Áö°í ¿À´Â ÄÚµå·Î °£´ÜÇÏ°Ô ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸µí GOM¿¡ ´ëÇÑ Æ®¸®±¸Á¶¸¦ º¸½Ã¸é¼­ °èÁÂÁ¤º¸¸¦ ¿øÇÑ´Ù¸é GxTradeStore¿¡°Ô Á¤º¸¸¦ ´Þ¶ó°í ÇÏ¸é µÇ°Ú±¸³ª¸¦ ÀÌÇØÇÏ½Ã¸é µË´Ï´Ù.

Option Explicit
Public mobjServer As GxServer --- ¨Í 'GOM ¼­¹öÀÇ Root Object¿Í ¿¬°áÇÒ °´Ã¼
Public mobjTradeStore As GxTradeStore --- ¨Î 'TradeStore¿Í ¿¬°áÇÒ °´Ã¼

Private Sub cmdExcute_Click()
Dim objAccount As GxAccount --- ¨Ï' °èÁ¸¦ ´ãÀ» °´Ã¼

On Error GoTo DoFail
Set mobjServer = GetObject(, "P2.GxServer") 'GOM ¼­¹öÀÇ Root Object ¿¬°á
Set mobjTradeStore = mobjServer.TradeStore 'TradeStore¸¦ ¿¬°á½ÃÄÑÁØ´Ù.

GoTo DoSuccess
Exit Sub

'¼­¹ö ¿¬°á ½ÇÆÐ½Ã ¸Þ¼¼Áö Ãâ·ÂÈÄ ³¡³¿
DoFail:
MsgBox "¼­¹ö¿Í ¿¬°áÇϴµ¥ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù"
Exit Sub

DoSuccess: 'Combo Box ÃʱâÈ­
cboAccount.Clear
'TradeStoreÀÇ °èÁ¸ñ·ÏÀ» Combo Box¿¡ ³Ö¾îÁØ´Ù.
For Each objAccount In mobjServer.TradeStore.Accounts
cboAccount.AddItem objAccount.Code
Next

'±âº»ÀûÀ¸·Î ù¹øÂ° °èÁ¸¦ ¼±ÅÃÇÕ´Ï´Ù.
If cboAccount.ListCount > 0 Then
cboAccount.ListIndex = 0
End If
End Sub
Private Sub cmdStop_Click()
mobjServer = Nothing
End Sub

ÀÌ¿Í °°Àº °´Ã¼°£ÀÇ °ü°è¸¦ ÀÌÇØÇØ¾ß ÇÏ´Â °ÍÀº GOMÀ» ÀÌ¿ëÇϴµ¥ ÇʼöÀûÀÔ´Ï´Ù.

GOM °´Ã¼ÀÇ ±¸¼º¿ä¼Ò
GOMÀÇ °´Ã¼¿¡´Â ¼Ó¼º(property)°ú ¸Þ¼Òµå(method) ±×¸®°í À̺¥Æ®(Event)·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.

¼Ó¼ºÀº ¸»±×´ë·Î °´Ã¼ÀÇ ¼Ó¼ºÀ» ÀǹÌÇÏ°í ¸Þ¼Òµå´Â °´Ã¼°¡ ¾î¶°ÇÑ ÇൿÀ» ¼öÇàÇÏ°Ô ÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. ¶ÇÇÑ À̺¥Æ®´Â ¾î¶°ÇÑ »óȲÀÌ ¹ß»ýµÇ¸é ¾Ë·ÁÁÖ´Â ±â´ÉÀ» ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î GxChartData °´Ã¼¿¡´Â ¼­¹ö·ÎºÎÅÍ Ã­Æ®µ¥ÀÌŸ¸¦ ¿äûÇÏ´Â DefineÀ̶ó´Â ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù. ÀÌ Define ÇÔ¼ö¸¦ ¼±¹°ÃÖ±Ù¿ù¹° 1ºÐºÀÀ» 100°³ °¡Áö°í ¿Í¶óÇϰí È£ÃâÇϸé DefineÇÔ¼ö´Â Symbol, Base, PeriodµîÀÇ ¼Ó¼º°ªµéÀ» º¯°æÇÏ°í ¼­¹ö¿¡ µ¥ÀÌŸ¸¦ ´Þ¶ó°í ¿äûÀ» Çϰí´Â Á¦ ÇÒÀÏÀ» ¸¶Ä¨´Ï´Ù. GOM¼­¹ö Áï °í¼öPlus¿¡¼­´Â DefineÀÇ ¿äûÀ» ¹Þ°í µ¥ÀÌŸ¸¦ ¼öÁýÇÏ¿© ¸¶Ä§³» Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÕ´Ï´Ù. ÀÌ ¶§ GxChartData °´Ã¼¿¡¼­´Â íƮµ¥ÀÌŸ°¡ ¼­¹ö·ÎºÎÅÍ µµÂøÇß´Ù¶ó°í OnDatarefreshed¶ó´Â À̺¥Æ®°¡ ¹ß»ýÇÏ°Ô µË´Ï´Ù. DefineÇÔ¼ö·Î ¼­¹ö¿¡ ¿äûÀ» Çß´ø Ŭ¶óÀÌ¾ðÆ®´Â ¿Ô±¸³ªÇϰí´Â ÀÎÁöÇϰí´Â íƮÀÚ·á°¡ ÁغñµÇ¾ú´Ù¶ó´Â Ready¼Ó¼ºÀ» True·Î ¸¸µé°í íƮ ±×¸²À» ±×¸®°Ô ÇØ¾ßÁö ¶Ç´Â ÆÄÀÏ¿¡ ÀúÀåÇØ¾ßÁö¸¦ ÀÛ¼ºÇÏ°Ô µË´Ï´Ù.

GOM ±¸Á¶µµ¸¦ º¸¸é GxChartData¸¦ »ç¿ëÇϱâ À§ÇØ GxChartStore °´Ã¼¸¦ ¾ò¾î¾ßÇϹǷΠ¾Æ·¡¿Í °°ÀÌ ¼±¾ðÇÏ´Â ¿¹ÀÔ´Ï´Ù.
Option Explicit
'GOM Server ¿¬°á Object
Public mobjServer As GxServer

'GxChartStore ¿¬°á Object
Public mobjChartStore As GxChartStore

´ÙÀ½°ú °°ÀÌ À̺¥Æ® ±¸µ¶À» À§ÇØ ÁغñÇÏ´Â ¿¹ÀÔ´Ï´Ù. À̺¥Æ®±¸µ¶À» À§ÇÑ ÀÚ¼¼ÇÑ ÀýÂ÷´Â µû¶óÇϱâÀÇ Ã­Æ®ºÎºÐÀ» ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.
Option Explicit

'¿©·¯°³ÀÇ Á¾¸ñµé¿¡ ´ëÇØ íƮ µ¥ÀÌŸÀÇ Event¸¦ ¹Þ±â À§Çؼ­ Ŭ·¡½º·Î ¸¸µé¾îÁÖ¾ú´Ù.
Public WithEvents mobjChartSink As GxChartData
GOMÀÇ ÃÖ»óÀ§°´Ã¼ ¾ò±â
MS-Excel ÀÇ °æ¿ì »ç¿ëÀÚ´Â WorkSheet °´Ã¼ÀÇ ÇÏÀ§ ÀÎÅÍÆäÀ̽º¸¦ ¹Ù·Î ¾òÀ» ¼ö ¾ø°í ÃÖ»óÀ§ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÏ¿© ÇÏÀ§ °´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ ¾ò½À´Ï´Ù. ÀÌ¿Í °°ÀÌ GOM °´Ã¼¸¦ »ç¿ëÇÏ·Á¸é ²À ÃÖ»óÀ§ °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽ºÀÎ IGxServer¸¦ ¾ò¾î¾ß ÇÕ´Ï´Ù.

ÀÌ ÃÖ»óÀ§°´Ã¼¸¦ ¾ò±â À§Çؼ­´Â ¿©·¯°¡Áö ¹æ¹ýÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¾Õ¼­ ¸»¾¸µå·ÈµíÀÌ GOMÀº Ãʱâ¹ÙÀεù(Early binding)°ú Èıâ¹ÙÀεù(Late binding)À» ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ´Â Dual Interface¸¦ Áö¿øÇÕ´Ï´Ù. ÀÌ ¸»Àº °³³äÀûÀ¸·Î´Â typeÀ» ÇÁ·Î±×·¥ ¸µÅ©ÇÏ´Â ´Ü°è¿¡¼­ È®Á¤ÇÏ´Â ¹æ¹ý°ú ½ÇÇà½Ã ŸÀÔ°áÁ¤À» ÇÑ´Ù´Â ÀǹÌÀÌÁö¸¸ »ç¿ë¹ý°üÁ¡À¸·Î¸¸ ÀÌÇØÇÑ´Ù¸é GOMÀÇ °´Ã¼¸¦ ¾ò±â À§Çؼ­ ŸÀԶ󸮺귯¸®¸¦ importÇÏ¿© ÃÖ»óÀ§°´Ã¼¸¦ ¾ò´Â ¹æ¹ý°ú VB¿¡¼­ÀÇ CreateObject GetObject, µ¨ÆÄÀÌÀÇ CreateOleObject GetActiveOleObject, MFCÀÇ CreateDispatch, WinAPI GetActiveObjectµîÀ» ÅëÇÏ¿© ÃÖ»óÀ§°´Ã¼¸¦ ¾ò´Â µÎ°¡Áö ¹æ¹ýÀ» ¸ðµÎ Áö¿øÇÑ´Ù´Â ¶æÀÔ´Ï´Ù.

Type Library·Î ÃÖ»óÀ§°´Ã¼ ¾ò±â
 

TypeLibrary Import Çϱâ
¸ÕÀú ÀÎÅÍÆäÀ̽ºÀÇ Å¸ÀÔµéÀÇ ¸í¼¼¼­ÀÎ p2.tlbÆÄÀÏÀ» importÇØ¾ß¸¸ ÀÎÅÍÆäÀ̽º¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
tlbÆÄÀÏÀ» import ÇÏ´Â ¹æ¹ýÀº °³¹ßÅø(Visual C++, Visual basic, Delphi...)¸¶´Ù ´Ù¸£¹Ç·Î °´ °³¹ßÅøÀÇ µµ¿ò¸»À» ÂüÁ¶ÇϽðųª [°øÀ¯Çϱâ]-[°¢ °³¹ß¾ð¾îÀÇ Å¬¶óÀ̾ðÆ®] ¸¸µé±â µµ¿ò¸»À» ÂüÁ¶ÇÏ½Ã¸é µË´Ï´Ù.

Delphi Sample
var
i : Integer;
aAccount : IGxAccount;
aGxServer : TGxServer;
aGxTradeStore : IGxTradeStore;
aGxAccounts : IGxAccounts;
begin
aGxServer := TGxServer.Create(Self);
aGxTradeStore := aGxServer.TradeStore as IGxTradeStore;

aGxAccounts := aGxTradeStore.Accounts as IGxAccounts;

for i:=1 to aGxAccounts.Count do
begin
aAccount := aGxAccounts[i] as IGxAccount;
Memo1.Lines.Add('early : ' + aAccount.Code);
end;
end;

IDispatch TypeÀÇ ÃÖ»óÀ§°´Ã¼ ¾ò±â
 

PROGID
GOM Server´Â WindowsÀÇ ½Ã½ºÅÛ ·¹Áö½ºÆ®¸®¿¡ ¸ðµç GOM classµéÀ» µî·Ï ÇÕ´Ï´Ù. °¢°¢ÀÇ GOM class´Â GUID¶ó´Â class ½Äº°ÀÚ¸¦ °¡Áý´Ï´Ù. À̸¦ CLSID À̶ó ÇÕ´Ï´Ù. ·¹Áö½ºÆ®¸®¿¡´Â °¢°¢ÀÇ CLSID°¡ ÇÁ·Î±×·¡¹ÖÀûÀÎ ½Äº°ÀÚÀÎ PROGID ¿Í ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù. GOM »ç¿ëÀÚ´Â PROGID¸¦ »ç¿ëÇÏ¿© GOMÀÇ ÃÖ»óÀ§ Object¸¦ »ý¼ºÇϰųª ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. GOM ÃÖ»óÀ§ ObjectÀÇ PROGID´Â 'P2.GxServer' À̸ç VB¿¡¼­ÀÇ CreateObject GetObject, µ¨ÆÄÀÌÀÇ CreateOleObject GetActiveOleObject, MFCÀÇ CreateDispatch, WinAPI GetActiveObjectµî¿¡¼­ À̸¦ PROGID¸¦ »ç¿ë ÇÕ´Ï´Ù.

Delphi Sample
var
i : Integer;
stmsg : string;
aGxServer, aAccounts, aAccount : Variant;
begin
try
aGxServer := GetActiveOleObject('P2.GxServer');
except
aGxServer := CreateOleObject('P2.GxServer');
end;

aAccounts := aGxServer.TradeStore.Accounts;
for i:=1 to aAccounts.Count do
begin
aAccount := aAccounts.Item[i];
Memo1.Lines.Add('late : ' + aAccount.Code);
end;
end;

´ëºÎºÐÀÇ GOM °´Ã¼´Â ÃÖ»óÀ§°´Ã¼¸¦ »ý¼ºÇÏ´Â ´Ü°è¿¡¼­ °°ÀÌ »ý¼ºÀÌ µÇ¾îÁý´Ï´Ù. GxTradeStore¿Í GxTradeStore, GxSymbolStore, GxServerInfo¸¦ Æ÷ÇÔÇÏ¿© Collection°´Ã¼ÀÇ °æ¿ì´Â ÀÚµ¿ »ý¼ºµË´Ï´Ù. ±×¸®°í ÇÁ·Î±×·¥ Á¾·á ½Ã±îÁö »õ·Î Ãß°¡µÇ°Å³ª Á¦°Å µÇÁö ¾Ê½À´Ï´Ù.

CollectionÀÇ ±¸¼º¿øÀÌ µÇ´Â °´Ã¼ÀÇ °æ¿ì´Â ÇÊ¿ä½Ã¸¶´Ù »ý¼º ½Ãų ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î »ç¿ëÀÚ°¡ »õ·Ó°Ô ÁÖ¹®À» ³¾ °æ¿ì GxOrder, GxConfirm, GxFill ObjectµîÀÌ GxOrders, GxConfirms, GxFillsµî Collection °´Ã¼¿¡ Ãß°¡µË´Ï´Ù. ÀÌ´Â »ç¿ëÀÚ°¡ Á÷Á¢ÀûÀ¸·Î ¼öÇàÇÒ ¼ö ¾ø°í ÁÖ¹®À» ÅëÇØ¼­ °£Á¢ÀûÀ¸·Î »ý¼º ½Ãų ¼ö ÀÖ½À´Ï´Ù.

GxTradeStore ÀÇ ÇÏÀ§ GxOrderHandler ObjectÀÇ °æ¿ì´Â IGxOrderHandlerÀÇ PutNewOrder, PutChangeOrder, PutCancelOrderµîÀÇ ¸Þ¼Òµå¸¦ ÅëÇØ GxOrderHandler ÇÏÀ§ÀÇ GxOrderReqs Collection Object¿¡ GxOrderReq Object¸¦ °£Á¢ »ý¼º ½Ãų ¼ö ÀÖ½À´Ï´Ù.

GxChartStore Collection Objectµµ GxOrderHandler¿Í ºñ½ÁÇÏ°Ô IGxChartStoreÀÇ Add ¸Þ¼Òµå¸¦ ÅëÇØ »õ·Ó°Ô GxChartData Object ¸¦ »ý¼º ½Ãų ¼ö ÀÖ°í Remove, RemoveByKey µîÀÇ ¸Þ¼Òµå¸¦ ÅëÇØ GxChartData Object µîÀ» Á¦°Å ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Collection °´Ã¼ »ç¿ëÇϱâ
Collection °´Ã¼´Â ±¸¼º¿øµéÀ» ¿©·¯°³ °¡Áö°í ÀÖ´Â ÁýÇÕ°´Ã¼¸¦ ¸»ÇÕ´Ï´Ù. GOMÀÇ Àüü±¸Á¶µµ¸¦ º¸½Ã¸é ÃÊ·Ï»öÀ¸·Î Ç¥½ÃÇÑ °´Ã¼µéÀº Collection°´Ã¼ÀÔ´Ï´Ù. ÀÌ´Â ±âÂ÷¸¦ ¿¬»óÇØº¸½Ã¸é µË´Ï´Ù. ±âÂ÷ ÇÑ´ë¿¡ 1È£Â÷, 2È£Â÷...10È£Â÷±îÁö ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù. Ư½Çµµ ÀÖ°í ½Ä´çÄ­µµ ÀÖ°í ÀϹݽǰú °°ÀÌ ¼Ó¼ºÀº Á» ´Ù¸£°ÚÁö¸¸ ±âÂ÷ ÇÑÄ­ÀÇ °ø°£ÀûÀÎ Àǹ̴ °°½À´Ï´Ù. ÀÌ·¸µí íƮ µ¥ÀÌÅ͸¦ °ü¸®ÇÏ´Â GxChartStore°æ¿ì 1¹ø GxChartData, 2¹ø GxChartData ...n¹ø GxChartData¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.

Automation¿¡¼­ÀÇ Collection Object ±Ç°í»çÇ×Àº IEnumVariant ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸç Add, Remove ¸Þ¼Òµå°¡ Á¸ÀçÇϸç _NewEnum, Item, Count ÇÁ·ÎÆÛƼ°¡ Á¸Àç ÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸ðµç GOM Collection °´Ã¼´Â _NewEnum, Item, Count¸¦ Áö¿øÇϸç À̸¦ ÅëÇØ VB, VBA µî¿¡¼­ For - Each ¹®, ´Ù¸¥ ¾ð¾î¿¡¼­µµ for ¹®À» ÀÌ¿ëÇÏ¿© ÀÌ ÁýÇÕüÀÇ °´Ã¼µéÀ» ¸ðÁ¶¸® Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª Add, Remove ÇÔ¼öÀÇ °æ¿ì´Â GxChartStore¿¡¼­¸¸ ±¸ÇöµÇ¾îÀÖ½À´Ï´Ù. ÀÌ Collection°´Ã¼ÀÇ ¼Ó¼ºµéÀ» »ìÆìº¸¸é _NewEnumÀº Enumeration ÀÎÅÍÆäÀ̽ºÀÎ IEnumVariant¸¦ ¾òÀ» ¼ö ÀÖ´Â ¼Ó¼ºÀÔ´Ï´Ù. ÀÌ´Â Collection°ú °°Àº ÇüÅÂÀÇ °´Ã¼´Â Ç¥ÁØÈ­µÈ ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇϵµ·Ï µÇ¾îÀִµ¥ À̸¦ Áö¿øÇÏ´Â ¼Ó¼ºÀ̶ó°í º¸½Ã¸é µË´Ï´Ù. Count¼Ó¼ºÀº ±âÂ÷¿¡ ¸îÈ£Â÷±îÁö ÀÖ´ÂÁö¸¦ ¾Ë ¼ö ÀÖ´Â ¼Ó¼ºÀÔ´Ï´Ù. ÀÌó·³ Collection¿¡ ¸î°³ÀÇ ±¸¼º¿øÀÌ ÀÖ´ÂÁö¸¦ ¾Ë·ÁÁÝ´Ï´Ù. ´ÙÀ½À¸·Î Item ¼Ó¼ºÀº Collection¿¡ Æ÷ÇԵǾî ÀÖ´Â °³º°±¸¼º¿øÀÇ ÀÎÅÍÆäÀ̽º¸¦ ¹ÝȯÇÕ´Ï´Ù. ±âÂ÷·Î ´Ù½Ã ¼³¸íÇÏÀÚ¸é Item[1]Çϸé 1È£Â÷ÀÇ °´Ã¼ÀÎÅÍÆäÀ̽º¸¦ Item[2]´Â 2È£Â÷ÀÇ °´Ã¼ÀÎÅÍÆäÀ̽º¸¦ ¹ÝȯÇÕ´Ï´Ù.

Item ÇÁ·ÎÆÛƼ¿¡ ÀÔ·Â ÆÄ¶ó¹ÌÅÍ´Â Variant ŸÀÔÀ̹ǷΠ¿©·¯ ŸÀÔÀÇ ÀÔ·ÂÀÌ °¡´ÉÇÕ´Ï´Ù¸¸ GOMÀÇ ¸ðµç Collection °´Ã¼¸¶´Ù Çã¿ëµÇ´Â ŸÀÔÀÌ ÁöÁ¤µÇ¾î ÀÖ½À´Ï´Ù. ¸ðµç GOM Collection °´Ã¼´Â long typeÀ» Áö¿øÇϴµ¥ long ÀԷ°ª¹øÂ°ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ¹ÝȯÇÒ ¶§ »ç¿ëµË´Ï´Ù. long ŸÀÔÀÇ °æ¿ì 1 ~ (Collection ÀÚüÀÇ 'Count' ÇÁ·ÎÆÛƼ°ª)±îÁö ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù. ÇØ´çÇÏÁö ¾ÊÀº Çü½ÄÀ» ÀÔ·ÂÇϰųª ¹üÀ§¸¦ ¹þ¾î³ª¸é NULLÀÌ ¹Ýȯ µÇ¹Ç·Î ÁÖÀÇ ÇÏ¿©¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ¿¹¿Ü·Î GxSymbolStoreÀÇ °æ¿ì´Â long ŸÀÔÀ̿ܿ¡µµ BSTR Çü½Äµµ Áö¿øÇÕ´Ï´Ù. Item ÆÄ¶ó¹ÌÅÍ¿¡ "10146"À» ÀÔ·ÂÇÒ °æ¿ì Code °¡ "10146"ÀÎ GxSymbolÀÇ IGxSymbol ÀÎÅÍÆäÀ̽º¸¦ ¹ÝȯÇÕ´Ï´Ù. GxStrikePricesÀÇ °æ¿ìµµ long °ªÀ̿ܿ¡ double°ªÀ» Áö¿øÇÕ´Ï´Ù. Item ÆÄ¶ó¹ÌÅÍ¿¡ 120.50 À» ÀÔ·ÂÇÒ °æ¿ì Çà»ç°¡°¡ 120.50 ÀÎ IGxStrikePriceÀ» ¹ÝȯÇÕ´Ï´Ù. ±×¸®°í Item ÇÁ·ÎÆÛƼ´Â ±âº» ¼Ó¼º À̹ǷΠVBÀÇ °æ¿ì SymbolStore.Item("10146")´ë½Å SymbolStore("10146")À¸·Î »ç¿ë °¡´ÉÇÕ´Ï´Ù. ÀÌ ±âº» ¼Ó¼ºÀº ´Ù¸¥ Language ¿¡¼­µµ ÀÌ¿ëÇÏ¿© Äڵ带 °£°áÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.

var
i : Integer;
aAccount : IGxAccount;
aGxServer : TGxServer;
aGxTradeStore : IGxTradeStore;
aGxAccounts : IGxAccounts; --- ' Collection °´Ã¼
begin
aGxServer := TGxServer.Create(Self);
aGxTradeStore := aGxServer.TradeStore as IGxTradeStore;

aGxAccounts := aGxTradeStore.Accounts as IGxAccounts;
for i:=1 to aGxAccounts.Count do --- ' 1~count¸¸Å­ item°¡Áö°í ¿À±â
begin
' aGxAccount.item[i]¸¦ °£°áÇÏ°Ô Ç¥Çö
aAccount := aGxAccounts[i] as IGxAccount;
Memo1.Lines.Add('early : ' + aAccount.Code);
end;
end;
IDispatchÇü ¼Ó¼º »ç¿ëÇϱâ
¼Ó¼º¿¡´Â º¸Åë long(Á¤¼ö), double(½Ç¼ö), BSTR(¹®ÀÚ¿­)µî ÀÏ¹Ý µ¥ÀÌÅÍÇüÀÌÁö¸¸ °´Ã¼°¡ ¼Ó¼ºÀÌ µÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù.
À̶§ °´Ã¼¼Ó¼ºÀÇ °æ¿ì´Â IDispatchÇüÀ¸·Î Á¦°øµÇ¹Ç·Î ½ÇÁ¦ ÀÎÅÍÆäÀ̽º ŸÀÔÀ¸·Î Çüº¯È¯ÇÏ¿© »ç¿ëÇÏ¼Å¾ß ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î À§ÀÇ GxPosition °´Ã¼¸¦ »ç¿ëÇÏ¿© ¾î¶² ¹Ì°áÁ¦¾àÁ¤¿¡ ÇØ´çÇÏ´Â °èÁÂÀÇ Áõ°Å±ÝÀ» ¾Ë°íÀÚ ÇÒ ¶§ Account ¼Ó¼ºÀ» Âü°íÇÏ¿© IGxAccount¸¦ ¾òÀº ÈÄ IGxAccountÀÇ Áõ°Å±Ý ¼Ó¼ºÀ» È£ÃâÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ¶§ GxPosition ¼Ó¼ºÁß AccountÀÇ IDispatch ¼Ó¼ºÀ» IGxAccount ŸÀÔÀ¸·Î Çüº¯È¯ÇÏ¿© °èÁÂÀÇ Áõ°Å±ÝÀ» »ç¿ëÇÕ´Ï´Ù.

´ÙÀ½Àº µ¨ÆÄÀÌÀÇ ¿¹ÀÔ´Ï´Ù.
var
aGxAccount : IGxAccount;
begin
aGxAccount := FGxPosition.Account as IGxAccount;
Edit1.Text := Format('%n', [aGxAccount.Margin]);
end;
À̺¥Æ® ¼ö½ÅÇϱâ
GOM °´Ã¼ÀÇ ÀϺδ Client¿¡ À̺¥Æ®¸¦ ¹ß»ý ½Ãŵ´Ï´Ù. ÀÌ¿Í °°Àº °´Ã¼¸¦ Connectable Object¶ó°í ºÎ¸¨´Ï´Ù. GOM±¸Á¶µµ¿¡¼­ Å׵θ®°¡ »¡°£»öÀ¸·Î Ç¥½ÃµÈ °´Ã¼µéÀº À̺¥Æ® ¼ö½ÅÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼­¹ö¿¡¼­ ÂüÁ¶ÇÏ´Â °ªÀÌ º¯ÇÒ °æ¿ì Ŭ¶óÀÌ¾ðÆ®¿¡ À̺¥Æ®¸¦ ¹ß»ý½Ãŵ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â À̺¥Æ®¸¦ ¹Þ¾Æ À̺¥Æ®ÀÇ Á¾·ù¿¡ µû¶ó ÀÚ½ÅÀÌ ÃßÀûÇϰí ÀÖ´Â °ª(¿¹:AÁ¾¸ñÀÇ ÇöÀç°¡)À» °»½ÅÇÕ´Ï´Ù.

Ŭ¶óÀÌ¾ðÆ®°¡ AÁ¾¸ñÀÇ ÇöÀç°¡¸¦ È­¸é¿¡ ½Ç½Ã°£À¸·Î Ç¥½ÃÇÑ´Ù¸é Ŭ¶óÀÌ¾ðÆ®´Â AÁ¾¸ñÀÇ ÀÎÅÍÆäÀ̽º¸¦ ã¾Æ ÇöÀç°¡ ¼Ó¼ºÀ» È£ÃâÇϰí ÀÌ¿¡ ´ëÇÑ Á¾¸ñ ÇöÀç°¡ À̺¥Æ®¸¦ ¿äûÇÕ´Ï´Ù. ±× ÀÌÈÄ ¼­¹ö·Î ºÎÅÍ ÇöÀç°¡ º¯°æ À̺¥Æ®¸¦ ¼ö½ÅÇÏ¸é ¼ö½Å ½ÃÁ¡À¸·Î ´Ù½Ã AÁ¾¸ñÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ´Ù½Ã ÇöÀç°¡ ¼Ó¼ºÀ» ÀнÀ´Ï´Ù.

Ŭ¶óÀÌ¾ðÆ®´Â À̺¥Æ®¸¦ ¼ö½ÅÇϱâ À§Çؼ­ À̺¥Æ® ¼ö½Å ´ë»ó °´Ã¼ÀÎ EventSink °´Ã¼¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ±×¸®°í ±× Àü¿¡ ¼­¹ö¿¡°Ô À̺¥Æ® ¿äûÀ» ÇØ¾ß ÇÕ´Ï´Ù. EventSink¸¦ Á¦ÀÛ, Event ¿äû ¹æ¹ýÀº °¢ Lanuage ¸¶´Ù Ʋ¸®¹Ç·Î Language º° Ŭ¶óÀÌ¾ðÆ® Á¦ÀÛ ½Ã À̸¦ ´Ù½Ã ´Ù·ì´Ï´Ù.
GxServerInfo »ç¿ëÇϱâ

Ŭ¶óÀÌ¾ðÆ®°¡ COM Server Áï °í¼öPlus ¼­¹ö¿ÍÀÇ ¿¬°á»óŵîÀ» ¾Ë±â À§Çؼ­´Â GxServerInfo °´Ã¼¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. GxServerInfo °´Ã¼¸¦ »ç¿ëÇϱâ À§ÇÑ ±âº» ÀÎÅÍÆäÀ̽º´Â IGxServerInfo À̰í 'GOM ±¸Á¶µµ'¸¦ º¸¸é GxServerInfo °´Ã¼´Â ÃÖ»óÀ§°´Ã¼ÀÇ ÇÑ ´Ü°è ¾Æ·¡ÀÇ °´Ã¼ÀÔ´Ï´Ù. IGxServerInfo ÀÎÅÍÆäÀ̽º´Â ÃÖ»óÀ§ IGxServer¿¡ 'ServerInfo' ÇÁ·ÎÆÛƼ È£ÃâÀ» ÅëÇØ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. IGxServerInfo ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ¾òÀº ÈÄ IGxServerInfo ÀÇ ServerDate µîÀÇ ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.