Zrozumienie rodzaju zestawu Delphi

Jeden z Język Delphi funkcje niespotykane w innych współczesnych językach to pojęcie zbiorów.

Delphi'sskładać czcionki do druku to zbiór takich samych wartości typ porządkowy.

Zestaw jest definiowany za pomocą zestaw słowo kluczowe:

Typy zestawów są zwykle definiowane za pomocą podzakresów.

W powyższym przykładzie TMagicNumber jest niestandardowym typem podzakresu, który pozwala zmiennym typu TMagicNumber odbierać wartości od 1 do 34. Mówiąc wprost, typ podzakresu reprezentuje podzbiór wartości w innym typie porządkowym.

Możliwe wartości typu zestawu to wszystkie podzestawy typu podstawowego, w tym pusty zestaw.

Ograniczeniem zestawów jest to, że mogą pomieścić do 255 elementów.

W powyższym przykładzie typ zestawu TMagicSet to zestaw elementów TMagicNumber - liczby całkowite od 1 do 34.

Deklaracja TMagicSet = zestaw TMagicNumber jest równe następującej deklaracji: TMagicSet = zestaw 1..34.

Ustaw zmienne typu

W powyższym przykładzie zmienne emptyMagicSet, oneMagicSet i anotherMagicSet są zestawami TMagicNumber.

instagram viewer

Do przypisać wartość do zmiennej typu zestawu użyj nawiasów kwadratowych i wypisz wszystkie elementy zestawu. Jak w:

Uwaga 1: każda zmienna typu zestawu może zawierać pusty zestaw oznaczony przez [].

Uwaga 2: kolejność elementów w zestawie nie ma znaczenia, ani nie ma znaczenia, aby element (wartość) był zawarty dwukrotnie w zestawie.

Słowo kluczowe IN

Aby sprawdzić, czy element jest wliczony w cenę w zestawie (zmiennym) użyj W słowo kluczowe:

Ustaw operatory

W ten sam sposób możesz zsumować dwie liczby, możesz mieć zestaw, który jest sumą dwóch zbiorów. Dzięki zestawom Twoje wydarzenie ma więcej operatorów:

  • + zwraca połączenie dwóch zbiorów.
  • - zwraca różnicę dwóch zestawów.
  • * zwraca przecięcie dwóch zbiorów.
  • = zwraca true, jeśli dwa zestawy są równe - mają ten sam element.
  • <= zwraca true, jeśli pierwszy zestaw jest podzbiorem drugiego zestawu.
  • > = zwraca true, jeśli pierwszy zestaw jest nadzbiorem drugiego zestawu.
  • <> zwraca true, jeśli dwa zestawy nie są identyczne.
  • IN zwraca true, jeśli element jest zawarty w zestawie.

Oto przykład:

Czy procedura ShowMessage zostanie wykonana? Jeśli tak, co zostanie wyświetlone?

Oto implementacja funkcji DisplayElements:

Wskazówka: tak. Wyświetlany: „18 | 24 |”.

Liczby całkowite, postacie, booleany

Oczywiście podczas tworzenia typów zestawów nie ogranicza się do wartości całkowitych. Typy porządkowe delfickie obejmują wartości znakowe i logiczne.

Aby uniemożliwić użytkownikom wpisywanie kluczy alfa, dodaj ten wiersz w polu OnKeyPress kontroli edycji:

Zestawy z wyliczeniami

Często stosowanym scenariuszem w kodzie Delphi jest mieszanie zarówno typów wyliczonych, jak i zestawów typów.

Oto przykład:

Pytanie: czy komunikat zostanie wyświetlony? Odpowiedź: nie :(

Ustawia we właściwościach sterowania Delphi

Gdy chcesz zastosować „pogrubienie” do czcionki używanej w kontrolkach TEdit, użyj Inspektora obiektów lub następującego kodu:

Właściwość Styl czcionki jest właściwością typu zestawu! Oto jak to jest zdefiniowane:

Tak więc wyliczony typ TFontStyle jest używany jako typ podstawowy dla zestawu typu TFontStyles. Właściwość Style klasy TFont jest typu TFontStyles - dlatego jest to właściwość type set.

Kolejny przykład obejmuje wynik funkcji MessageDlg. Funkcja MessageDlg służy do wyświetlania okna komunikatu i uzyskiwania odpowiedzi użytkownika. Jednym z parametrów tej funkcji jest parametr Buttons typu TMsgDlgButtons.

TMsgDlgButtons jest zdefiniowany jako zestaw (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp).

Jeśli wyświetlisz użytkownikowi komunikat zawierający przyciski Tak, OK i Anuluj, a chcesz wykonać kod, jeśli klikniesz przycisk Tak lub Ok, możesz użyć następnego kodu:

Ostatnie słowo: zestawy są świetne. Zestawy mogą wydawać się mylące Początkujący Delphi, ale jak tylko zaczniesz używać zmiennych typu set, przekonasz się, że zapewniają one znacznie więcej niż początkowo zabrzmiało.