Множества, записи и перечисляемые типы
Обработка больших строк в 16-битной версии Delphi задача далеко непростая. Особенно когда строки являются частью структуры записи и вы хотите передать их в TMemo. В данном совете показано как создать структуру записи размером 1000 символов, прочесть в нее содержимое Memo и затем записать ее обратно в Memo. Основной метод, который мы здесь используем - метод Memo GetTextBuf. Используемая структура записи представляет собой простую строку и массив из 1000 символов, но структура могла бы быть сложнее.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Множества, записи и перечисляемые типы
Code: |
// For example, if you have some enum type // Als Beispiel, wenn dieser Aufzahlungstyp vorhanden ist {....} type TYourEnumType = (One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten); {....} { And you want in run-time to get a string with same value for each of them (for example, fill the Listbox items with enum values), then you can use the next procedure: } uses TypInfo; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i := Ord(Low(TYourEnumType)) to Ord(High(TYourEnumType)) do ListBox1.Items.Add(GetEnumName(TypeInfo(TYourEnumType), i)); end; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Множества, записи и перечисляемые типы
Code: |
{You do that simple by converting it to an integer, and then stores that:} type pFontStyles = ^TFontStyles; pInteger = ^integer; function FontStylesToInteger(const Value : TFontStyles): integer; begin Result := pInteger(@Value)^; end; function IntegerToFontStyles(const Value : integer): TFontStyles; begin Result := pFontStyles(@Value)^; end; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Множества, записи и перечисляемые типы
В Delphi 2.0 я пытаюсь прочесть текстовый файл и получаю проблему. Текстовый файл, который я хочу прочесть, имеет записи фиксированной длины, но в самих записях могут располагаться различные типы с различной длиной, и оканчиваться в различных позициях, в зависимости от типа.
Файл выглядит примерно так:
TFH.......<First record type, первый тип записи>
TBH.......<Second record type, второй тип записи>
TAB........<Third record type, третий тип записи>
TAA........<Fourth record type, четвертый тип записи>
Вы можете поймать больше одного зайца в случае объявления переменной записи, но если сделаете это правильно.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Множества, записи и перечисляемые типы
Dec Уменьшает значение переменной на заданную величину.
Inc Увеличивает значение переменной на заданную величину.
Odd Определяет четность аргумента.
Ord Возвращает порядковый номер выражения перечислимого типа или код ASCII выражения символьного типа.
Pred Возвращает значение, предшествующее аргументу.
Succ Возвращает значение, следующее за аргументом.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Множества, записи и перечисляемые типы
Может это не то, что вы ищете, но идея такая:
Определите базовый класс с именем, скажем, allrecs:
Code: |
tAllrecs = class function getVal (field: integer): string; virtual; end; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Множества, записи и перечисляемые типы
Множества - это наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется Object Pascal. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Множества, записи и перечисляемые типы