Чтение онлайн

на главную

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

Эти функции могут оказаться полезными при поддержке файлов данных, созданных с помощью старых версий Basic.

Суммируя вышесказанное, можно дать 3 рекомендации для получения доступа к вашим «MetaStock»-файлам:

1. Напишите вашу программу в QBasic/DOS

2. Найдите замену (с учетом совместимости с Delphi) для функций преобразований, упомянутых выше.

3. Напишите эти функции сами. Вы должны найти документацию для старых типов Single и Double, применявшихся в «Microsoft Binary Format», возможно в справочных файлах старых версий MS Basic.

Переменные 

Статические

переменные

Delphi 1 

Да, это работает. Объявите переменную в секции const, например:

procedure p;

const MyVariable : Integer = 0;

begin

 Inc(MyVariable);

end;

В нашем примере переменная MyVariable содержит количество вызовов P.

Тем не менее, это лучшее решение, чем использование взамен какого-либо поля объекта (если это возможно). 

Разное 

Переключение ключей компилятора

Быстрый и легкий путь вкл/выкл директив компилятора. Весь Borland pascal.

{$R+,L+} {Это директива компилятора плюс комментарий}

{{$R+,L+} {Эта строка – два комментария, похоже на картинку?}

Аналогично:

{$DEFINE DEVEL}

{$IFDEF DEVEL}

……

{$ELSEIF}

Переключение с «devel» компиляции на не-«devel» версию происходит простым прибавлением второй скобки в первой строке. Единственное нажатие клавиши позволит переключать вам ключи компилятора.

Также для скоростных манипулиций и кратковременных изменений отлично подойдут комментарии, расположенные за строкой:

if i=0 then inc(i); {выражение+комментарий}

ср.

{ if i=0 then inc(i); {закомментарена вся строка}

Сравните – два нажатия клавиш для установки фигурной скобки или десяток нажатий для установки (* *) до и после строки. Клавиша Del поможет вам вернуться в предыдущее состояние.

– P Gallagher

Получение ссылки на класс из объекта I

Мне необходимо получить ссылку на класс из объекта. Например, если у меня есть ссылка на объект (например, указатель на экземпляр TLabel), то мне необходимо получить ссылку на класс (например, ссылка на класс TLabel) для того, чтобы мне еще создать необходимое количество объектов данного класса. Другими словами, мне нужно дублировать экземпляры классов, создаваемые кем-то еще.

Класс, о котором идет речь, в Delphi не зарегистрирован (его

нет в палитре), поэтому GetClass('TLabel') не работает, даже если экземпляры класса существуют, работать с ними можно только через RTTI. Вдобавок к этому, у меня нет даже кода класса, поэтому работа через RTTI - единственный выход.

Вот пример, который получает ссылку на класс и назначает значения новому классу того же типа. Имейте в виду, что вам необходимо сделать некоторое преобразование типов, чтобы с полученным типом класса можно было сделать что-либо полезное, поскольку возвращаемый класс имеет тип TClass.

type TLabelClass = class of TLabel;

procedure TForm1.Button1Click(Sender: TObject);

var

 Ref : TLabelClass;

 New : TLabel;

begin

 Ref := TLabelClass(Label1.ClassType);

 New := Ref.Create(Self);

 New.Parent := Self;

 New.Caption := 'Фантастика!';

end;

Реплицирование класса может быть осуществлено одним из двух способов. Во-первых, вы можете воспользоваться методом Assign (который требует, чтобы ваши классы были наследниками TPersistent). Данный способ заключается в использовании метода Assign, работающего с TPersistentClass:

New.Assign(Label1);

Второй способ заключается в использовании автоматической поточности компонента (этот способ требует, чтобы ваши классы являлись наследниками TComponent, и чтобы они были зарегистрированы для потоковой системы).

В вашем вопросе вы исходили из неправильного предположения; классы могут регистрироваться потоковой системой И НЕ регистрироваться в Палитре Компонентов; обычно эти две вещи связаны, но не обязательно. Например, скажем, у вас имеется следующий класс:

TCustomer = class(TComponent)

private

 FCompany: string;

 FPhone : LongInt;

published

 property Company: string read FCompany write FCompany;

 property Phone: LongInt read FPhone write FPhone;

end;

Вы можете зарегистрировать класс для потоковой системы следующим образом:

RegisterClass(TCustomer);

который позволяет знать как осуществлять поточность для TCustomer, но не регистрирует его в Палитре Компонентов.

Поделиться:
Популярные книги

Изгой. Трилогия

Михайлов Дем Алексеевич
Изгой
Фантастика:
фэнтези
8.45
рейтинг книги
Изгой. Трилогия

Старатель 2

Лей Влад
2. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель 2

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Школа Семи Камней

Жгулёв Пётр Николаевич
10. Real-Rpg
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Школа Семи Камней

Тайны ордена

Каменистый Артем
6. Девятый
Фантастика:
боевая фантастика
попаданцы
7.48
рейтинг книги
Тайны ордена

Убивать чтобы жить 9

Бор Жорж
9. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 9

Мимик нового Мира 11

Северный Лис
10. Мимик!
Фантастика:
юмористическое фэнтези
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 11

Пришествие бога смерти. Том 5

Дорничев Дмитрий
5. Ленивое божество
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пришествие бога смерти. Том 5

Аномальный наследник. Том 3

Тарс Элиан
2. Аномальный наследник
Фантастика:
фэнтези
7.74
рейтинг книги
Аномальный наследник. Том 3

Опер. Девочка на спор

Бигси Анна
5. Опасная работа
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Опер. Девочка на спор

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Приручитель женщин-монстров. Том 8

Дорничев Дмитрий
8. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 8

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник