Страница 2 из 2

Пакет QUEUE

Добавлено: 30 Ноябрь 2018, 11:55
Игорь Столяров
kreator писал(а): 30 Ноябрь 2018, 10:52Естественно!
Ну да. В принципе, если современная наука не знает других способов - то это решение вопроса.
Причём GROUP предпочтительней CLASS. Зачем платить больше, если и так всё работает ? ;)

Спасибо за помощь ! :)

Пакет QUEUE

Добавлено: 30 Ноябрь 2018, 12:03
kreator
Класс - это стильно, модно, молодёжно :D .

Пакет QUEUE

Добавлено: 30 Ноябрь 2018, 12:12
Дед Пахом
Не надо никаких NEW/DISPOSE:

Код: Выделить всё

Que1 QUEUE
Name string(20)
     END
Que2 QUEUE
City string(20)
street string(32)
     END

SuperGrp  GROUP
Names        &QUEUE
Addresses    &QUEUE
          END

SuperGrp.Names &= Que1
SuperGrp.Addresses &= Que2

Пакет QUEUE

Добавлено: 30 Ноябрь 2018, 16:02
Игорь Столяров
Дед Пахом писал(а): 30 Ноябрь 2018, 12:12Не надо никаких NEW/DISPOSE:
Спасибо ! Это уже совсем хорошо. Я бы даже сказал просто отлично !
Пакет очередей - есть, и можно очень удобно подцеплять для передачи в процедуры нужные очереди !
И при этом не париться с контролем и утечками памяти. :)

Пакет QUEUE

Добавлено: 30 Ноябрь 2018, 16:55
finsoftrz
Дед Пахом писал(а): 30 Ноябрь 2018, 12:12Не надо никаких NEW/DISPOSE:
Ну вот, только хотел поглумиться над "молодежью", дедушка опередил... :-)

Пакет QUEUE

Добавлено: 02 Декабрь 2018, 12:15
vic7tar
Дед Пахом писал(а): 30 Ноябрь 2018, 12:12. . .
SuperGrp.Addresses &= Que2
А эта штука даст нужный результат?

Пакет QUEUE

Добавлено: 02 Декабрь 2018, 22:57
Yufil
Я вот в начале показывал ( правда, неудачно) свой класс Dumper, куда фигачатся ссылки на несколько заранее неизвестных очередей и/или групп. Мне как раз надо было передавать-сохранять-восстанавливать пачку очередей-групп-просто переменных.
DumpClass.Q содержит очередь ссылок на элементы - очереди, потом по идентификатору я могу достать нужный элемент обратно.

Код: Выделить всё

DumpQ     Queue,Type
Id        Cstring(20)  ! Идентификатор переменной
Type      String(1)    ! Тип поля
Addr      Any          ! Адрес поля
AddrG     &Group       ! Адрес группы
AddrQ     &Queue       ! Адрес очереди
Address   Ulong        ! Истинный адрес группы
RecSize   Long         ! Размер поля
RecCount  Long         ! Количество записей
          End


DumpClass Class,Type,Module('Dumper.Clw')
Q         &DumpQ
DebugInfo Cstring(1000)
Construct  Procedure
Destruct  Procedure
AddField  Procedure(String,*?)
AddField  Procedure(String,*Group)
AddField  Procedure(String,*Queue)
SaveBlob  Procedure(*Blob)
LoadBlob  Procedure(*Blob),Long,Proc
          End
DumpClass позволяет давать ссылки на произвольное количество очередей в одном объекте.

Код: Выделить всё

     P.AddField('ZTstQ',TstQ)
     P.AddField('ResQ',ResQ)
     P.AddField('Qlist',QList)
     P.AddField('QGroup',QGroup)
Здесь я в одном элементе ссылаюсь на очереди TstQ, ResQ, Qlist и Qgroup ( что-то связанное с тестированием - список тестов-вопросов-ответов и прочее ). А потом можно передать объект типа DumpClass и по имени вытащить необходимые очереди. Собственно, работает давным-давно...

Это вот всякие исходники...
https://mega.co.nz/#!pxY0VQwR!B2l1BEHvb ... voxTx-XoSI
https://mega.co.nz/#!R4Rg1TAK!hyP2E8Wsy ... l8fPlta2lI