Ссылки на GROUP

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7324
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Ссылки на GROUP

Сообщение Игорь Столяров »

Привет всем ! :)
Подскажите пожалуйста, в чём проблема с объявлением ссылок на GROUP:

Вот так - правильно:

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

Group1  Group,Type
X       SReal
Y       SReal
Next    &Group1
        end
А вот так - уже неправильно:

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

Group1  Group,Type
X       SReal
Y       SReal
Next    &Group1
        end

Group2  Group,Type
Width       SReal
Height      SReal
Link1       &Group1  ! НЕВЕРНЫЙ ТИП ДАННЫХ
        end
Почему !? :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Ссылки на GROUP

Сообщение Дед Пахом »

По-моему, допускается только &GROUP.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Ссылки на GROUP

Сообщение kreator »

Игорь Столяров, а в чём неправильность второго варианта? Я не догнал :) .
Ещё "like" есть, если что.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7324
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Ссылки на GROUP

Сообщение Игорь Столяров »

kreator писал(а): 10 Январь 2020, 10:03Я не догнал
Я тоже. Но транслятор говорит, что неправильный тип данных.
LIKE - не подходит, там должна быть ссылка на GROUP.
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Ссылки на GROUP

Сообщение kreator »

У меня на одиннадцатой версии второй вариант прошёл. Без амперсанда, да, ругается.
We are hard at work… for you. :)
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Ссылки на GROUP

Сообщение Губин Игорь »

kreator писал(а): 10 Январь 2020, 11:50Без амперсанда, да, ругается.
Без амперсанда и должен по синтаксису ругаться, т.к. Group1 это тип
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Ссылки на GROUP

Сообщение vic7tar »

Игорь Столяров писал(а): 09 Январь 2020, 17:49Вот так - правильно:

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

Group1  Group,Type
X       SReal
Y       SReal
Next    &Group1
        end
...
Вот так совсем неправильно.
Зачем гадать?, ну ведь Дед Пахом указал на правильное направление:

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

Group1  Group,Type
X       SReal
Y       SReal
Next    &Group
        end

Group2  Group,Type
Width       SReal
Height      SReal
Link1       &Group  
         end

G1 Group(Group1). 
G2 Group(Group2).

 CODE
    G1.X = 1
    G1.Y = 2
    G1.Next &= G1

    G2.Height = 3
    G2.Width = 4
    G2.Link1 &= G1
    ...
C10, Win10x64
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7324
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Ссылки на GROUP

Сообщение Игорь Столяров »

vic7tar писал(а): 12 Январь 2020, 13:27Зачем гадать?, ну ведь Дед Пахом указал на правильное направление:
Оно как бы да, но только в том случае, если сам себе архитектор и программист.
А в моём, тяжёлом, случае описывается структура данных, где эти цепочки групп реализуются внешней DLL на VC6. :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Ссылки на GROUP

Сообщение RaFaeL »

Во внешнюю DLL надо объявлять все эти ссылки как LONG и передавать address()
Посмотри как в libxlsxwriter сделано ну например метод SetPoints ну или попроще SetProperties
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Ссылки на GROUP

Сообщение vic7tar »

RaFaeL писал(а): 12 Январь 2020, 14:36Во внешнюю DLL надо объявлять все эти ссылки как LONG и передавать address()
Не обязательно, можно как address, а можно как и ссылку на группу.
Игорь Столяров писал(а): 12 Январь 2020, 13:57А в моём, тяжёлом, случае описывается структура данных, где эти цепочки групп реализуются внешней DLL на VC6.
А этот тяжёлый случай случаем не zint.h? :lol:
C10, Win10x64
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7324
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Ссылки на GROUP

Сообщение Игорь Столяров »

vic7tar писал(а): 12 Январь 2020, 15:10А этот тяжёлый случай случаем не zint.h?
Ага. В принципе там уже всё разрулилось. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7324
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Ссылки на GROUP

Сообщение Игорь Столяров »

Всё было хорошо, пока не появились классы … :(
Нужно, что бы в классе была ссылка на GROUP заданной структуры.

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

TGroup         Group,Type
Number             Long
Phone                CString(121)
                    end

TClass           Class, Type, Module('XXX.clw'), Link('XXX.clw')
MyGroup              &TGroup     ! <--- ОШИБКА: НЕВЕРНЫЙ ТИП ДАННЫХ
FlagLoad              Byte(False)
                    end
Это можно как-то сделать ?
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Ссылки на GROUP

Сообщение Губин Игорь »

Странно, на QUEUE проходит...

Некогда проверять, попробуй &Group(TGroup)
Это я только кажусь дураком! На самом деле я полный идиот!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Ссылки на GROUP

Сообщение kreator »

Вот так прокатывает:

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

TClass           Class, Type, Module('XXX.clw'), Link('XXX.clw')
MyGroup              &Group
FlagLoad              Byte(False)
                    end
В ABC классах много таких конструкций. Всё равно же передаётся адрес. Даже если и не в клариновскую часть.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Ссылки на GROUP

Сообщение Дед Пахом »

Объявите LIKE(TGroup) в классе, и проблем не будет:

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

TClass   Class, Type, Module('XXX.clw'), Link('XXX.clw')
MyGroup              LIKE(TGroup)
FlagLoad              Byte(False)
                    end
С уважением, ДП
Ответить