�g�b�v�y�[�W - �|��h�L�������g - Object Pascal �X�^�C���K�C�h - by Charles Calvert
�����H�Fhttp://dn.codegear.com/article/10280
�|�ɎQ�Ƃ�����������������܂���B��̃����N�͌������Č������������炵�����̂ł����A�|��ȍ~�ɍX�V����Ă��邩�����ꂸ�A���̖|��Ƃ͂��ꂪ���邩������܂���B
�F��O�N���X������̖����K�����������A���ꂾ���ł͋K��Ƃ��ĕs�\�����Ǝv���܂��B�K���ɕ⊮���܂��傤�B���Ȃ݂ɁA�O�u���ɏ�����Ă�����e�Ƃ͗����ɁAVCL �̃\�[�X���ɂ����̋K��ɏ]���Ă��Ȃ��\�[�X�͑��X����܂��B
�T�C�g���֘A�����N�FEconos - Delphi 4 �J���҃K�C�h �R�[�f�B���O�W�� , The Delphi Bug List ���{���
Object Pascal �X�^�C���K�C�h - by Charles Calvert
�v��:���̋L���� Delphi �R�[�h�̏����Ɋւ���W���X�^�C���ɕt���ďq�ׂĂ��܂��D���̕W���X�^�C���́CDelphi�`�[�������W�����Ă����K���Ɋ�Ă��܂��DObject Pascal �X�^�C���K�C�h
���̋K��� Delphi �̃R�[�h�̏����Ɋւ���W���X�^�C���ɕt���ďq�ׂĂ��܂��D���̕W���X�^�C���́CDelphi �`�[�������W�����Ă����K���Ɋ�Ă��܂��D
�����̓K�Ɋm�������d����ł́C�����ŋK�肷����̂Ƃ͈قȂ�K���������Ă��ē��R���Ǝv���܂��D�]���āC�������͂��Ȃ��������̃R�[�h�� Borland ��v���W�F�N�gJEDI�C���邢�͂��̑��̌��̃��|�W�g���ɑ���O�ɁC���Ȃ��̃R�[�h�� Borland �X�^�C���ɕϊ�����c�[�����g�p���邱�Ƃ������������܂��D���Ȃ��̏K����ς��邱�Ƃ������������͂���܂��C�������� Borland ���i�ƂƂ��ɏo�ׂ����S�ẴR�[�h�ɑ��C���̏K���ɏ]�����Ƃ������v�����Ă��܂��D�ǂ̂悤�Ȍ`���ł���C���̃��|�W�g���ɃR�[�h���o����ۂɂ͂��̏K���ɏ]�����Ƃ��������サ�܂��D
Object Pascal �͔������v���ꂽ����ł��D���̍ő�̒����̂ЂƂ͉ǐ��ł��D���̕W���́C���� Object Pascal �R�[�h�̉ǐ�����荂�߂�悤�ɐv����Ă��܂��D�J���҂����̎w�j�ɏ�����Ă���V���v���ȏK���ɏ]���C�ǂ݂₷�����ꂳ�ꂽ�X�^�C�����g�p���邱�Ƃɂ��C�S�Ă� Delphi �J���҂ɗ��v�������炷�W���𐄐i���邱�ƂɂȂ�ł��傤�D���̕W�����g�p����w�͂́C���ɕێ�ƃf�o�b�O�̃T�C�N���ɂ����āC�J���҂̃\�[�X�R�[�h�̉��l�𑝂����ƂɂȂ�ł��傤�D
����炪��Ƃ��čD�݂Ɋ�K���ł��邱�Ƃ͌����܂ł�����܂���D�������͂��̃y�[�W�Ő�������Ă���X�^�C����M�����C�^�����Ă��܂����C��������������x�����闝�R�́C���ꂪ����������ȊO���Ԉ���Ă���ƐM���Ă��邩��ł͂Ȃ��C�命���̊J���҂��]���W�������݂��邱�Ƃ̌��p��M���Ă��邩��ł��D�l�Ԃ͕W���ɓK�����C�悭�������� - �䂦�ɑf�������e�ՂɈӖ������ݎ��� - �p�^�[���������ɔF��������@�����܂��D���̓w�͂̔w�i�ɂ́C�命���̐l���e�ՂɃR�[�h�𗝉����邱�Ƃ��\�ɂ���W������肽���C�Ƃ����v��������܂��D�������������̃K�C�h���C������Ɏv�����Ƃ��Ă��C���炭�͓w�͂��Ă݂Ă��������D��������C���Ȃ�����ɂ��̃K�C�h���C�����g�p����悤�ɂȂ�Ɗm�M���Ă��܂��D���邢�͂��Ȃ����]�ނȂ�C�R�[�h�͂��Ȃ��Ǝ��̌`���ɕۂ��Ă����CBorland ����̃��|�W�g���ɑ���O�ɁC�������̃K�C�h���C���ɏ]�킹�邽�߂̃v���O���������s���Ă��������D
�Ⴆ�� Visual SlickEdit �̂悤�Ȉꕔ�̃e�L�X�g�G�f�B�^�́C����̃X�^�C���ɏ]���悤�ɃR�[�h�𐮌`����菕�������Ă���܂��D����Ɠ����@�\����邻�̑��̃c�[����m���Ă���ǎ҂́C���̃Z�N�V�����̍Ō�ɂ��鎄�̃A�h���X�ɒm�点�Ă��������D
Egbert van Nes �̊J�����������̃t�H�[�}�b�^�[�͈ȉ��� URL �������\�ł��D
http://www.dow.wau.nl/aew/delforexp.html
(�F�����̃����N�͐�Ă����̂ŏC�����܂���)
�s�̕i�̑I�����Ƃ��Ă� CrackerJax for Delphi ������܂��D
http://www.kineticsoftware.com/products.html
(�F�����̃����N�͐�Ă����̂ŏC�����܂���)
�������I���O�ɌJ��Ԃ��܂��DBorland �̃E�F�u�T�C�g��Ǝ������̐��i�Ƌ��ɏo�ׂ���� CD �ɂ����āC���̕W���͖@���ł��D�������͓��ꂳ�ꂽ�ǂ݂₷���X�^�C���ŃR�[�h��������Ǝv���Ă��܂��D���̃K�C�h���C���ɏ����ꂽ���[�����������邱�Ƃ́C���̖ڕW��B������ł��V���v���Ȏ�i�ł��D
���̋K��𑼂̃E�F�u�T�C�g�ɍڂ��Ȃ��ʼn������D����ɂ��̕����Ƀ����N���Ă��������D
�������Ă��t���Ă��܂��DCharlie Calvert �܂ŘA�����������D
(�F���Ȃ��Ƃ� 2004�N4�����_�Ń��[���A�h���X�͈���s���ƂȂ��Ă���C�A�������܂���ł����D���̂��߃����N�͍폜���܂���)
���̕����� Object Pascal �̕��@���`���悤�Ƃ�����̂ł͂���܂���D�Ⴆ�� else �̑O�ɃZ�~�R������u���͕̂��@�ᔽ�ł����C���̏ꍇ�͒P�ɃR���p�C�������������Ȃ��悤�Ɏd�����邾���ł��D���������āC���̃X�^�C���K�C�h�ɂ͂��̂悤�ȃ��[���͏�����Ă��܂���D���̕����� Object Pascal �����Ȃ��ɑI������^���Ă��镔���ɂ����Ď��ׂ��K�ȕ��j���`���邱�Ƃ�ړI�Ƃ��Ă��܂��D
�����Œ����K�C�h���C���� Delphi �\�[�X�̌��̕�������ɂ��Ă��܂��DDelphi �\�[�X�͂��̃K�C�h���C���ɐ��m�ɏ]���ׂ��ł��D���Ȃ������̃K�C�h���C���ɏ]���Ă��Ȃ��\�[�X���������ꍇ�ł��C���̐�������O�ꂽ�\�[�X�ł͂Ȃ��C���̃K�C�h���C�������Ȃ��̕W���Ƃ݂Ȃ��ׂ��ł��D�������Ȃ���C���Ȃ��Ƃ������̃R�[�h���ǂ̂悤�Ɍ�����ׂ����Ƃ�����ʓI�Ȋ��o��̂ɖ𗧂���C���Ȃ��͂��̃\�[�X�����̃K�C�h���C���̕⑫�Ƃ��Ďg�p����ׂ��ł��D
���̕����̃t�H�[�}�b�g�ƈꕔ�̗p��́CJava ����̃X�^�C���W�����`���邽�߂ɍs��ꂽ���ʂɊ�Ă��܂��DJava �� Object Pascal �\�[�X�̏����̃��[���ɂ͉e����^���Ă��܂��CSun �̃E�F�u�T�C�g�ɂ��镶���͂��̕����̊�b�ƂȂ��Ă��܂��D���ɂ��̕����̃X�^�C���ƃt�H�[�}�b�g�́CAchut Reddy �ɂ�� "A Coding Style Guide for Java WorkShop and Java Studio Programming" �̉e���������Ă��܂��D���̕����͎���URL�Ō��邱�Ƃ��ł��܂��D
URL:http://wwws.sun.com/software/sundev/whitepapers/java-style.pdf (PDF)
(�F�����̃����N�͐�Ă����̂ŏC�����܂���)
Delphi �`�[�������̕����̍쐬�ɑ傫���v�����܂����D���ۂ̂Ƃ���C�ނ�̏�������������̕�������邱�Ƃ͏o���Ȃ������ł��傤�D
Object Pascal �̃\�[�X�̓��j�b�g�� Delphi Project �t�@�C���ɕ������C���ɓ����K��ɏ]���܂��DDelphi Project �t�@�C���̊g���q�� DPR �ŁC�v���W�F�N�g�̃��C���\�[�X�ɂȂ�܂��D�v���W�F�N�g�Ŏg�p�����S�Ẵ��j�b�g�͊g���q PAS �������܂��D�v���W�F�N�g���ł͂��̑��ɁC�o�b�`�t�@�C���� html �t�@�C���CDLL ���̒lj��t�@�C���������������܂����C���̕����ł� DPR �t�@�C���� PAS �t�@�C���̏��������������܂��D
Object Pascal �͒����t�@�C�������T�|�[�g���Ă��܂��D�ЂƂ̖��O��t����̂ɕ����̒P����g�p����ꍇ�C�P�ꖈ�ɑ啶�����g�p����̂��ŗǂł�(��FMyFile.pas)�D����� InfixCaps�C�܂��� Camel Caps �Ƃ��Ēm���Ă��܂��D�g���q�͏������ł���ׂ��ł��D���j�I�ȗ��R�ɂ��CDelphi ���g�Ɋ܂܂�Ă���\�[�X�ł� 8.3 �`���ɐ�������Ă�����̂�����܂����C���͂�Ⴆ���ꂪ Delphi �`�[���ɂ���Ďg�p�����ł��낤�\�[�X�ł����Ă��C�J���҂͂��̐����ɔ�����K�v�͂���܂���D
C/C++ �̃w�b�_�t�@�C����|��ꍇ�C�g���q�� PAS �ł��邱�Ƃ������C�Ή����� Pascal �̃w�b�_�t�@�C���͖|�̃t�@�C���Ɠ������O�����ł��傤�D�Ⴆ�CWindows.h��Windows.pas�ɂȂ�܂��DPascal�̕��@�̐����̂��߂ɕ����̃w�b�_�t�@�C������̃��j�b�g�Ɍ������Ȃ���Ȃ�Ȃ��ꍇ�C�t�@�C�����܂Ƃ߂錳�ɂȂ郆�j�b�g�̖��O���g�p���܂��D�Ⴆ�CWinBase.h �� Windows.h �Ɋ܂߂�ꍇ�CWindows.pas �Ɩ������܂��D
�S�Ă� Object Pascal �̃��j�b�g�͈ȉ��̗v�f�����̏����Ŋ܂ނׂ��ł��D
�e�v�f�͏��Ȃ��Ƃ���s�ȏ�̋�s�ŋ��ׂ��ł��D
���Ȃ����K���Ǝv���ꏊ�ɒlj��̗v�f��g�ݓ���邱�Ƃ��o���܂��D�������C�t�@�C���̐擪�͏�ɃR�s�[���C�g�Ŏn�܂�C���Ƀ��j�b�g���C�����ď����R���p�C����`��R���p�C���w�߂�C���N���[�h���C���̎��� uses �߂Ƃ���������ς��Ă͂����܂���D
{*******************************************************} { } { Borland Delphi Visual Component Library } { } { Copyright (c) 1995,98 Inprise Corporation } { } {*******************************************************} unit Buttons; {$S-,W-,R-} {$C PRELOAD} interface uses Windows, Messages, Classes, Controls, Forms, Graphics, StdCtrls, ExtCtrls, CommCtrl;
type �߂�const �߂̑O�ɒu������Ctype �߂� const �߂��D���ȏ����ō����Ďg�����Ƃ��Ă���肠��܂���D
�������̏����́C�ŏ��� implementation�C����uses�߁C���ɃC���N���[�h���₻�̑��̃R���p�C���w�߂ƂȂ�ׂ��ł��D
implementation uses Consts, SysUtils, ActnList, ImgList; {$R BUTTONS.RES}
�S�Ẵ\�[�X�t�@�C���̓o�[�W�������ƕW���I�ȃR�s�[���C�g�ʒm���܂ރu���b�N�R�����g�Ŏn�܂�ׂ��ł��D�o�[�W�������͈ȉ��̃t�H�[�}�b�g�ł���ׂ��ł��D
{*******************************************************} { } { Widgets Galore } { } { Copyright (c) 1995,98 Your Company } { } {*******************************************************}
�R�s�[���C�g�ʒm�͏��Ȃ��Ƃ��ȉ��̍s���܂ނׂ��ł��D
Copyright (c) yearlist CopyrightHolder.
�������Ȃ����CBorland �ɂ���Ďg�p�����t�@�C�����쐬���Ă���T�[�h�p�[�e�B�Ȃ�C�R�s�[���C�g�ʒm�̍Ō�ɂ��Ȃ��̖��O��lj����Ă��\���܂���D
{*******************************************************} { } { Borland Delphi Visual Component Library } { Copyright (c) 1995,99 Borland International } { Created by Project JEDI } { } {*******************************************************}
�S�Ẵ\�[�X�t�@�C���̓��j�b�g�錾�������Ȃ���Ȃ�܂���D�P�� unit �͗\���ł���C�]���ď������ł���ׂ��ł��D���j�b�g���ɂ͑啶���Ə����������݂�����ׂ��ł���COS �̃t�@�C���V�X�e�����g�p���閼�O�Ɠ����łȂ���Ȃ�܂���D
unit MyUnit;
���̃��j�b�g���t�@�C���V�X�e����ɒu�����ꍇ�CMyUnit.pas �Ɩ�������܂��D
���j�b�g���� uses �錾�́C�������� uses �Ŏn�܂�ׂ��ł��D�e���j�b�g���Ő錾����Ă���L���s�^���C�Y�K���ɂ��������ă��j�b�g����lj����܂��D
uses MyUnit;
�e���j�b�g�̓J���}�ŋ���Ȃ���Ȃ炸�C�Ō�̃��j�b�g�̌��ɃZ�~�R�������u�����ׂ��ł��D
uses Windows, SysUtils, Classes, Graphics, Controls, Forms, TypInfo;
��̗�̂悤�� uses �߂����̎��̍s����n�߂�̂�̂��C���̂悤�Ƀ��j�b�g�̃��X�g���s����n�߂�̂��������������ł��D
uses Windows, SysUtils, Classes, Graphics, Controls, Forms, TypInfo;
uses �߂̃��j�b�g���X�g�� 80 �����ȓ��ɂȂ�悤�ɐ܂�Ԃ�����C�s���ɂЂƂ����j�b�g�������Ă��\���܂���D
class �錾�͋�2��������n�܂�C���̌�ɑ啶�� T ����n�܂鎯�ʎq�������܂��D���ʎq�͑啶���Ŏn�߁C���ߍ��܂�Ă���P�ꖈ�ɑ啶�����g�p����ׂ��ł�(InfixCaps)�DObject Pascal �\�[�X�ł̓^�u�������g�p���Ă͂����܂���D
��F
TMyClass
���ʎq�̌��ɂ͋�1�����C�C�R�[���L���C�������� class �Ƒ����܂��D
TMyClass = class
��ʃN���X���w�肵�����ꍇ�́C���ʁC��ʃN���X���C�����ʂ�lj����܂��D
TMyClass = class(TObject)
�X�R�[�v�w��q�͍��[�����2�������C���̗�Ŏ��������Ő錾�����ׂ��ł��D
TMyClass = class(TObject) private protected public published end;
�f�[�^�͏�� private �߂݂̂ɒu����C���̎��ʎq��F�Ŏn�܂�ׂ��ł��D�S�Ă̌^�錾�͍��[�����4�������ď������ׂ��ł��D
TMyClass = class(TObject) private FMyData: Integer; function GetData: Integer; procedure SetData(Value: Integer); public published property MyData: Integer read GetData write SetData; end;
�C���^�[�t�F�[�X�� class �錾�Ɠ������[���ɏ]���܂��D�������C���ׂẴX�R�[�v�w��q�� private �̃f�[�^�͍폜���Ȃ���Ȃ炸�Cclass �ł͂Ȃ� interface �ƋL�q���Ȃ�������܂���D
�����������ŏ������\����w�߂������CPascal �̑S�Ă̎��ʎq�ɂ� InfixCaps ���g�p���܂��D�܂�C�ŏ��̕������啶���ŁC���ʎq�̒��ɖ��ߍ��܂�Ă���e�P����啶���Ŏn�܂�C����������Ȃ�P����啶�����g�p���܂��D
��F
MyIdentifier MyFTPClass
���̋K���ɑ����ȗ�O�́C�w�b�_�t�@�C����|��ꍇ�ł��D���̏ꍇ�ɂ́C��ɂ��̃w�b�_�t�@�C���Ŏg�p����Ă���K���ɏ]���ׂ��ł��D�Ⴆ�CWM_LBUTTONDOWN �� wm_LButtonDown �Ƃ͏����܂���D
�w�b�_�t�@�C����|��ꍇ�������C�P��̋��ɃA���_�[�X�R�A���g�p���Ă͂����܂���D�N���X���͖����C�܂��͖�����ł���ׂ��ł��D�C���^�[�t�F�[�X����N���X���́C���̎�v�ȖړI��\���悤�ɂ��܂��D
�ǂ��^��: AddressForm, ArrayIndexOutOfBoundsException �����^��: ManageLayout // ������ delphi_is_new_to_me // �A���_�[�X�R�A
���̃Z�N�V�����̍ŏ��Ő������� InfixCaps ���g�p���܂��Dunit �錾 �̃Z�N�V�������Q�Ƃ��Ă��������D
���̃Z�N�V�����̍ŏ��Ő������� InfixCaps ���g�p���܂��D�e�^�錾�͑啶�� T �Ŏn�߂܂��D
TMyType
class/interface �錾�̃Z�N�V�������Q�Ƃ��Ă��������D
���̃Z�N�V�����̍ŏ��Ő������� InfixCaps ���g�p���܂��D�e�^�錾�͑啶�� F �Ŏn�߂܂��D�S�Ẵf�[�^�� private �߂ɒu���C���J����ꍇ�ɂ̓v���p�e�B��Q�b�^�[/�Z�b�^�[���g���܂��D�Ⴆ�C�t�B�[���h�l��Ԃ����ɂ� GetSomething �Ƃ������O���g�p���C�l���Z�b�g����葱���ɂ� SetSomething �Ƃ������O���g�p���܂��D
�w�b�_�t�@�C���̖|��̂��߂ɕK�v�ȏꍇ�������C�S�đ啶���̒萔��錾���Ă͂����܂���D
Delphi �̓J���t�H���j�A�ō���Ă��܂��D���̂��ߎ������́C�w�b�_�t�@�C���̖|��̂��߂ɕK�v�ȏꍇ�������C�\�L�@���g�p���܂���D
������ FMyString: string; ��� lpstrMyString: string;
��O�I�ɁC�^�ɂ̓n���K���A���L�@���g�p���܂��D
TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll);
���̏ꍇ�C�^�̊e�v�f�̑O�ɕ��� bk ��u���Ă��܂��Dbk �� ButtonKind ��\���Ă��܂��D
���O�t���K���ɂ��čl����ꍇ�C�ꎞ�ϐ���[�v�J�E���^�������C1 �����̃t�B�[���h���͔�����ׂ��ł��D
�ϐ� l (�������̃G��)�́C�ꕔ�̃v�����^��f�B�X�v���C��ł� 1 (�����̈�)�Ƌ�ʂ�����߁C������ׂ��ł��D
���\�b�h���ɂ� InfixCaps �X�^�C�����g�p����ׂ��ł��D�啶���Ŏn�߁C���O�̒��̊e�P��̍ŏ��̕����ɑ啶�����g�p���C����������Ȃ�P����啶�����g�p���܂��D�����ȊO�̕����͑S�ď������ɂ��܂��D�P��̋��ɃA���_�[�X�R�A���g�p���Ă͂����܂���D���̋K���͔�萔�t�B�[���h�̖����K���Ɠ����ł����C���̂ӂ��͕����ɂ���ĊȒP�ɋ�ʂł���_�ɒ��ӂ��Ă��������D���\�b�h���͖��ߌn������������ł���ׂ��ł��D
// �ǂ����\�b�h��: ShowStatus, DrawCircle, AddLayoutComponent // �������\�b�h��: MouseButton // ������ł���C�@�\��\���Ă��Ȃ� drawCircle // ����������n�܂��Ă��� add_layout_component // �A���_�[�X�R�A // ���̃��\�b�h�̋@�\�͕������D // ����̓T�[�o�[�@�\���J�n����̂��H // (����Ȃ� StartServer �̕����ǂ�) // ����Ƃ��T�[�o�[���J�n����Ă��邩�ǂ������e�X�g����̂��H // (����Ȃ� IsServerRunning �̕����ǂ�) ServerRunning // �����傾���C���ߌ`�ł͂Ȃ�
�N���X�̃v���p�e�B���擾�E�ݒ肷�郁�\�b�h�́C���ꂼ�� GetProperty �� SetProperty �Ɩ�������ׂ��ł��D������ Property �͂��̃v���p�e�B�̖��O�ł��D
��:
GetHeight, SetHeight
�N���X�� boolean �^�v���p�e�B���e�X�g���郁�\�b�h�́C�Ⴆ���̃v���p�e�B���� Visible �ł���CIsVisible �Ɩ�������ׂ��ł��D
��:
IsResizable, IsVisible
���[�J���ϐ��̓t�B�[���h���Ɠ��������K���ɏ]���܂��D�������C����̓I�u�W�F�N�g�̃t�B�[���h�ł͂Ȃ��̂ŁC�ŏ��� F �͏Ȃ��܂��D(�Z�N�V���� 3.3 �Q��)
�\����w�߂͑S�ď������ŏ����ׂ��ł��D����͎��ɂ�����Ƃ��������������܂��D�Ⴆ�� Integer �̂悤�Ȍ^�͒P�Ȃ鎯�ʎq�Ȃ̂ő啶���Ŏn�߂܂����C������͗\��� string �Ƃ��Đ錾����Ă���̂ŁC�S�ď������ŏ����܂��D
(�F���Ȃ��Ƃ� Delphi 5 �̃R�[�h�⊮�@�\�ł� "String" �ƕ⊮����܂��D�P�Ȃ� Delphi ���̃~�X���C���邢�́Cstring �� Integer �Ɠ����悤�Ɉ����Ă��قƂ�ǖ��Ȃ����߂ɂ킴�Ƃ������Ă���̂��C�^���͕�����܂���)
�S�Ă̌^�錾�͕��� T �Ŏn�܂�C���̃Z�N�V�����̎n�����N���X�錾�̃Z�N�V�����ŏq�ׂ����̂Ɠ����L���s�^���C�Y�̋K��ɏ]���ׂ��ł��D
�_���I�Ɋ֘A�����R�[�h����s��p���ăO���[�v�����邱�Ƃɂ��C�ǐ������コ���邱�Ƃ��o���܂��D��s�͈ȉ��̂悤�ȏꏊ�ł��g�p����ׂ��ł��D
Object Pascal�͔��ɂ��ꂢ�œǂ݂₷������ł��D��ʂɁC�s�����邽�߂ɃR�[�h���ɑ����̋�lj�����K�v�͂���܂���D�ȉ��̃Z�N�V�����ŃR�[�h�ɋ�u���ۂɏ]���ׂ��������̃K�C�h���C���������܂��D
�������g�p��F
function TMyClass.MyFunc(var Value: Integer); MyPointer := @MyRecord; MyClass := TMyClass(MyPointer); MyInteger := MyIntegerArray[5];
�Ԉ�����g�p��F
function TMyClass.MyFunc( var Value: Integer ) ; MyPointer := @ MyRecord; MyClass := TMyClass ( MyPointer ) ; MyInteger := MyIntegerArray [ 5 ] ;
�S�ẴC���f���g���x���ɂ����āC��2�������g�p����ׂ��ł��D����������ƁC�ŏ��̃��x���̃C���f���g�͋�2�����C��Ԗڂ̃��x���ɂ͋�4�����C�O�Ԗڂɂ͋�6�����ƌ������Ƃł��D�^�u�������g�p���Ă͂����܂���D
�������̗�O������܂��D�\��� unit�Cuses�Ctype�Cinterface�Cimplementation�Cinitialization�Cfinalization �́C��ɍ��[����n�߂�ׂ��ł��D���j�b�g�̍Ō�� end �����[����n�߂�ׂ��ł��D�v���W�F�N�g�t�@�C�����ł́Cprogram �ƃ��C���� begin �� end �͏�ɍ��[����n�߂�ׂ��ł��Dbegin..end �u���b�N�̓����̃R�[�h�͏��Ȃ��Ƃ���2�����ŃC���f���g�����ׂ��ł��D
�e�s�� 80 ���ɐ�������ׂ��ł��D80 �����z����s�͕K�v�ɉ����� 2 �s�ȏ�ɐ܂�Ԃ��܂��D�܂�Ԃ����s�͐擪�̍s�ɑ��� 2 �������̃C���f���g��t���ĕ��ׂ܂��Dbegin ���͂��ꂾ���ň�s�ɂ��܂��D
��:
// ������ function CreateWindowEx(dwExStyle: DWORD; lpClassName: PChar; lpWindowName: PChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND; stdcall; // ������ if ((X = Y) or (Y = X) or (Z = P) or (F = J) then begin S := J; end;
�p�����[�^�Ƃ��̌^�̊Ԃł́C���ꂪ�J���}���̃��X�g�ł���ꍇ�������C�܂�Ԃ��Ă͂����܂���D�J���}���̃��X�g�̏ꍇ�́C���̍s�Ɍ^���������悤�ɁC���Ȃ��Ƃ��Ō�̃p�����[�^�̒��O�Ő܂�Ԃ��܂��D�ϐ����ƃR�����̊Ԃɂ͋����܂���D�R�����ƌ^���̊Ԃɂ͂ЂƂ��������܂��D
// ������ procedure Foo(Param1: Integer; Param2: Integer); // ��� procedure Foo( Param :Integer; Param2:Integer );
�_�����Z�q�̑O�ōs��܂�Ԃ��ׂ��ł͂���܂���D���ʂ͋�u���Ȃ��ꏊ�C�Ⴆ���\�b�h���Ƃ��̌��̊��ʂ̊Ԃ�C�z�Ƃ��̌��̃u���P�b�g�̊Ԃ̂悤�ȏꏊ�ł́C�s��܂�Ԃ����Ƃ͔����Ȃ��Ă͂����܂���D�����ǂ����Ă����̂悤�ȏŐ܂�Ԃ��Ȃ���Ȃ�Ȃ��ꍇ�C���s�ł���ꏊ�Ƃ��Ă̓��\�b�h���̒���̊J�����ʂ̌オ����܂��Dbegin �������̑��̃R�[�h�Ɠ����s�ɏ����Ă͂����܂���D
��:
// ������ while (LongExpression1 or LongExpression2) do begin // DoSomething // DoSomethingElse; end; // ������ while (LongExpression1 or LongExpression2) do begin // DoSomething // DoSomethingElse; end; // ������ if (LongExpression1) or (LongExpression2) or (LongExpression3) then
Object Pascal ����́C�u���b�N�R�����g�ƒP��s�R�����g�̓��ނ̃R�����g���T�|�[�g���Ă��܂��D�R�����g�̎g�p�Ɋւ��邢�����̈�ʓI�K�C�h���C�����ȉ��Ɏ����܂��D
i := i + 1; // i��1��������
��:
// ???: Sort ���C�����ꂽ��CSort �̌Ăяo���ɕύX���� List.MySort;
Object Pascal �͓��ނ̃u���b�N�R�����g���T�|�[�g���Ă��܂��D�ł���ʓI�Ɏg�p�����u���b�N�R�����g�́C�u���[�X�̃y�A { } �ł��DDelphi �`�[���͂��̃^�C�v�̃R�����g���o���邾���Ȍ��ɕۂ̂��D�݂܂��D�Ⴆ�C�R�����g���ɐ���͗l����邽�߂ɃA�X�^���X�N���g���͔̂�����ׂ��ł��D���̑���C���[�v�������Ɠ����悤�ɋ�s���g�p���ăR�����g�����܂��D�ȉ��� DsgnIntf.pas ����̔����̂悤�ɁC�R�����g���̌��t�͍ŏ��̃u���[�X�Ɠ����s����n�߂�ׂ��ł��D
{ TPropertyEditor Edits a property of a component, or list of components, selected into the Object Inspector. The property editor is created based on the type of the property being edited as determined by the types registered by... etc... GetXxxValue Gets the value of the first property in the Properties property. Calls the appropriate TProperty GetXxxValue method to retrieve the value. SetXxxValue Sets the value of all the properties in the Properties property. Calls the appropriate TProperty SetXxxxValue methods to set the value. }
�\�[�X�t�@�C���̍ŏ��� Copyright/ID �R�����g�ɂ́C��Ƀu���b�N�R�����g���g�p����܂��D�܂��C�����s�̃R�[�h���R�����g�A�E�g����ꍇ�ɂ��g���܂��D
���\�b�h���������u���b�N�R�����g�́C���\�b�h��`�̑O�ɒu���ׂ��ł��D
��:
// ������ { TMyObject.MyMethod This routine allows you to execute code. } procedure TMyObject.MyMethod; begin end; // ��� procedure TMyObject.MyMethod; {****************************************************** TMyObject.MyMethod This routine allows you to execute code. *******************************************************} begin end;
�����ЂƂ̃u���b�N�R�����g�́C��̕����C���ʂƃA�X�^���X�N���܂݂܂� (* *)�D���Ƃ��Ă����͐����ʃR�����g(starparen comments)�ƌĂ�܂��D��ʓI�ɁC���̃R�����g�͊J�����ɂ̂ݖ��ɗ����܂��D�Ȃ��Ȃ炱�̃R�����g�̎�ȗ��_���C2 �i�K�܂ł̃R�����g�̃l�X�g���\�ɂ��邱�Ƃ�����ł��DObject Pascal �͓�����ނ̃R�����g�̃l�X�g���T�|�[�g���Ă��܂���D�܂�C���ۂɂ̓R�����g�̃l�X�g��1�i�K�������݂����C�����ʂ̒��̃u���[�X�C�u���[�X�̒��̐����ʁC�Ƃ������Ƃł��D���ꂼ�ꂪ�l�X�g���Ă��Ȃ�����C���̃^�C�v�̃R�����g�̊Ԃɂ��邻�̑��̕W���I�� Pascal �̃R�����g�͖�������܂��D���������Ă��̕��@���g���C�R�[�h��R�����g�̍��������傫�ȃR�[�h�̌ł܂���܂Ƃ߂ăR�����g�A�E�g���邱�Ƃ��o���܂��D
(* procedure TForm1.Button1Click(Sender: TObject); begin DoThis; // Start the process DoThat; // Continue iteration { We need a way to report errors here, perhaps using a try finally block ??? } CallMoreCode; // Finalize the process end; *)
���̗�ł́C�v���V�[�W���� begin �� end �̊Ԃɂ��鑼�̃R�����g���܂߁C���\�b�h Button1Click �S�̂��R�����g�A�E�g���Ă��܂��D
�P��s�R�����g�́C������ // �ƁC����ɑ����e�L�X�g�ō\������܂��D// �ƃR�����g�̊Ԃɂ͋� 1 ���������ׂ��ł��D�P��s�R�����g�́C���̌�ɑ����R�[�h�Ɠ����C���f���g���x���ɒu���ׂ��ł��D�P��s�R�����g���p���āC���傫�ȃR�����g������Ă��\���܂���D
�P��s�R�����g��R�����g�O���[�v�̑O�ɂ́C���ꂪ�u���b�N�̍ŏ��̍s�ł͂Ȃ�����C��s�� 1 �s�u���ׂ��ł��D�����̕��ɑ��ĒP��s�R�����g��u���ꍇ�C���̃R�����g��R�����g�O���[�v�̌�ɂ���s��1�s�u���ׂ��ł��D�R�����g�����̕�(�������ł��ǂ�)�����ɓK�p�����ꍇ�C���̌�ɋ�s��u���Ă͂����܂���D
��:
// �f�[�^�x�[�X���J�� Table1.Open;
�P��s�R�����g�́C�R�����g�Ώۂ̃R�[�h�̌��ɑ����邱�Ƃ��o���܂��D���Ƀg���C�����O�R�����g(trailing comments)�ƌĂ�邱�̃R�����g�́C���̃R�����g����������R�[�h�Ɠ����s�ɒu����܂��D���̃R�����g�Ƃ��ꂪ��������R�[�h�Ƃ̊Ԃɂ͏��Ȃ��Ƃ�1�����̋�u���ׂ��ł��D�ЂƂ̃R�[�h�u���b�N�ɓ�ȏ�̃g���C�����O�R�����g�������ꍇ�C�����͑S�ē������ɑ�����ׂ��ł��D
��:
if (not IsVisible) then Exit; // nothing to do Inc(StrLength); // reserve space for null terminator
�S�ẴR�[�h�Ƀg���C�����O�R�����g��t���邱�Ƃ͔����Ȃ�������܂���D�ʏ�C���\�b�h����� begin..end ���ɏ����R�����g���ŏ����ɐ������邱�Ƃ͍œK�ł��D��蒷���R�����g�́C���\�b�h�錾����錾�̑O�̃u���b�N�R�����g���ɒu�����Ƃ��o���܂��D
�N���X�{�̂̐錾�͈ȉ��̏����ō\�������ׂ��ł��D
�N���X���̃t�B�[���h�C�v���p�e�B�C���\�b�h�́C���O�̃A���t�@�x�b�g���ɕ��ׂ�ׂ��ł��D
IDE �ɂ���đ}�������R�[�h�������C�N���X�̃X�R�[�v�w��q�͈ȉ��̏����Ő錾�����ׂ��ł��D
Object Pascal �ɂ̓N���X�̃����o�[�̃A�N�Z�X���x���Ƃ��āC�A�N�Z�X���x���̍������ɁCpublished�Cpublic�Cprotected�Cprivate ��4��ނ�����܂��D�f�t�H���g�̃A�N�Z�X���x���� published �ł��D��ʂɁC�����o�[�ɂ͂��̃����o�[�ɂƂ��ēK�ȍŒ���̃A�N�Z�X���x����^����ׂ��ł��D�Ⴆ�C�������j�b�g���̃N���X���炾���A�N�Z�X����郁���o�[�ɂ� private �A�N�Z�X����ݒ肷��ׂ��ł��D���Ⴂ�A�N�Z�X���x���Ő錾���邱�Ƃ́C������葽���̍œK���̋@����R���p�C���ɗ^���܂��D���̈���ŁCprivate �̎g�p�̓T�u�N���X���ɂ��N���X�̊g���������܂��D�����������̃N���X���T�u�N���X������邩������Ȃ��ƍl����Ȃ�C�T�u�N���X�ŕK�v�Ƃ���邩������Ȃ������o�[�� private �̑���� protected �Ő錾���Cprivate �ȃf�[�^�ւ̃A�N�Z�X�Ɏg����v���p�e�B�ɂ� protected �̒n�ʂ�^����ׂ��ł��D
�f�[�^�ւ� public �ȃA�N�Z�X�͌����ċ�����ׂ��ł���܂���D�f�[�^�͏�� private �߂Ő錾���Cpublic �ȃA�N�Z�X�̓Q�b�^�[�E�Z�b�^�[���\�b�h�C�܂��̓v���p�e�B���o�R����ׂ��ł��D
���\�b�h�̓A���t�@�x�b�g���ɕ��ׂ�ׂ��ł����C�R���X�g���N�^�ƃf�X�g���N�^�� public �߂̃��X�g�̐擪�ɒu���̂��C������ public �߂̃A���t�@�x�b�g���̈ʒu�ɒu���̂��C�ǂ�����������������ł��D
��ȏ�̃R���X�g���N�^�����݂��C����炪�S�ē������O�̏ꍇ�C��葽���̃p�����[�^�����R���X�g���N�^����菭�Ȃ��p�����[�^�����R���X�g���N�^�̌�ɗ���悤�ɂ��Ȃ���C�p�����[�^���X�g�̎������ɕ��ׂ܂��D�����(���������)���������̃R���X�g���N�^����ɐ擪�ɗ��邱�Ƃ��Ӗ����܂��DC++Builder �Ƃ̌݊����̂��߂ɂ́C�R���X�g���N�^�̃p�����[�^���X�g�����j�[�N�ɂȂ�悤�ɂ��܂��DC++ �̓R���X�g���N�^�𖼑O�ŌĂԂ��Ƃ��o�����C���������ĕ����̃R���X�g���N�^����ʂ���B��̕��@���p�����[�^���X�g�ɂȂ�܂��D
�\�Ȃ�C���\�b�h�錾�͈�s�ɂ���ׂ��ł��D
��:
// ���s���鎞�͍������2�������ĕ��ׂ܂��D procedure ImageUpdate(img: Image, infoflags: Integer, x: Integer, y: Integer, w: Integer, h: Integer);
�C���^�[�t�F�[�X�̓N���X�̐錾�Ɠ����悤�Ȍ`�Œ�`���܂��D
InterfaceName = interface([Inherited Interface]) InterfaceBody end;
�C���^�[�t�F�[�X�錾�͋� 2 �����ŃC���f���g���܂��D�C���^�[�t�F�[�X�{�̂� 4 �����ŃC���f���g���܂��D�I��� end ������ 2 �����ŃC���f���g���܂��D�I���� end ���̒���ɃZ�~�R������u���ׂ��ł��D
�C���^�[�t�F�[�X�錾�ɂ̓t�B�[���h�͂���܂���D�������C�v���p�e�B�͋�����܂��D
�C���^�[�t�F�[�X�̑S�Ẵ��\�b�h�́C�������Ȃ��Ă� public ���� abstract �ł��D�C���^�[�t�F�[�X���\�b�h�̐錾�̒��ɂ����̃L�[���[�h���I�Ɋ܂߂Ă͂����܂���D
��ɏ��������Ƃ������C�C���^�[�t�F�[�X�錾�̓N���X�̏ꍇ�Ɠ����K�C�h���C���ɏ]���܂��D
�C���^�[�t�F�[�X�錾�̖{�͈̂ȉ��̏����ō\�������ׂ��ł��D
�C���^�[�t�F�[�X�̃��\�b�h�ƃv���p�e�B�̐錾�X�^�C���́C�N���X�̃��\�b�h�ƃv���p�e�B�̃X�^�C���Ɠ����ł��D
���� 1 �s�ȏ�̃R�[�h�ƁC����ɑ����Z�~�R�������琬��܂��D�P�ꕶ�̓Z�~�R�������ЂƂ����܂݂܂��D����C�������͓�ȏ�̃Z�~�R�������܂݁C�����̒P�ꕶ���܂݂܂��D
����͒P�ꕶ�ł��D
A := B;
����͕���(���邢�͍\����)���ł��D
begin B := C; A := B; end;
�P�ꕶ�͂ЂƂ̃Z�~�R�������܂݂܂��D����܂�Ԃ��Ȃ���Ȃ�Ȃ��ꍇ�C��s�ڂ͒��O�̍s�ɑ��ċ� 2 �������C���f���g���܂��D
MyValue := MyValue + (SomeVeryLongStatement / OtherLongStatement);
�e�s�͂����ЂƂ̕����܂ނׂ��ł��D�Ⴆ�C
a := b + c; Inc(Count); // ��� a := b + c; // ������ Inc(Count); // ������
���[�J���ϐ��� Camel Caps (�啶���Ŏn�܂�C���ߍ��܂�Ă���e�P��̐擪���啶��)�ɏ]���ׂ��ł��D�ϐ����̑O�� F ��t�������Ă͂����܂���D����̓N���X�錾�̃t�B�[���h�p�ɗ\��Ă���K��������ł��D
var MyData: Integer; MyString: string;
�����^�̕����̎��ʎq����s�Ő錾���Ă��\���܂���D
var ArraySize, ArrayCount: Integer;
�������C�N���X�錾�ł͂��̋K�����g��Ȃ��ʼn������D�N���X�錾�̏ꍇ�͊e�t�B�[���h�����̌^�Ƌ��ɕʁX�̍s�ɏ����ׂ��ł��D
�J���u���P�b�g "[" �̑O�ƕ��u���P�b�g "]" �̌�ɁC��ɋ� 1 �����u���ׂ��ł��D
type TMyArray = array [0..100] of Char;
�������͏�ɃZ�~�R�����ŏI���܂����C���̒��オ end ���̏ꍇ�Ɍ���C�Z�~�R������u�����ǂ����͎��R�ł��D
begin MyStatement; MyNextStatement; MyLastStatement // �����ɂ̓Z�~�R�����������Ă������Ă��ǂ� end;
if���͏�ɍŒ� 2 �s�ŏ����ׂ��ł��D
��:
// ��� if A < B then DoSomething; // ������ if A < B then DoSomething;
�\���� if ���ł́C������e�v�f�����ꂼ��V�����s�ɏ����܂��D
��:
// ��� if A < B then begin DoSomething; DoSomethingElse; end else begin DoThis; DoThat; end; // ������ if A < B then begin DoSomething; DoSomethingElse; end else begin DoThis; DoThat; end;
�ȉ��́C�L�����ƍl���������̃o���G�[�V�����ł��D
// ������ if Condition then begin DoThis; end else begin DoThat; end; // ������ if Condition then begin DoThis; end else DoSomething; // ������ if Condition then begin DoThis; end else DoSomething;
�ȉ��̏������͍D�܂�܂���������ł��D
if Condition then DoThis else DoThat;
��:
// ��� for i := 0 to 10 do begin DoSomething; DoSomethingElse; end; // ������ for i := 0 to 10 do begin DoSomething; DoSomethingElse; end;
��:
// ��� while x < j do begin DoSomething; DoSomethingElse; end; // ������ while x < j do begin DoSomething; DoSomethingElse; end;
��:
// ������ repeat x := j; j := UpdateValue; until j > 25;
��:
// ������ case Control.Align of alLeft, alNone: NewRange := Max(NewRange, Position); alRight: Inc(AlignMargin, Control.Width); end; // ������ case x of csStart: begin j := UpdateValue; end; csBegin: x := j; csTimeOut: begin j := x; x := UpdateValue; end; end; // ������ 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;
��:
// ������ try try EnumThreadWindows(CurrentThreadID, @Disable, 0); Result := TaskWindowList; except EnableTaskWindows(TaskWindowList); raise; end; finally TaskWindowList := SaveWindowList; TaskActiveWindow := SaveActiveWindow; end;
�g�b�v�y�[�W - �|��h�L�������g - Object Pascal �X�^�C���K�C�h - by Charles Calvert