delphi - 사용자 정의 형식

4640 단어
이름 및 이름 없는 유형
delphi 형식을 사용자 정의하려면 코드를 특정한 type 영역에 두어야 합니다
type
    Uppercase='A'..'Z';
    Temperatures=array[1..24] of Integer;
     Colors=(red,yellow,green,blue);
     Letters=set of Char;

하위 경계 유형
하위 경계 유형은 특정 유형의 값 범위를 정의합니다.값을 1에서 10으로 가져오거나 100에서 1000으로 가져오거나 문자 유형의 하위 경계 유형을 다음과 같이 정수 유형의 하위 경계 유형을 정의할 수 있습니다.
type
  Ten = 1..10;
  OverHundred = 100..1000;
  Uppercase = 'A'..'Z';
       ,           ,             。           ,             。
         ,                     。        :
var
  UppLetter: UpperCase;
begin
  UppLetter := 'F';
다음 코드는 오류입니다.
var
  UppLetter: UpperCase;
begin
  UppLetter := 'e'; // compile-time error

열거 유형
               。      ,             ,            。    ,            。   :
type
  Colors = (Red, Yellow, Green, Cyan, Blue, Violet);
  Suit = (Club, Diamond, Heart, Spade);

컬렉션 유형
집합 유형은 집합이 근거로 하는 질서정연한 유형에 의해 정의된 그룹 값을 나타낸다.집합을 정의하는 데 자주 사용하는 질서 유형은 많지 않으며, 일반적으로 매거 유형이나 자계 유형이다.하위 경계 유형 값이 1이면...3, 그러면 그것에 근거한 집합 유형 값은 1, 또는 2, 또는 3, 또는 1과 2, 또는 1과 3, 또는 2와 3, 또는 모든 3개의 수를 취하거나 한 개의 수를 취할 수 있다.하나의 변수는 일반적으로 이 유형에 대응하는 값을 포함하지만, 집합 유형은 값을 포함하지 않고, 하나의 값, 두 개의 값, 세 개의 값을 포함하거나, 그 이상은 정의 범위 내의 모든 값을 포함할 수 있다.다음은 컬렉션을 정의합니다.
type
  Letters = set of Uppercase;
현재 나는 상기 형식으로 변수를 정의하고 원시 형식의 값을 변수에 부여할 수 있다.집합에서 한 조의 값을 표시하기 위해서는 쉼표로 값을 구분하고 마지막에 네모난 괄호로 끝내야 한다.다음 예제에서는 여러 값, 단일 값 및 빈 값에 대한 변수 지정을 보여 줍니다.
var
  Letters1, Letters2, Letters3: Letters;
begin
  Letters1 := ['A', 'B', 'C'];
  Letters2 := ['K'];
  Letters3 := [];
델피에서 집합은 일반적으로 여러 가지 선택의 표시를 나타내는 데 사용된다.예를 들어 다음 두 줄 코드(Delphi 라이브러리에서 발췌)는 창 표시줄에 선택할 수 있는 아이콘을 나열하고 해당 컬렉션 유형을 선언하는 열거 유형을 나타냅니다.
type
  TBorderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp);
  TBorderIcons = set of TBorderIcon;

배열 유형
그룹 형식은 지정한 형식의 요소 서열을 정의합니다. 네모난 괄호에 아래 값을 입력하면 그룹의 요소에 접근할 수 있습니다.배열을 정의할 때 대괄호도 가능한 아래 첨자 값을 지정하는 데 사용됩니다.예를 들어, 다음 코드에서는 24개의 정수로 구성된 배열을 정의합니다.
type
  DayTemperatures = array [1..24] of Integer;

상기 그룹 정의 방법을 사용하여 하나를 정의합니다
DayTemperatures
유형의 변수는 다음과 같습니다.
type
  DayTemperatures = array [1..24] of Integer;
var  
  DayTemp1: DayTemperatures;
procedure AssignTemp;  
begin  
  DayTemp1 [1] := 54;
  DayTemp1 [2] := 52;
  ...
  DayTemp1 [24] := 66;
  DayTemp1 [25] := 67; // compile-time error

배열은 다음과 같은 다차원일 수 있습니다.
type
  MonthTemps = array [1..24, 1..31] of Integer;
  YearTemps = array [1..24, 1..31, Jan..Dec] of Integer;
    

기록 형식은 서로 다른 형식의 데이터 항목의 고정 집합을 정의하는 데 사용됩니다.기록에 있는 모든 원소, 또는 필드는 그 자체의 유형이 있다.레코드 유형 정의에는 도메인 이름별로 액세스할 수 있는 도메인이 모두 나열됩니다.
다음은 기록 유형의 정의, 유형 변수의 성명과 이런 변수의 사용을 간단하게 열거했다.
type
  Date = record
    Year: Integer;
    Month: Byte;
    Day: Byte;
  end;
  
var
  BirthDay: Date;
  
begin
  BirthDay.Year := 1997;
  BirthDay.Month := 2;
  BirthDay.Day := 14;
  
         (      )         ,           。             ,        ,           (^),   :
var
  P: ^Integer;
  X: Integer;
begin
  P := @X;
  // change the value in two different ways
  X := 10;
  P^ := 20;
포인터 P를 정의하면 P는 포인터가 가리키는 메모리 주소를 나타내고 P^는 메모리에 저장된 실제 내용을 나타낸다.따라서 위 코드에서 P^는 X와 같습니다.
할당된 메모리의 주소를 표시하는 것 외에, 바늘은 뉴 루틴을 통해 무더기에서 메모리를 동적으로 분배할 수 있지만, 이 바늘이 필요하지 않을 때, Dispose 루틴을 호출해서 동적 할당된 메모리를 방출해야 한다.
Delphi는 또한 포인터 데이터 형식을 정의했는데, 포인터는 형식이 없는 포인터를 나타낸다. (C 언어의void*와 같다.)만약 형식이 없는 포인터를 사용한다면, 메모리 분배 크기가 확실하지 않은 경우에 GetMem 루틴이 아니라 GetMem 루틴을 사용해야 합니다.
실제로 델파이에서 바늘을 사용해야 하는 경우는 드물다. 이것은 델파이 개발 환경의 매력적인 장점이다.그럼에도 불구하고 고급 프로그래밍을 하고 Delphi 대상 모델을 완전히 이해하려면 지침을 이해하는 것이 중요하다. 왜냐하면 Delphi 대상 모델이 배후에서 지침을 사용했기 때문이다.
    
   Pascal             (file)。            ,   Pascal         。      ,             :
type
  IntFile = file of Integer;
그리고 이 구조에 해당하는 물리 파일을 열거나 파일에 정수를 쓰거나 파일에서 현재 값을 읽을 수 있습니다.
Pascal 파일 형식의 사용은 매우 직관적이며 Delphi에서도 파일 저장과 마운트, 데이터 흐름과 데이터베이스에 대한 지원을 위한 컨트롤을 정의했다.

좋은 웹페이지 즐겨찾기