Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 928

•  TDictionary Custom Sort  6 031

•  Fast Watermark Sources  5 835

•  3D Designer  8 643

•  Sik Screen Capture  6 153

•  Patch Maker  6 595

•  Айболит (remote control)  6 584

•  ListBox Drag & Drop  5 445

•  Доска для игры Реверси  95 383

•  Графические эффекты  6 797

•  Рисование по маске  5 970

•  Перетаскивание изображений  4 974

•  Canvas Drawing  5 345

•  Рисование Луны  5 071

•  Поворот изображения  4 608

•  Рисование стержней  3 267

•  Paint on Shape  2 508

•  Генератор кроссвордов  3 400

•  Головоломка Paletto  2 700

•  Теорема Монжа об окружностях  3 495

•  Пазл Numbrix  2 296

•  Заборы и коммивояжеры  2 986

•  Игра HIP  1 945

•  Игра Go (Го)  1 859

•  Симулятор лифта  2 208

•  Программа укладки плитки  1 931

•  Генератор лабиринта  2 369

•  Проверка числового ввода  2 056

•  HEX View  2 377

•  Физический маятник  2 010

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Проблема передачи записи



Может это не то, что вы ищете, но идея такая:

Определите базовый класс с именем, скажем, allrecs:


tAllrecs = class
function getVal (field: integer): string; virtual;
end;

Затем создаем классы для каждой записи:


recA = class (tAllrecs)
this      : Integer;
that      : String;
the_other : Integer;
function getVal (field: integer): string; virtual;
end;

Затем для каждой функции класса определите возвращаемый результат:


function recA.getVal (field: integer); string;
begin
case field of
1: getVal := intToStr (this);
2: getVal := that;
3: getVal := intToStr (the_other);
end;
end;

Затем вы можете определить


function myFunc (rec: tAllrecs; field: integer);
begin
label2.caption := allrecs.getVal(field);
end;

затем вы можете вызвать myFunc с любым классом, производным от tAllrecs, например:


myFunc (recA, 2);
myFunc (recB, 29);

(getVal предпочтительно должна быть процедурой (а не функцией) с тремя var-параметрами, возвращающими имя, тип и значение.)

Все это работает, т.к. данный пример я взял из моего рабочего проекта.

[Sid Gudes, cougar@roadrunner.com]

Если вы хотите за один раз передавать целую запись, установите на входе ваших функций/процедур тип 'array of const' (убедитесь в правильном приведенни типов). Это идентично 'array of TVarRec'. Для получения дополнительной информации о системных константах, определяемых для TVarRec, смотри электронную справку по Delphi.





Похожие по теме исходники

Расчет зубчатой передачи




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте