Последняя версия DataExpress 3 beta от 4 апреля 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

как из скрипта определить self это форма или таблица на форме

Все о том как сделать что-то с помощью скриптов.
kok80
Эксперт
Сообщения: 327
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 23 раза

как из скрипта определить self это форма или таблица на форме

Сообщение kok80 » Вт окт 16, 2018 11:24 pm

как из скрипта определить self это форма или таблица на форме не по имени?
Обе имеют тип TDXForm, обе HasParent=true, пробовал:

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

try s:=self.parentform.name; IsTable:=true; except IsTable:=false; end;

плюет ошибку

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 11 раз

Re: как из скрипта определить self это форма или таблица на форме

Сообщение Гocть » Вт окт 16, 2018 11:41 pm

Можно попробовать в try запросить какое нибудь свойство главной формы, которого нет в подчиненной. Если except останется пустой, значит главная форма, если получит ошибку, то подчинённая.
Фрилансер. Разработка на заказ. Консультирование.

kok80
Эксперт
Сообщения: 327
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: как из скрипта определить self это форма или таблица на форме

Сообщение kok80 » Вт окт 16, 2018 11:52 pm

в этом и вопрос, какие свойство. Какое бы я ни пробовал - в подчиненной работает, в главной плюет ошибку несмотря на try/except

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 11 раз

Re: как из скрипта определить self это форма или таблица на форме

Сообщение Гocть » Вт окт 16, 2018 11:57 pm

kok80 писал(а):плюет ошибку несмотря на try/except
Что значит "плюет"?
kok80 писал(а):вопрос, какие свойство

Попробуйте Self.Recid, например. У главной формы он есть и всегда больше нуля.
Фрилансер. Разработка на заказ. Консультирование.

Аватара пользователя
admin
Разработчик
Сообщения: 4756
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 24 раза
Поблагодарили: 207 раз

Re: как из скрипта определить self это форма или таблица на форме

Сообщение admin » Ср окт 17, 2018 8:22 am

Причем здесь hasParent? Это свойство tcontrol-а, которое показывает находится ли контрол в контейнере. У формы есть целых 2 свойства, по которым можно определить является ли она подчиненной - это PId и ParentForm. Если PId > 0 или ParentForm <> nil, то форма подчиненная.

kok80
Эксперт
Сообщения: 327
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: как из скрипта определить self это форма или таблица на форме

Сообщение kok80 » Ср окт 17, 2018 12:23 pm

спасибо, в ночи сравнивал self.parentform <>null...
про PID нигде не нашел документации, только эту фразу:

"При создании формы автоматические создается системное поле «id», которое является первичным ключом таблицы. При создании подчиненной формы дополнительно создается системное поле «pid», которое является внешним ключом и ссылается на id родительской формы."