Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Игорь Столяров
Ветеран движения
Сообщения: 7379 Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз
Сообщение
Игорь Столяров » 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
Почему !?
За теми кто отстал - не возвращаться. (С) Кодекс
Игорь Столяров
Дед Пахом
Старичок
Сообщения: 3134 Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:
Сообщение
Дед Пахом » 09 Январь 2020, 20:51
По-моему, допускается только &GROUP.
С уважением, ДП
Дед Пахом
kreator
✯ Ветеран ✯
Сообщения: 4984 Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз
Сообщение
kreator » 10 Январь 2020, 10:03
Игорь Столяров, а в чём неправильность второго варианта? Я не догнал
.
Ещё "like" есть, если что.
We are hard at work… for you.
kreator
Игорь Столяров
Ветеран движения
Сообщения: 7379 Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз
Сообщение
Игорь Столяров » 10 Январь 2020, 10:33
kreator писал(а): ↑ 10 Январь 2020, 10:03 Я не догнал
Я тоже. Но транслятор говорит, что неправильный тип данных.
LIKE - не подходит, там должна быть ссылка на GROUP.
За теми кто отстал - не возвращаться. (С) Кодекс
Игорь Столяров
kreator
✯ Ветеран ✯
Сообщения: 4984 Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз
Сообщение
kreator » 10 Январь 2020, 11:50
У меня на одиннадцатой версии второй вариант прошёл. Без амперсанда, да, ругается.
We are hard at work… for you.
kreator
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329 Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз
Сообщение
Губин Игорь » 12 Январь 2020, 7:53
kreator писал(а): ↑ 10 Январь 2020, 11:50 Без амперсанда, да, ругается.
Без амперсанда и должен по синтаксису ругаться, т.к. Group1 это тип
Это я только кажусь дураком! На самом деле я полный идиот!
Губин Игорь
vic7tar
Ветеран
Сообщения: 365 Зарегистрирован: 09 Февраль 2017, 20:12
Сообщение
vic7tar » 12 Январь 2020, 13:27
Игорь Столяров писал(а): ↑ 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
vic7tar
Игорь Столяров
Ветеран движения
Сообщения: 7379 Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз
Сообщение
Игорь Столяров » 12 Январь 2020, 13:57
vic7tar писал(а): ↑ 12 Январь 2020, 13:27 Зачем гадать?, ну ведь Дед Пахом указал на правильное направление:
Оно как бы да, но только в том случае, если сам себе архитектор и программист.
А в моём, тяжёлом, случае описывается структура данных, где эти цепочки групп реализуются внешней DLL на VC6.
За теми кто отстал - не возвращаться. (С) Кодекс
Игорь Столяров
RaFaeL
✯ Ветеран ✯
Сообщения: 1378 Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:
Сообщение
RaFaeL » 12 Январь 2020, 14:36
Во внешнюю DLL надо объявлять все эти ссылки как LONG и передавать address()
Посмотри как в libxlsxwriter сделано ну например метод SetPoints ну или попроще SetProperties
RaFaeL
vic7tar
Ветеран
Сообщения: 365 Зарегистрирован: 09 Февраль 2017, 20:12
Сообщение
vic7tar » 12 Январь 2020, 15:10
RaFaeL писал(а): ↑ 12 Январь 2020, 14:36 Во внешнюю DLL надо объявлять все эти ссылки как LONG и передавать address()
Не обязательно, можно как address, а можно как и ссылку на группу.
Игорь Столяров писал(а): ↑ 12 Январь 2020, 13:57 А в моём, тяжёлом, случае описывается структура данных, где эти цепочки групп реализуются внешней DLL на VC6.
А этот тяжёлый случай случаем не zint.h?
C10, Win10x64
vic7tar
Игорь Столяров
Ветеран движения
Сообщения: 7379 Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз
Сообщение
Игорь Столяров » 12 Январь 2020, 15:15
vic7tar писал(а): ↑ 12 Январь 2020, 15:10 А этот тяжёлый случай случаем не zint.h?
Ага. В принципе там уже всё разрулилось.
За теми кто отстал - не возвращаться. (С) Кодекс
Игорь Столяров
Игорь Столяров
Ветеран движения
Сообщения: 7379 Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз
Сообщение
Игорь Столяров » 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
Это можно как-то сделать ?
За теми кто отстал - не возвращаться. (С) Кодекс
Игорь Столяров
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329 Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз
Сообщение
Губин Игорь » 13 Январь 2020, 13:17
Странно, на QUEUE проходит...
Некогда проверять, попробуй &Group(TGroup)
Это я только кажусь дураком! На самом деле я полный идиот!
Губин Игорь
kreator
✯ Ветеран ✯
Сообщения: 4984 Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз
Сообщение
kreator » 13 Январь 2020, 14:11
Вот так прокатывает:
Код: Выделить всё
TClass Class, Type, Module('XXX.clw'), Link('XXX.clw')
MyGroup &Group
FlagLoad Byte(False)
end
В ABC классах много таких конструкций. Всё равно же передаётся адрес. Даже если и не в клариновскую часть.
We are hard at work… for you.
kreator
Дед Пахом
Старичок
Сообщения: 3134 Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:
Сообщение
Дед Пахом » 13 Январь 2020, 16:00
Объявите LIKE(TGroup) в классе, и проблем не будет:
Код: Выделить всё
TClass Class, Type, Module('XXX.clw'), Link('XXX.clw')
MyGroup LIKE(TGroup)
FlagLoad Byte(False)
end
С уважением, ДП
Дед Пахом