ãã®ãããä»åã¯ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®éçºã®é£ãããèããŠãå€ä»£ãã·ã¢ã®å€¢ã«ææŠããèªæã«æµæããããšã¯ã§ããŸããã§ããã å°ãããã¿ãªããããã¹ããŒãããå ã«è¡ã£ããšããŸãããã
ãã®ããããåç¥ã®ããã«ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ã¯ãã¹ãã©ãããã©ãŒã éçºã§äœ¿çšãããããã€ãã®ã¢ãããŒãããããŸãã ãããã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ããããæ¬ ç¹ããããå Žåã«ãã£ãŠã¯ã以äžã®åºçç©ã®ããããã§æ瀺ããããŸããŸãªã¢ãããŒãã®æ¯èŒåæããããŸãã ããã§ã¯ããã®ãããªæ¥œåšã®1ã€ã«ã®ã¿çŠç¹ãåœãŠãŸãããã®æ¥œåšã¯ãå€ãã®ãŠããŒã¯ãªæ©èœãåããŠããŸãããèŽè¡ã«ã¯å€å°ç¡èŠãããŠããŸãã
FireMonkeyã¯ãæªåé«ãEmbarcadero瀟ã®è£œåã§ãã FireMonkeyã¯RAD Studioéçºç°å¢ã®äžéšã§ãã åºç€ãšãªãFMXãšã³ãžã³ã¯ãåœç€Ÿã®åèããã€ãŠéçºãããã®ã§ããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãæ§ç¯ããããã®ã¯ãã¹ãã©ãããã©ãŒã ãã¬ãŒã ã¯ãŒã¯ã§ããFlashãŸãã¯WPFã«äŒŒãŠããŸãã åæã«ãåè¿°ã®è£œåãšåæ§ã«ãFMXã¯ãã¯ã¿ãŒã°ã©ãã£ãã¯ã¹ãšããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã䜿çšããŸãã 補åã¯ã»ãã®æ°å¹Žåã«ç»å ŽããŸãããããã®éã«5ã€ã®ã¢ããããŒãããªãªãŒã¹ãããŸããã ç§ã¯ãã®è£œåãæªåé«ãDelphi .NETã®éåœã«èŠããããšã¯ãªããšä¿¡ãããã
ã¢ããªã±ãŒã·ã§ã³ã¯ãã·ã³ã³ãŒãã«çŽæ¥ã³ã³ãã€ã«ãããããã¯ãã®ãœãªã¥ãŒã·ã§ã³ã®äž»ãªç¹åŸŽã®1ã€ã§ãã ããããé©ãã¹ãç¶æ³ã«é¢é£ããŠããšã³ãã«ããã¯çè«çã«ã¯ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ã®å šäœçãªããã©ãŒãã³ã¹ãçŽæããŸãã FireMonkeyã§ã¯ãDelphiããã³C ++ Builderã§æ§ç¯ãããŠãããããPascalããã³C ++ã§ã¢ããªã±ãŒã·ã§ã³ããžãã¯ãå®è£ ã§ããŸãã åãFireMonkeyïŒFMïŒã¢ããªã±ãŒã·ã§ã³ã³ãŒããã³ã³ãã€ã«ããŠãWindowsãiOSãAndroidã§åäœãããããšãã§ããŸãã ãã®é åã«ã¯å€æ°ã®ããã°ã©ããŒããããããC ++ã§éçºãè¡ãæ©äŒã«æ¹ãããŸããã ãããã£ãŠãæäœæ§ããã¹ãããããã«ã€ã³ã¹ããŒã«ãããã®ã¯ãRAD Studio XE6ã®C ++ BuilderããŒãžã§ã³ã§ããããDelphiãšãã£ã·ã§ã³ã¯ã䜿çšãããŠããããã°ã©ãã³ã°èšèªä»¥å€ã®éãã¯ãªãã¯ãã§ãã
ã¢ããªã±ãŒã·ã§ã³ã®çµã¿ç«ãŠ
ã³ã³ãã€ã©ã®äœæã®èåŸã«ããä¹±æµã®äžã§ã補é æ¥è ã¯FireMonkeyã«x86ããã³ARMv7çšã®ãã€ãã£ãC ++ã³ã³ãã€ã©ãè£ åããŸããã ããã«ãããéçºç°å¢ãå®è¡ãããŠããã³ã³ãã¥ãŒã¿ãŒã§çŽæ¥ã³ã³ãã€ã«ã§ããŸãã C ++ãŸãã¯Pascalã§ããã°ã©ãã³ã°ããåºåã§å¿ èŠãªARMãã·ã³ã³ãŒããååŸããæ©äŒãæäŸããã®ã¯ãç¬èªã®ã³ã³ãã€ã©ã®ååšã§ãã ãã ããã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ïŒãªã³ã¯ïŒã眲åãããã€ã¹ã§ã®å®è¡ãããã³ãããã°ã«ã¯ãã¢ãã€ã«ãã©ãããã©ãŒã ã®éçºããŒã«ïŒSDKïŒã®å ã®ããŒã«ãåŒãç¶ã䜿çšãããŸãã ãããã£ãŠãéå§ããåã«ã次ã®æé ãå®è¡ããå¿ èŠããããŸãã
iOS | Android |
---|---|
Macãæã£ãŠãã | --- |
iOSéçºè ããã°ã©ã ã«ãµã€ã³ã¢ãããã | Android Developerã«ãµã€ã³ã¢ãããã |
蚌ææžãååŸããïŒéçºè ãããããžã§ãã³ã°ïŒ | ã¢ããªã±ãŒã·ã§ã³çœ²åããŒãçæãã |
iOS SDKãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ãã | Android SDKãšNDKãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ãã |
Macã«PAServerãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ãã | --- |
RAD StudioãšPAServeréã®æ¥ç¶ãæ§æãã | --- |
RAD StudioãšAndroidããŒã«ãããã®äž¡æ¹ãPCäžã§åäœãããããAndroidã®éçºã«å¿ èŠãªèº«äœã®åãã¯iOSã®å Žåããããããã«å°ãªããªããŸãã iOSã¢ããªã±ãŒã·ã§ã³ããã«ãããã«ã¯ãMac OSãå¿ èŠã§ãïŒAppleã®ã¿ãSDKããªãªãŒã¹ããããïŒã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³éçºãPCäžã§è¡ãããå Žåãäœããã®æ¹æ³ã§éä¿¡ããå¿ èŠããããŸãã äžã®å³ãããä»å±ã®Embarcadero PAServerïŒãã©ãããã©ãŒã ã¢ã·ã¹ã¿ã³ããµãŒããŒïŒã䜿çšããŠãiOSã¢ããªã±ãŒã·ã§ã³ãPCãä»ããŠã©ã®ããã«ã¢ã»ã³ãã«ããããã確èªã§ããŸãã
äŸ
FireMonkeyãã¹ãã®äžç°ãšããŠãåçŽãªã¢ããªã±ãŒã·ã§ã³ïŒHello worldã¬ãã«ïŒãéçºããŸããããã®äŸã§ã¯ãææ¡ãããæè¡ã®æäœæ§ã確èªããããšèããŠããŸããã
以äžã¯ãWindowsçšã®ãã®ã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ã®ã¹ã¯ãªãŒã³ã·ã§ãããšãç°¡åãªæäœã§ãã€ããã¯ã¹ã確èªã§ããçããããªã§ãã
ãã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãã»ãšãã©ã³ãŒããå«ãŸããŠããŸããã ããã«ãããããããç§ãã¡ã¯ç§ãã¡ããã£ãããšãæ£ç¢ºã«æããŸãã
ãã®ã±ãŒã¹ã§ã¯ãããã©ãŒãã³ã¹ã ãã§ãªããããŸããŸãªãã©ãããã©ãŒã ã§ã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®å€åã«é¢å¿ããããŸããããããã¯ãæ¥åžžããšããæå³ã§ãã ã€ãŸãããŠãŒã¶ãŒã¯1ç§ãããã®æµ®åå°æ°ç¹æŒç®ã®æ°ãæ°ã«ããŸããããã¢ããªã±ãŒã·ã§ã³ããã®ã¢ã¯ã·ã§ã³ã«ã©ãã ããœãããã€è¿ éã«å¿çããããæ°ã«ããŸãã
ãã®ã¢ããªã±ãŒã·ã§ã³ã¯ããã€ãã®æšæºã³ã³ãããŒã«ã§æ§æãããŠããããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãã³ãã©ãŒã®ãã¢ãå«ãŸããŠããŸãã ç»é¢ã®äžéšã«ã¯ããããããããããããåãããšãåçãå·Šã«å転ã§ããŸãã ãã¹ãã®ãã®éšåã¯ãFMXã2次å ã°ã©ãã£ãã¯ã¹ãæç»ããèœåããã¹ãããããããŸãã¯ã©ã¹ã¿ãŒæäœãå®è¡ããããã«å¿ èŠã§ããã
å°ãäžã«ããé²è¡ç¶æ³ããŒã«ã¯ããã€ãŒã«ãèšå®ãããŠããè§åºŠã®çŸåšã®å€ã衚瀺ãããŸãã UIã¹ã¬ããã®çžäºäœçšã確èªããããŸããŸãªãã©ãããã©ãŒã ã§ãã®èŠçŽ ã®ã¹ã¿ã€ã«ã確èªããå¿ èŠããããŸãã
ãã€ãŒã«ã¿ãŒã³ãã³ãã©ãŒïŒ
//--------------------------------------------------------------------------- void __fastcall TForm1::DialAngleChange(TObject *Sender) { // Every time the angle dialer is spinned, assign // its current value to the Image control... imgLogo->RotationAngle = 360 - DialAngle->Value; // The progress bar will get updated with a normalized angle value pbAngle->Value = (int)fabs(DialAngle->Value)%360; } //---------------------------------------------------------------------------
ã芧ã®ãšãããããã¯éåžžã®C ++ã§ãããDelphiã®ã¬ã¬ã·ãŒã«ã¯å°ããæ±ãã§ãã
以äžã¯ã次ã®HWãã³ãã©ãŒãåããåŸæ¥ã®ãã¿ã³ã§ãïŒãã ãããã¿ã³ã«ããã»ã©äŒŒãŠããŸããïŒã
//--------------------------------------------------------------------------- void __fastcall TForm1::btnHelloClick(TObject *Sender) { // A simple HW assignment btnHello->Text = "Hello world!"; } //---------------------------------------------------------------------------
å³åŽã«ã¯ãæ¥ä»ãéžæããããã®ãã£ãŒã«ãïŒDateTimePickerïŒããããŸãã ç§ãã¡ã¯äž»ã«ãã¢ãã€ã«OSã§ã®åœŒã®å€èŠ³ã«é¢å¿ããããŸãããããããã®å Žåã«ãã€ãã£ãã³ã³ãããŒã«ãŸãã¯æç»ããããã®ã䜿çšããããã©ããã§ãã åãçç±ã§ãã¹ã©ã€ããŒãšON / OFFã¹ã€ããã¯ä»¥äžã«åŸããŸãã ãã ãããã®ã¹ã€ããã«ã¯å¥ã®æ©èœãè¿œå ãããŠããŸããæšæºã®FMXèŠèŠå¹æïŒã©ãžã¢ã«ãã©ãŒïŒã®1ã€ãå«ãŸããŠããŸããFMXãç¬èªã«ã³ã³ãããŒã«ãæç»ãããããã®äœæ¥ãã¢ãã€ã«OSã«å§ä»»ãããã©ããã確èªããŸãã çµæã¯æããã§ã¯ãªãã£ãããã以äžã§ãã®åé¡ã«æ»ããŸãã
äžçªäžã«ã¯ã2ã€ã®åãããè¡šããããŸãã ãã®è¡šã«ã¯ãæ £æ§ã¹ã¯ããŒã«ããããŸããããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®ç¹åŸŽããããŸãã ç§ãã¡ã¯ãæºåž¯é»è©±ã§ãããã©ã®ããã«äœ¿çšãããã確èªãããã£ãã®ã§ãã ç®ãããã¿ã€ãããã«ãããŒãã«ã¯ã¢ããªã±ãŒã·ã§ã³ã®éå§æã«åããããŸãã
//--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { // Initialize the string grid with a bit of texts // Define the number of items gdDemo->RowCount = 1000; // Generate the texts for every Row and Column for(int r = 0; r < gdDemo->RowCount; r++) { gdDemo->Cells[0][r] = "iResearchFX"; gdDemo->Cells[1][r] = IntToStr(r+1); } } //---------------------------------------------------------------------------
ç·šé
ã³ã³ãã€ã«ã¯éåžžã«é ããªããŸã-éåžžéããC ++ Builderã¯ãªããšãªãç·åŒµããŸãã ããããé·å¹Žã«ããã£ãŠãC ++ã³ã³ãã€ã©ã¯ãããéãããŸããã§ããã
ã¢ãã€ã«ããã€ã¹çšã®ããŒãžã§ã³ã§åãã¢ããªã±ãŒã·ã§ã³ãèŠãæãæ¥ãŸããã ã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãå€æŽããå¿ èŠã¯ãããŸããã ãããžã§ã¯ãã®ããã€ãã®èšå®ãå€æŽããã ãã§ååã§ãããããã®èšå®ã¯ããç°¡åãªåããã«ãã£ãŠã¿ãŒã²ãããã©ãããã©ãŒã ãå€æŽã§ããããã«äœæããããã®ã§ãã
ãã©ãããã©ãŒã ã®åãæ¿ãã¯ç°¡åã§ã-IDEã§ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®ãã®åŽé¢ã¯æå³çã«åŠ¥åãªãè¡ãããŸãã ãããã°ãŸãã¯ãªãªãŒã¹ã³ã³ãã€ã«ãã¿ãŒã²ãããã©ãããã©ãŒã ãã·ãã¥ã¬ãŒã¿ãŒããŸãã¯ããã€ã¹ãéžæããã¢ã»ã³ããªãå éšã®ããŒãºãŸãã¯çºè¡ã®ããã«å®è¡ããããã©ãããåå¥ã«ããŒã¯ããå¿ èŠããããŸãã åŸè ã®å Žåã蚌ææžã«çœ²åããå¿ èŠããããŸãã Android蚌ææžããŸã æã£ãŠããªãå Žåã¯ãéçºç°å¢ããçŽæ¥çæããããã«ããã«æåŸ ãããŸãã ãããŠãiOSãããã¡ã€ã«ã¯ãæçµãã«ããã§ãŒãºãå®è¡ãããMacäžã«ããå¿ èŠããããŸãã
Androidã»ã¯ã·ã§ã³ã«ã¯ãAndroid SDKã§èšå®ããããã¹ãŠã®ã·ãã¥ã¬ãŒã¿ãŒãšãæ¥ç¶ãããŠãããã¹ãŠã®ããã€ã¹ããªã¹ããããŠããããšãç°¡åã«ããããŸãã
iOSã»ã¯ã·ã§ã³ã§ã¯ããªãã·ã§ã³ã¯Xcodeã®ã»ãããæ£ç¢ºã«ç¹°ãè¿ããŸã-ã·ãã¥ã¬ãŒã¿ãŒã®ã¢ã»ã³ããªãšèµ·åããªã¢ãŒãMac OSãã·ã³ã§å®è¡ãããããšãèãããšãããã¯é©ãããšã§ã¯ãããŸããã
å·Šã¯ãã¢ããªã±ãŒã·ã§ã³ãäž»èŠãªã¢ãã€ã«ãã©ãããã©ãŒã ã§ã©ã®ããã«èŠãããã瀺ããŠããŸãã
æ°ä»ãã®ã¯ç°¡åã§ã-ãããŠãããã¯å¿åŒ·ãããšã§ã-å€èŠ³ã¯ããŸãå€ãããŸããã§ããããéã«ãã¢ããªã±ãŒã·ã§ã³ã¯ç解ã§ããªãã»ã©å€ãããŸããããä»ã§ã¯åãã©ãããã©ãŒã ã®ã€ã³ã¿ãŒãã§ã€ã¹ããŒãããäœæããå ŽåãšãŸã£ããåãã«èŠããŸãã ããã¯ãFMXããã¹ããããèªæã§ãã QtãåããŠäœ¿çšããåã³ã®ããã§ããïŒ
ããã¯ãŸã åãã¢ããªã±ãŒã·ã§ã³ã§ããããã¹ãŠã®ã³ã³ãããŒã«ããã©ãããã©ãŒã ããšã«ããã€ãã£ããã«å€æŽãããŠããããšãããããŸãã ããã¯ãç§ãã¡ã®æèŠã§ã¯ãGUIã¢ããªã±ãŒã·ã§ã³ã®çã®ã¯ãã¹ãã©ãããã©ãŒã éçºãšèšããã§ãããã
ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®æºåãã§ããŸããïŒ ç©ççãªAndroidããã€ã¹ïŒHTC OneïŒã§äœæãããã¹ã¯ãªãŒã³ãããªã®äŸã§ã圌ã®äœåãã©ã€ãã§èŠãããšããå§ãããŸãã ãããªã¯ã»ãšãã©åãã§ããçµ±èšçšã«2ã€ã®ãããªãäœæããŸããã
ãããªã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã€ãã®åŽé¢ã瀺ããŠããŸãã
- éå§æéã ãã³ãŒã«ããã¹ã¿ãŒãã«ã€ããŠè©±ããŠããå ŽåãAndroid-eäžã®ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã¯éåžžã«éãèµ·åããªããšèããããŠããŸãã ããã§ãéå§æã«çŽ2ç§ã倱ãããŠããããšãã¯ã£ãããšããããŸãïŒãããªã®åé ã®é»ãç»é¢ïŒã ãããå€ããã©ããã¯ããªã次第ã§ãããç§ãã¡ã®æèŠã§ã¯ãããã¯ã¢ããªã±ãŒã·ã§ã³ã®ã¿ã€ãã«å€§ããäŸåããŸãã
- ä»äºã®ã¹ããŒãã ç¹å¥ãªèŠæ ã¯ãããŸãã-ã€ã³ã¿ãŒãã§ã€ã¹ã¯éåžžã«ããŸãæ©èœããŸãã
- ã³ã³ãããŒã« ãã¹ãŠã®èŠçŽ ã¯ãã€ãã£ãã®ãã®ã«çœ®ãæããããéåžžã«Androydã®å°è±¡ãäžããŸãã
- ã°ãªãã ã¢ãã€ã«ãã©ãããã©ãŒã ã«ãšã£ãŠã¯é¢çœããéåžžã«æ©èœããŠããŸããã€ã³ãã¬ãŒã¹ã»ã«ç·šéããããŸãã
æ»åŸ
æ°ããäœæããAndroidã¢ããªã±ãŒã·ã§ã³ã®å éšãèŠãŠã¿ãŸãããã
APKã¢ãŒã«ã€ãã¯ã6 MBãšããéåžžã«å ·äœçãªãµã€ãºã§ãã ã©ããããå€ãDelphiã®äŒçµ±ã«ããã°ãã©ã³ã¿ã€ã ã©ã€ãã©ãªå šäœãããã«åŒã蟌ãŸããããã§ãã
APKã¢ãŒã«ã€ãå ã«ã¯ã次ã®ãã©ã«ããŒæ§é ããããŸãïŒå³åŽã«è¡šç€ºïŒã ãã€ãã£ãã³ã³ãã€ã©ARMv7ããã³NDKãæ£ç¢ºã«äœ¿çšãããããšã瀺åãããã®ããã«ãåçã©ã€ãã©ãªïŒsoïŒã®ååšãç®ãåŒããŸãã
libãã©ã«ããŒã«ã¯ã¢ãŒããã¯ãã£ã®ååãæã€ãµããã©ã«ããŒãå«ãŸããŠãããããããã«äœããã®çç±ã§libProject1.soãšåŒã°ããã¢ããªã±ãŒã·ã§ã³ãããããšã«æ³šæããŠã¿ãŸãããã ãããã£ãŠãarmeabi-v7aãã©ã«ããŒã«ããã®ã¯æ¬ç©ã§ããããµã€ãºã¯çŽ21 MBïŒã¢ã³ããã¯ïŒã§ãã æ®ãã®ã©ã€ãã©ãªãã¡ã€ã«ã¯æ¢è£œã®ã¯ã©ãããŒã¹ã¿ãã§ããããŠãŒã¶ãŒã®ã¢ãŒããã¯ãã£ãARMv7ãšç°ãªãå Žåã«ãŠãŒã¶ãŒã®é¡ã«ã¡ãã»ãŒãžã衚瀺ããŸãã 補é æ¥è ã¯ãããæ£çŽã«èªããŠããããããŸã§ã®ãšããä»ã«äœãæ®ããŠããŸããã
classes.dexãã¡ã€ã«ã«ã¯ã¢ããªã±ãŒã·ã§ã³ããŸã£ããå«ãŸããŠããŸããããã¡ã€ã³FMXã¢ããªã±ãŒã·ã§ã³ã©ã€ãã©ãªã®JavaããŒããŒãšããã€ãã£ãAndroidã³ã³ãããŒã«ã®ã©ãããŒã®å®è£ ãå«ãŸããŠããŸãã ãã®ãã©ã°ã¡ã³ãã«ãããã¢ããªã±ãŒã·ã§ã³ãOSãšå¯Ÿè©±ããéåžžã®Androidã¢ããªã±ãŒã·ã§ã³ã«ãªãããŸãããšãã§ããŸãã
ãã€ãã£ã床
ãããªã§ç®ç«ã€ããã«ãªããšãFMXãšãã§ã¯ãã¯ããã€ãã£ããAndroidã³ã³ãããŒã«ã«å€§ããªåœ±é¿ãäžãç¶ããã¬ã³ããªã³ã°ã劚害ããŸãïŒããšãã°ãã³ã³ãããŒã«ã®èŒªéã®ã°ããŒããªã³ã«ããããšããããŸããã€ãŸããFMXã¯Androidã³ã³ãããŒã«ãšã¯ç°ãªããåçä»ãã§ãããéåžžã«ã¿ã€ãã§ãïŒã
Sebastian GingerïŒSEBASTIAN PR GINGTERïŒã¯ãããç¥ãããŠããFMXã®èšäºã§ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãç¬ç«ããæ¹æ³ã§æãããã©ã®ãã©ãããã©ãŒã ã§ããã€ãã£ãã«èŠããªããšããäºå®ãå³å¯ã«æ¹å€ããŠããã¬ãŒã ã¯ãŒã¯ã«ã€ããŠéåžžã«äžå¹³ãè¿°ã¹ãŠããŸãã ã©ããããããæç¹ã§ããã¯ãŸãã«ããã§ããããä»ã§ã¯ãã®ãããªæ¹å€ã¯å ¬æ£ãšã¯èŠãªãããŸããã èè ã¯ããã®ã¢ãããŒãã®æœåšçãªå©ç¹ãåŠå®ããªãããç¹å®ã®å®è£ ã«é¢ä¿ãªããã¯ãã¹ãã©ãããã©ãŒã ã®GUIã¢ããªã±ãŒã·ã§ã³ãšããæŠå¿µãåŠå®ããŠããŸãã
ãããã«
ãã¡ãããèæ ®ãããããŒã«ã¯ãVCLã®ãã¹ãŠã®äŒçµ±ïŒæ å ãšäžèª å®ïŒã®ç¶ç¶ã§ãã çã®ã¯ãã¹ãã©ãããã©ãŒã ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ã¢ã»ã³ããªãã¯ãããžãŒãæ©èœããéåžžã«åªããããã©ãŒãã³ã¹ãçºæ®ããããšã確èªããŸããã ç¹å®ã®ã¯ã©ã¹ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãFMXãéåžžã«åœ¹ç«ã¡ãŸãã
ãã€ãã¹é¢ã«ã¯ãèµ·åæã®é¡èãªé 延ãšãçµæãšããŠçããã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºãå°ããããšãå«ãŸããŸãã