Страница 1 из 2
Ссылки на GROUP
Добавлено: 09 Январь 2020, 17:49
Игорь Столяров
Привет всем !
Подскажите пожалуйста, в чём проблема с объявлением ссылок на 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
Почему !?
Ссылки на GROUP
Добавлено: 09 Январь 2020, 20:51
Дед Пахом
По-моему, допускается только &GROUP.
Ссылки на GROUP
Добавлено: 10 Январь 2020, 10:03
kreator
Игорь Столяров, а в чём неправильность второго варианта? Я не догнал
.
Ещё "like" есть, если что.
Ссылки на GROUP
Добавлено: 10 Январь 2020, 10:33
Игорь Столяров
kreator писал(а): ↑10 Январь 2020, 10:03Я не догнал
Я тоже. Но транслятор говорит, что неправильный тип данных.
LIKE - не подходит, там должна быть ссылка на GROUP.
Ссылки на GROUP
Добавлено: 10 Январь 2020, 11:50
kreator
У меня на одиннадцатой версии второй вариант прошёл. Без амперсанда, да, ругается.
Ссылки на GROUP
Добавлено: 12 Январь 2020, 7:53
Губин Игорь
kreator писал(а): ↑10 Январь 2020, 11:50Без амперсанда, да, ругается.
Без амперсанда и должен по синтаксису ругаться, т.к. Group1 это тип
Ссылки на GROUP
Добавлено: 12 Январь 2020, 13:27
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
...
Ссылки на GROUP
Добавлено: 12 Январь 2020, 13:57
Игорь Столяров
vic7tar писал(а): ↑12 Январь 2020, 13:27Зачем гадать?, ну ведь Дед Пахом указал на правильное направление:
Оно как бы да, но только в том случае, если сам себе архитектор и программист.
А в моём, тяжёлом, случае описывается структура данных, где эти цепочки групп реализуются внешней DLL на VC6.
Ссылки на GROUP
Добавлено: 12 Январь 2020, 14:36
RaFaeL
Во внешнюю DLL надо объявлять все эти ссылки как LONG и передавать address()
Посмотри как в libxlsxwriter сделано ну например метод SetPoints ну или попроще SetProperties
Ссылки на GROUP
Добавлено: 12 Январь 2020, 15:10
vic7tar
RaFaeL писал(а): ↑12 Январь 2020, 14:36Во внешнюю DLL надо объявлять все эти ссылки как LONG и передавать address()
Не обязательно, можно как address, а можно как и ссылку на группу.
Игорь Столяров писал(а): ↑12 Январь 2020, 13:57А в моём, тяжёлом, случае описывается структура данных, где эти цепочки групп реализуются внешней DLL на VC6.
А этот тяжёлый случай случаем не zint.h?
Ссылки на GROUP
Добавлено: 12 Январь 2020, 15:15
Игорь Столяров
vic7tar писал(а): ↑12 Январь 2020, 15:10А этот тяжёлый случай случаем не zint.h?
Ага. В принципе там уже всё разрулилось.
Ссылки на GROUP
Добавлено: 13 Январь 2020, 13:08
Игорь Столяров
Всё было хорошо, пока не появились классы …
Нужно, что бы в классе была ссылка на 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
Это можно как-то сделать ?
Ссылки на GROUP
Добавлено: 13 Январь 2020, 13:17
Губин Игорь
Странно, на QUEUE проходит...
Некогда проверять, попробуй &Group(TGroup)
Ссылки на GROUP
Добавлено: 13 Январь 2020, 14:11
kreator
Вот так прокатывает:
Код: Выделить всё
TClass Class, Type, Module('XXX.clw'), Link('XXX.clw')
MyGroup &Group
FlagLoad Byte(False)
end
В ABC классах много таких конструкций. Всё равно же передаётся адрес. Даже если и не в клариновскую часть.
Ссылки на GROUP
Добавлено: 13 Январь 2020, 16:00
Дед Пахом
Объявите LIKE(TGroup) в классе, и проблем не будет:
Код: Выделить всё
TClass Class, Type, Module('XXX.clw'), Link('XXX.clw')
MyGroup LIKE(TGroup)
FlagLoad Byte(False)
end