Обработка больших строк в 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 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.