 |
|
|
|
 |
| |
| µ¨¸¶´ç °ø½Ä ÀºÇà°èÁ |
| ÇϳªÀºÇà 227-910235-83607 |
| ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø) |
| |
 |
|
|
|
| È«º¸¸¶´ç |
È«º¸¸¶´ç ÀÔ´Ï´Ù. |
|
|
|
¡Ü µ¨ÆÄÀÌ ÄÚµù °¡À̵å for µ¨¸¶´ç ( version 1.0 ) |
°ü¸®ÀÚ
(delmadang) 2008-01-04 ¿ÀÀü 11:04:36
1868ȸ Á¶È¸
µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
|
|
|
µ¨¸¶´ç ÄÚµù Ç¥ÁØ
µ¨ÆÄÀÌ ÄÚµù °¡À̵å for µ¨¸¶´ç ( version 1.0 )
¿ä¾à
º» ¹®¼´Â µ¨ÆÄÀÌ ÄÚµå Çü½Ä¿¡ ´ëÇÑ Borland Ç¥ÁØ ½ºÅ¸ÀÏ ¹®¼(¸µÅ©)¸¦ ¹ÙÅÁÀ¸·Î ¸¸µé¾îÁ³´Ù.
µ¨¸¶´ç Ç¥ÁØÀÇ ¿øÄ¢Àº ¼Ò½º¿¡ Æ÷ÇÔµÈ ³í¸®¸¦ º¸´Ù ¸íÈ®ÇÏ°Ô Ç¥ÇöÇϱâ À§ÇÔÀÌ´Ù.
µû¶ó¼ º¼·£µå Ç¥Áذú´Â ´Ù¸£°Ô ½ºÅ¸ÀÏÀÌ °¿äµÇÁö´Â ¾ÊÀ¸¸ç,
´©±¸³ª Äڵ带 ÀÌÇØÇϱ⠽±°í, Äڵ忡 Ç¥ÇöµÈ ³í¸®°¡ ¸íÈ®ÇÑ ¹üÀ§³»¿¡¼ °³ÀÎÀûÀÎ ÃëÇâ¿¡ µû¶ó º¯°æÇÒ ¼ö ÀÖÀ½À» ¸í½ÃÇÑ´Ù.
º¯°æ³»¿ª
¸ñÀû
µ¨ÆÄÀÌÀÇ ¿ÀºêÁ§Æ® ÆÄ½ºÄ® ¾ð¾î´Â ¾Æ¸§´Ù¿ï Á¤µµ·Î Àß µðÀÚÀÎµÈ ¾ð¾îÀ̸ç, °¡Àå Å« ÀåÁ¡Áß¿¡ Çϳª°¡ Àб⠽±´Ù´Â Á¡ÀÌ´Ù.
º» Ç¥ÁØÀÇ ¸ñÀûÀº ÀÌ·¯ÇÑ µ¨ÆÄÀÌ - ¿ÀºêÁ§Æ® ÆÄ½ºÄ® ÄÚµåÀÇ ÀåÁ¡À» ´õ¿í ±Ø´ëȽÃŰ´Â µ¥ ÀÖ´Ù.
¸¹Àº °³¹ßÀÚµéÀÌ »ç¿ëÇÏ´Â ¹æ½ÄÀ» Á¾ÇÕ´Ü °£´ÜÇÑ Ç¥ÁØ ¹æ½ÄÀ» µû¸¥´Ù¸é, Á» ´õ º¸±â ÁÁ°í ½¬¿î Äڵ尡 »ý±æ °ÍÀ̸ç
µð¹ö±ë Áֱ⳪ À¯Áöº¸¼ö ±â°£À» ÁÙÀÏ ¼ö ÀÖ°í, ¼Ò½º ÄÚµåÀÇ °ª¾îÄ¡¸¦ ³ôÀÏ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¹°·Ð ÄÚµù ¹æ½ÄÀ̳ª °³¹ß ÀÛ¾÷ ½ºÅ¸ÀÏÀº °³¹ßÀÚ ÀÚ½ÅÀÇ ÀÔ¸À¿¡ µû¶ó ´Ù¸¥ ¹®Á¦ÀÌ´Ù.
±×·³¿¡µµ ºÒ±¸Çϰí ÀÌ·¸°Ô ÄÚµù Ç¥ÁØ ½ºÅ¸ÀÏÀ» ÁغñÇÏ´Â °ÍÀº ³ª¸§ÀÇ ¹æ½ÄÀÌ ¿Ç°í-±×¸§À» µûÁöÀÚ´Â °ÍÀÌ ¾Æ´Ï¶ó,
´ëºÎºÐÀÇ °³¹ßÀÚµéÀÌ »ç¿ëÇϴ ǥÁØÀ» ¸¸µé¾î È¿À²¼ºÀ» ³ôÀÌÀÚ´Â °ÍÀÌ´Ù.
Àΰ£Àº Ç¥ÁØÀ» µû¶ó »ç¿ëÇÏ¸é¼ ÅøÀÌ ´õ Ä£¼÷ÇØÁö¸ç, Àß ¾²´Â ÆÐÅϵéÀ» º¸´Ù ºü¸£°í Á¤È®ÇÏ°Ô ÀνÄÇÏ´Â ½À¼ºÀÌ ÀÖ´Ù.
¾Æ¸¶µµ ÀÌ·¯ÇÑ Ç¥ÁØ ¹æ½ÄÀÌ ³¸¼³´õ¶óµµ Ç¥ÁØ¿¡ µû¶ó¼ »ç¿ëÇÏ´Ùº¸¸é Æí¸®ÇÔÀ» ´À³¢°Ô µÉ °ÍÀÌ´Ù.
±×·¡µµ ÀÚ½ÅÀÇ ¹æ½ÄÀ» Áö۰íÀÚ ÇÏ´Â »ç¶÷µéÀº, Àû¾îµµ ÀÌ °÷ µ¨¸¶´ç³ª °øÀ¯ ÀÚ·á·Î ¿Ã¸± °æ¿ì¿¡´Â
´Ù¸¥ »ç¶÷µé°úÀÇ °øÀ¯ Â÷¿ø¿¡¼ ¹ü¿ëÀûÀΠǥÁØ ¹æ½ÄÀ» »ç¿ëÇßÀ¸¸é ÇÑ´Ù.
¶óÀ̼¾½º
ÄÚµù Ç¥ÁØ¿¡ ´ëÇÑ ¶óÀ̼¾½º °°Àº °ÍÀº ´ç¿¬È÷ ¾ø´Ù.
´Ù¸¸ º» ¹®¼ ÀÚü¸¦ ¹«´Ü ¹èÆ÷Çϰųª º¹Á¦Çؼ »ç¿ëÇÏ¸é ¾ÈµÇ°í, ¹Ýµå½Ã µ¨¸¶´ç¿¡¼ ¸¸µç Ç¥ÁØ ¹®¼ÀÓÀ» ¹àÇô¾ß ÇÑ´Ù.
Â÷·Ê
ºí·°/·¹º§°£ÀÇ È®Àΰ¡´ÉÇϰí ÀÏÁ¤ÇÏ°Ô ÁöÄÑÁø´Ù¸é, µé¿©¾²±â¿¡ ´ëÇÑ Á¦¾àÀº ÀüÇô µÎÁö ¾Ê±â·Î ÇÑ´Ù.
´Ü, º¼·£µå ¹æ½ÄÀÎ ·¹º§¸¶´Ù 2ÄÀÇ Åǰ£°ÝÀ» ÃßõÇÑ´Ù.
ƯÈ÷ Á¶°Ç¹®À̳ª Ãâ·Â¹®ÀÇ ³»¿ëÀÌ ±æ¾îÁ®¼ ¿·ÁÙ·Î ±æ¾îÁø °æ¿ì, ´ÙÀ½ÁÙ·Î ³»·Á¾²°í µé¿©¾²±âÇÏ¿© ±¸ºÐÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
±âº»ÀûÀÎ ÁÖ¼®Àº Áß°ýÈ£ { } ·Î ÇÑ´Ù.
ºÎ¼öÀûÀ¸·Î (* *) ¹æ½ÄÀº °³¹ßÁß¿¡ Àӽ÷Π»ç¿ëµÇ´Â ÁÖ¼® ¿ëµµ·Î¸¸ »ç¿ëÇÑ´Ù.
// ¹æ½Ä ÁÖ¼®Àº ÇÑ ÁÙ¸¸ ÁÖ¼®Ã³¸® ÇÒ ¶§ »ç¿ëÇϵµ·Ï ÇÑ´Ù.
À¯´Ö ÆÄÀÏ °¡Àå À§¿¡´Â ´ÙÀ½°ú °°Àº ÆÄÀÏ Çì´õ¸¦ ºÙÀδÙ.
{***************************************************************}
{ }
{ This line describes the purpose of the unit }
{ }
{ Copyright (c) 2001 godrm@netsgo.com }
{ }
{ All rights reserved. }
{ }
{***************************************************************}
|
ÇÑÁÙ ¶ç¿ì±â(Blank Lines)´Â ÀúÀÛ±Ç ÁÖ¼®À̳ª, ÆÐŰÁö ¼±¾ð, Ŭ·¡½º ¼±¾ð, ¸Þ¼Òµå ¼±¾ðµé »çÀÌ¿¡ ÇÑ´Ù.
´ÙÀ½ÀÇ °æ¿ì¿¡´Â ºó°ø°£À» ÁÖÁö ¾Ê´Â´Ù.
(1) ¸Þ¼Òµå À̸§°ú ¿©´Â °ýÈ£ »çÀÌ
(2) .(Á¡) ¿¬»êÀÚ ¾ÕµÚ
(3) ´ÜÇ׿¬»çÀÚ¿Í ¿¬»ê°ª »çÀÌ
(4) Çüº¯È¯À» À§ÇÑ Çü°ú º¯¼ö
(5) ¿©´Â ¼Ò°ýÈ£ '(' ´ÙÀ½°ú ´Ý´Â ¼Ò°ýÈ£ ')' ¾Õ
´Ü, ()¾È¿¡¼ ÇÔ¼ö°¡ µé¾î°¥ °æ¿ì³ª °Á¶ÇÒ °æ¿ì´Â ¶ç¾î½áµµ ¹«¹æÇÏ´Ù.
(6) ¿©´Â ´ë°ýÈ£ '[' ´ÙÀ½°ú ´Ý´Â ¼Ò°ýÈ£ ']' ¾Õ
(7) ¼¼¹ÌÄÝ·Ð ¾Õ
//CORRECT
function TMyClass.MyFunc(var Value: Integer);
MyPointer := @MyRecord;
MyClass := TMyClass(MyPointer);
MyInteger := MyIntegerArray[5];
ShowMessage( IntToStr(MyInteger) );
|
//INCORRECT
function TMyClass.MyFunc( var Value: Integer ) ;
MyPointer := @ MyRecord;
MyClass := TMyClass ( MyPointer ) ;
MyInteger := MyIntegerArray [ 5 ] ;
|
´ëºÎºÐÀÇ ÅäÅ« ºÐ¸®ÀÚ³ª ¿¬»êÀÚ´Â ºÙ¿©¾²´Â °ÍÀ» ¿øÄ¢À¸·Î ÇÑ´Ù.
´Ü, »çÄ¢¿¬»ê( +, -, *, /, div, mod )¿Í ºÎµîÈ£( >, <, = ) ±×¸®°í ´ëÀÔ¿¬»êÀÚ( := )´Â ¶ç¾î¾´´Ù.
begin-end ´Â °°Àº ·¹º§¿¡ ¸ÂÃç ¾´´Ù.
´Ü, if-else ¹®°ú »ç¿ëµÇ´Â °æ¿ì¿¡´Â ¿¹¿Ü¸¦ µÐ´Ù. (3.5Àå (1)if¹® ÂüÁ¶)
for I := 0 to 10 do begin // Incorrect, begin on same line as for
for I := 0 to 10 do // Correct, begin appears on a separate line
begin
|
ºí·°¹®³»ÀÇ ¸¶Áö¸· ¸í·ÉÁÙÀÇ »ý·Â°¡´ÉÇÑ ¼¼¹ÌÄݷеµ Âï¾îÁÖ´Â °ÍÀ» ¿øÄ¢À¸·Î ÇÑ´Ù.
begin
MyStatement;
MyNextStatement;
MyLastStatement; // semicolon optional
end;
|
ÆÄÀÏÀ̸§¿¡´Â InfixCaps ȤÀº Camel Caps ¹æ½ÄÀÎ ´Ü¾î ù ¾ËÆÄºª¸¸ ´ë¹®ÀÚ¸¦ ¾²´Â ¹æ½ÄÀ¸·Î ÇÑ´Ù.
´Ü, È®ÀåÀÚ´Â ¼Ò¹®ÀÚ·Î ÇÑ´Ù.
ÇÁ·ÎÁ§Æ®¸íÀº µÉ ¼ö ÀÖÀ¸¸é ÇÁ·ÎÁ§Æ®ÀÇ ³»¿ëÀ» ¼³¸íÇϵµ·Ï ¸¸µé¸ç,
Á¤ÇØÁø ÇÁ·ÎÁ§Æ® ÄÚµå¸íÀÌ ÀÖÀ» °æ¿ì¿¡´Â ÄÚµå¸íÀ» »ç¿ëÇÑ´Ù.
Æû ÆÄÀϸíÀº ±â´Éº° ȤÀº ±¸¼ºº°·Î ºÙÀÏ ¼ö ÀÖ´Â ±â´É¼ºÀ̸§°ú FormÀ̶ó´Â postfix¸¦ »ç¿ëÇÑ´Ù.
( ½ÇÁ¦·Î ÆûÀÇ .dfm ÆÄÀÏÀº À¯´Ö ÆÄÀϸíÀ» ÀúÀåÇÒ ¶§, °°Àº À̸§À¸·Î ±×´ë·Î ÀúÀåµÈ´Ù. )
À¯ÀÇ»çÇ×: Æû ÆÄÀϸíÀº µðÀÚÀÎÇÑ Æû Ŭ·¡½ºÀÇ ÀνºÅϽº¸íÀÌ ¾Æ´Ï´Ù.
ÆûÀÇ ÀνºÅϽº´Â TForm Ŭ·¡½º¸íÀÎ FormÀ̶ó´Â prefix¸¦ ºÙÀδÙ. (3.8 ÀνºÅϽº¸í ÂüÁ¶)
|
Æû ¼³¸í
|
Æû ÆÄÀϸí
|
|
About Form
|
AboutForm.dfm
|
|
Main Form
|
MainForm.dfm
|
µ¨ÆÄÀÌ ÆûÀÇ À¯´Ö À̸§Àº ÀÚµ¿ÀûÀ¸·Î Æû ÆÄÀϰú °°Àº À̸§À» »ç¿ëÇÑ´Ù. (2.2 Æû ÆÄÀÏÀ̸§ ÂüÁ¶),
¹Ý¸é¿¡ ÀÏ¹Ý À¯´ÖÀÏ °æ¿ì¿¡´Â UnitÀ̶ó´Â postfix¸¦ »ç¿ëÇÑ´Ù.
´Ü, C/C++ÀÇ Çì´õÆÄÀÏÀ» º¯È¯ÇÏ´Â °æ¿ì¿¡´Â È®ÀåÀÚ¸¦ Á¦¿ÜÇÑ ÆÄÀϸíÀ» ±×´ë·Î »ç¿ëÇÑ´Ù.
|
À¯´Ö ¼³¸í
|
À¯´Ö ÆÄÀϸí
|
|
About Form Unit
|
AboutForm.pas
|
|
Service Unit
|
ServiceUnit.pas
|
|
Windows.c
|
Windows.pas
|
ÆÐŰÁö ÆÄÀÏ¸í¿¡´Â ±¸ºÐÇÒ ¼ö ÀÖ´Â prefix¿¡
µðÀÚÀΟÀÓÆÐ۱â¿Í ·±Å¸ÀÓÆÐŰÁö¸¦ ±¸ºÐÇÒ ¼ö ÀÖ´Â infix¿Í
Áö¿øÇÏ´Â µ¨ÆÄÀ̹öÀüÀ» ³ªÅ¸³»±â À§ÇÑ D4, D5, D6¿Í °°Àº postfix·Î ±¸¼ºÇÑ´Ù.
|
"iiilibvv.pkg" - design package
"iiistdvv.pkg" - runtime package
|
ÇÔ¼ö¸íÀº µ¿»ç(+¸ñÀû¾î) ÇüÅ·Π»ç¿ëÇϸç, °ªÀ» °¡Á®¿À´Â °æ¿ì Get, °ªÀ» ¼³Á¤ÇÏ´Â °æ¿ì SetÀ» ¾´´Ù.
InfixCaps ¹æ½ÄÀ» »ç¿ëÇÑ´Ù.
procedure ThisIsMuchMoreReadableRoutineName;
|
procedure FormatHardDrive;
|
function GetUserName: string;
|
º¯¼ö¸íÀº ¸í»ç ÇüÅ·Π»ç¿ëÇϸç, InfixCaps ¹æ½ÄÀ» »ç¿ëÇÑ´Ù.
º¯¼ö¼±¾ðÀ» ÇÒ ¶§´Â °°Àº Çü³¢¸®´Â º¹¼ö¼±¾ðÇϸç, ´Ù¸¥ Çü³¢¸®´Â ´Ü¼ö¼±¾ð¸¸ ÇÑ´Ù.
µ¨ÆÄÀÌ¿¡¼´Â WIN32 Çü½ÄÀÎ Çë°¡¸®¾ð Ç¥±â¹ýÀ» ±ÇÀåÇÏÁö ¾Ê´Â´Ù.
ÇÏÁö¸¸, WIN32 API¸¦ »ç¿ëÇÒ °æ¿ì³ª, VisualStudio¿Í °°Àº ´Ù¸¥ Åø°úÀÇ ¿¬µ¿À» À§Çؼ´Â »ç¿ëÇØµµ ¹«¹æÇÏ´Ù.
var
nLoop, MyNumber: Integer; // Correct
lpstrMyString: String; // Incorrect
|
Ŭ·¡½ºÀÇ ¸â¹ö º¯¼öÀÏ °æ¿ì, F(Field) prefix¸¦ ÁÖ·Î »ç¿ëÇÑ´Ù.
Çʿ信 µû¶ó¼ P(Pointer-Æ÷ÀÎÅÍÇüº¯¼ö), G(Global-Àü¿ªº¯¼ö), L(Local-Áö¿ªº¯¼ö), X(temp-Àӽú¯¼ö), A(argument-ÇÔ¼öÆÄ¶ó¹ÌÅÍ)µîÀÇ prefix¸¦ ºÙÀÏ ¼ö ÀÖ´Ù.
³»ºÎ Å×ÀÌÅÍÇüÀº ¼Ò¹®ÀڷΠǥ±âÇϸç, WIN32 API µ¥ÀÌÅÍÇüÀº ´ë¹®ÀڷΠǥ±âÇÑ´Ù.
var
MyString: string; // reserved word
WindowHandle: HWND; // Win32 API type
I: Integer; // type identifier introduced in System unit
|
¿°ÅÇüÀº ¼±¾ðÇÒ ¶§´Â T(Type) prefix¸¦ ºÙÀ̸ç, ¿°ÅÇü ³»ºÎ ¸ñ·Ï¿¡´Â ¿°ÅÇü¿¡ ´ëÇÑ ±¸ºÐÀÚ(ȤÀº ¾àÀÚ)¸¦ 2-3±ÛÀÚ prefix·Î ºÙÀδÙ.
TSongType = (stRock, stClassical, stCountry);
|
¹è¿ÇüÀÇ °æ¿ì¿¡´Â T prefix, Array postfix¸¦ ºÙÀ̸ç,
¶ÇÇÑ µ¥ÀÌÅÍÀÇ Æ÷ÀÎÅÍÇüÀº P(Pointer) prefix¸¦ µ¡ºÙÀδÙ.
type
PCycleArray = ^TCycleArray;
TCycleArray = array[1..100] of Integer;
|
·¹ÄÚµåÀÇ °æ¿ì¿¡µµ T prefix¸¦ »ç¿ëÇϸç, ·¹ÄÚµå ³»ºÎ º¯¼ö¿¡´Â ºÙÀÌÁö ¾Ê´Â´Ù.
type
PEmployee = ^TEmployee;
TEmployee = record
Name: string;
Rate: Double;
end;
|
if¹®Àº Àû¾îµµ µÎ ÁÙ·Î ³»·Á¾´´Ù.
´Ù¸¸ ¼öÇ๮ÀÌ ÂªÀ¸¸é ÇÑ ÁÙ·Î ½áµµ ¹«¹æÇÏ´Ù.
// CORRECT
if A < B then DoSomething;
// CORRECT
if A < B then
DoSomething;
|
if-else¹®ÀÇ °æ¿ì ¼Ò½ºÀÇ ³í¸® ±¸Á¶¸¦ Ç¥ÇöÇÏ´Â ¼ö´ÜÀÌ´Ù.
°¢ ³í¸® ºí·Ï°£ÀÇ °ü°è°¡ ¸íÈ®ÇÏ°Ô ±¸ºÐµÈ´Ù¸é, ÀÚÀ¯·Î¿î ·¹º§°£ÀÇ µé¿©¾²±â¿Í begin-end Ç¥½Ã°¡ Çã¿ëµÈ´Ù.
±×¸®°í ƯÈ÷ if¹®ÀÌ ¹Ýº¹µÇ¼ ±æ °Ô »ç¿ëµÉ °æ¿ì begin-end¸¦ Ç¥½ÃÇÏ¿© ¹üÀ§¸¦ ¸íÈ®ÇÏ°Ô ÇÑ´Ù.
°¡´ÉÇϸé if-else¸¦ ¹Ýº¹Çؼ »ç¿ëÇÏÁö ¾Êµµ·Ï Çϸç, µÉ ¼ö ÀÖÀ¸¸é case¹®À¸·Î ±¸¼ºÇÑ´Ù.
// INCORRECT
if A < B then
if C < B then
DoSomething
else if D < B then
DoSomething;
// CORRECT
if A < B then
begin
if C < B then
DoSomething;
end
else if D < B then
DoSomething;
|
if¹®¾È¿¡ if¹®ÀÇ ±¸Á¶°¡ 5´Ü°èÀÌ»ó µé¾î°¡Áö ¾Êµµ·Ï Äڵ带 °£°áÈÇÑ´Ù.
¿©·¯ Á¶°ÇµéÀº ³ª¿ÇÒ ¶§´Â ¿ÞÂʺÎÅÍ ºóµµ°¡ ³ô°í, °¡´É¼ºÀÌ ³ôÀº °ÍÀ» ¼±ÅÃÇÑ´Ù.
if Condition1 and Condition2 and Condition3 then
|
case¹®Àº ¼ø¼°¡ ÀÖ´Â µ¥ÀÌÅÍÇü¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
case-else¹®µµ if-else¿Í °°ÀÌ ³í¸® ºí·Ï°£ÀÌ ¸íÈ®ÇÏ°Ô ±¸ºÐµÇ´Â ¹üÀ§¿¡¼ µé¿©¾²±â°¡ Çã¿ëµÈ´Ù.
if¹®°ú ¸¶Âù°¡Áö·Î Á߿䵵¿Í ºóµµ°¡ ³ôÀº °ÍÀÌ ÀÂÊ¿¡ ÀÖµµ·Ï ÇÑ´Ù.
°¢ case¸¶´Ù 4-5ÁÙÀ» ³Ñ¾î°¡Áö ¾Êµµ·Ï Çϸç, ±æ¾îÁú °æ¿ì µû·Î ÇÔ¼ö¸¦ ÀÛ¼ºÇϵµ·Ï ÇÑ´Ù.
// CORRECT
case Control.Align of
alLeft, alNone: NewRange := Max(NewRange, Position);
alRight: Inc(AlignMargin, Control.Width);
end;
// CORRECT
case x of
csStart:
begin
j := UpdateValue;
end;
csBegin: x := j;
csTimeOut:
begin
j := x;
x := UpdateValue;
end;
end;
// CORRECT
case ScrollCode of
SB_LINEUP, SB_LINEDOWN:
begin
Incr := FIncrement div FLineDiv;
FinalIncr := FIncrement mod FLineDiv;
Count := FLineDiv;
end;
SB_PAGEUP, SB_PAGEDOWN:
begin
Incr := FPageIncrement;
FinalIncr := Incr mod FPageDiv;
Incr := Incr div FPageDiv;
Count := FPageDiv;
end;
else
Count := 0;
Incr := 0;
FinalIncr := 0;
end;
// CORRECT (º¼·£µå ½ºÅ¸ÀÏ)
case ScrollCode of
SB_LINEUP, SB_LINEDOWN:
begin
Incr := FIncrement div FLineDiv;
FinalIncr := FIncrement mod FLineDiv;
Count := FLineDiv;
end;
SB_PAGEUP, SB_PAGEDOWN:
begin
Incr := FPageIncrement;
FinalIncr := Incr mod FPageDiv;
Incr := Incr div FPageDiv;
Count := FPageDiv;
end;
else
Count := 0;
Incr := 0;
FinalIncr := 0;
end;
|
while¹®¿¡¼´Â °¡´ÉÇÏ¸é ·çÇÁÁß¿¡ ºüÁöÁö¾Ê°í, loopÁ¶°ÇÀ¸·Î¸¸ Á¾·áµÇµµ·Ï ±¸¼ºÇÑ´Ù.
// INCORRECT
while x < j do begin
DoSomething;
DoSomethingElse;
end;
// CORRECT
while x < j do
begin
DoSomething;
DoSomethingElse;
end;
// CORRECT
repeat
x := j;
j := UpdateValue;
until j > 25;
|
¸¸¾à 1¾¿ Áõ°¡°¡ ¾Æ´Ñ °æ¿ì¶ó¸é, while¹®À» ÀÌ¿ëÇØ¼ ¸¶Áö¸·°ªºÎÅÍ °Å²Ù·Î ·çÇÁ¸¦ µ¹µµ·Ï ÇÑ´Ù.
// INCORRECT
for i := 0 to 10 do begin
DoSomething;
DoSomethingElse;
end;
// CORRECT
for i := 0 to 10 do
begin
DoSomething;
DoSomethingElse;
end;
// CORRECT
i := AList.Count-1;
while i => 0 do
i := i - 2;
|
with¹®À» »ç¿ëÇÒ °æ¿ì¿¡´Â º¹¼ö°´Ã¼³ª ±¸Á¶Ã¼¸¦ ÂüÁ¶ÇÏÁö ¾Êµµ·Ï ÁÖÀÇÇϸç,
°°Àº À̸§ÀÇ ´Ù¸¥ °´Ã¼ÀÇ ÇÁ·ÎÆÛƼ³ª ¸Þ¼Òµå¸¦ ÂüÁ¶ÇÏÁö ¾Ê´ÂÁö È®ÀÎÇØ¾ß ÇÑ´Ù.
¿¡·¯Ã³¸® (Exception Handling)´Â ¿¡·¯ º¹±¸¿Í ¸®¼Ò½º º¸È£ÀÇ ¿ªÇÒÀ» ÇÑ´Ù.
µÇµµ·Ï °¢ µ¿ÀûÇҴ縶´Ù try..finally ±¸¹®À» »ç¿ëÇÏ¿© ¿¹¿Ü»çÇ׿¡ ´ëºñÇÑ´Ù.
´ÙÀ½ÀÇ ¿¹Á¦´Â µ¿ÀûÇÒ´çµÈ Ŭ·¡½º¸¦ ÂüÁ¶ÇÒ ¶§, ¿¹¿Ü°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ¼û°ÜÁø ¹ö±×°¡ ÀÖ´Ù.
SomeClass1 := TSomeClass.Create
SomeClass2 := TSomeClass.Create;
try
{ do some code }
finally
SomeClass1.Free;
SomeClass2.Free;
end;
|
´ÙÀ½ÀÇ ¿¹Á¦´Â ¼û°ÜÁø ¹ö±×¸¦ ¾ø¾Ö´Â ¿Ã¹Ù¸¥ ¹æ¹ýÀÌ´Ù.
SomeClass1 := TSomeClass.Create
try
SomeClass2 := TSomeClass.Create;
try
{ do some code }
finally
SomeClass2.Free;
end;
finally
SomeClass1.Free;
end;
|
ƯÁ¤ ¿¹¿Ü »çÇ×ÀÌ ¹ß»ýÇßÀ» ¶§ÀÇ ÇൿÀ» À§ÇØ »ç¿ëÇÑ´Ù.
// Correct
try
try
EnumThreadWindows(CurrentThreadID, @Disable, 0);
Result := TaskWindowList;
except
EnableTaskWindows(TaskWindowList);
raise;
end;
finally
TaskWindowList := SaveWindowList;
TaskActiveWindow := SaveActiveWindow;
end;
|
Ȥ½Ã 󸮵ÇÁö ¾Ê´Â ¿¡·¯À» À§Çؼ´Â else ±¸¹®À» »ç¿ëÇÑ´Ù.
Ŭ·¡½ºÀÇ Access LevelÀº Private, Protected, Public, Published ¼øÀ¸·Î ³·À¸¸ç,
µ¥ÀÌÅÍ´Â µÉ ¼ö ÀÖÀ¸¸é Public ·¹º§À» »ç¿ëÇÏÁö ¾Ê°í, Private ·¹º§À» »ç¿ëÇÏ¸é¼ Access Method¸¦ Ȱ¿ëÇÑ´Ù.
Ŭ·¡½º¸íÀº T(Type) prefix¸¦ ºÙÀÌ°í ±â´É/¸ñÀû»óÀÇ À̸§À» ºÙÀδÙ.
Ŭ·¡½ºÀÇ ÀνºÅϽº¸íÀº Ŭ·¡½º¸íÀ» ¾Õ¿¡ ºÙÀ̰í, ±â´É/¸ñÀû»óÀÇ À̸§À» ºÙÀδÙ.
¿¹) FormMain, FormAbout, ButtonShowList , ButtonLoadImage
´Ü, À¯»çÇÑ ±â´ÉÀÇ Å¬·¡½º´Â °°Àº Ŭ·¡½º·Î ¹¾îµµ ¹«¹æÇÏ´Ù
¿¹) TButton°ú TSpeedButtonÀÇ ¿¹
°Á¶¸¦ À§Çؼ³ª, µÚ¿¡ ºÙ´Â À̸§°ú Ưº°È÷ ±¸ºÐÀÌ ÇÊ¿äÇÒ °æ¿ì¿¡´Â '_' ¸¦ ³Ö¾îµµ µÈ´Ù.
¿¹) FormMain, Form_About, Button_SaveToFile , Button_LoadFromFile
ÀÚ·áÁ¤¸® : ±èÁ¤(°íµå¸§)
|
|
|
|
|
|
|
|
 |
|