Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Добавить поле в Датасет  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1167
Свой компонент, наследник DataSet. Редактор полей. По контекстному меню "Add Field..." открывается список полей. Выбираю нужные, нажимаю Ok. Получаю ошибку - DataSet1: Поле Field1 не найдено (на первом из выбранных)
Дорылся я до функции
function TDSDesigner.DoCreateField(const FieldName: string; Origin: string): TField;

в модуле DSDesign.
Далее тупик, глазами проблем не вижу вроде все верно

Собственно вопрос:
Можно ли как-то понатыкать в этот модуль ShowMessage (и возможно еще в DB) чтоб как-то выводить отладочную информацию в Desing Time. Т.е.понатыкать можно, но придется его перекомпилить, но как? Если вообще возможно
6 сен 18, 15:54    [21667151]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 24489
minva
Свой компонент, наследник DataSet.

Проблема в наследнике, а не в среде разработки.
6 сен 18, 16:03    [21667168]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10598
minva
Можно ли как-то понатыкать в этот модуль ShowMessage (и возможно еще в DB) чтоб как-то выводить отладочную информацию в Desing Time. Т.е.понатыкать можно, но придется его перекомпилить, но как? Если вообще возможно
1. Запускаете IDE
2. Открываете проект с bpl
3. Устанавливаете Host Application bds.exe
4. Жмете F9 и отлаживаетесь
6 сен 18, 16:32    [21667217]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1167
wadman,
Дык, я понимаю, что в наследнике! Мне интересны какие данные из наследника попадают в среду обработки. В наследнике в InitFieldDefs я ткнул ShowMessage. И вижу, что fieldDefs перед вызовом после нажатия OK в окне выбора полей и перед сообщением об ошибке вполне себе заполнена. Дальше непонятно как отладится
6 сен 18, 16:38    [21667228]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1167
_Vasilisk_,
2. Открываете проект с bpl
этот пункт можно подробнее, какой именно проект?
6 сен 18, 16:39    [21667230]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 24489
minva
В наследнике в InitFieldDefs

Дизайнер не создает поля. Дизайнер "просит" об этом. Помимо FieldDefs необходимо еще и создать само поле.
Посмотри в метод FieldDef-а с названием что-то вроде CreateField.
6 сен 18, 16:49    [21667240]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10598
minva
2. Открываете проект с bpl
этот пункт можно подробнее, какой именно проект?
Вот этот
minva
Свой компонент, наследник DataSet.
6 сен 18, 17:11    [21667265]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
DimaBr
Member

Откуда:
Сообщений: 10744
minva
Собственно вопрос:
Можно ли как-то понатыкать в этот модуль ShowMessage (и возможно еще в DB) чтоб как-то выводить отладочную информацию в Desing Time.

Нельзя.

А в остальном _Vasilisk_ всё говорит правильно, Host Application - bds.exe и вперёд жмакать F8
6 сен 18, 22:02    [21667520]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
stanilar
Member

Откуда: Спб
Сообщений: 742
DimaBr
Нельзя.


Но можно OutputDebugString.
7 сен 18, 03:10    [21667590]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
чччД__
Guest
stanilar
DimaBr
Нельзя.


Но можно OutputDebugString.

+1.

Все что угодно, лишь бы отладчик не изучать.
7 сен 18, 08:45    [21667669]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
Василий 2
Member

Откуда:
Сообщений: 238
Некоторую инфу можно выводить через брейкпоинты. В опциях break=false, evaluate expression и log result
7 сен 18, 10:39    [21667803]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1167
DimaBr, почти получилось, кроме того что F8 жмакать не выходит и точку остановки не поставить в компоненте, игнорируется она.
Что еще у компонента/пакета надо настроить, чтоб прошагать можно было?
Максимум что получилось добиться, что ошибка "Поле не найдено" теперь в среде вываливается. Стека вызовов нет, а окошком CPU я пользоваться как-то не умею :(
7 сен 18, 10:49    [21667833]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
чччД__
Guest
minva,

отключи оптимизацию в настройках проекта, включи дебажные галки.
7 сен 18, 11:01    [21667852]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1167
чччД__,
отключена, галки стояли
7 сен 18, 11:26    [21667896]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
stanilar
Member

Откуда: Спб
Сообщений: 742
чччД__
отладчик не изучать


А чего его изучать? Тем более что он и не работает, когда пытаешься отладить в программе пакет из пакета. Ну, может в токио что и изменилось к лучшему, давно не слежу.
7 сен 18, 21:49    [21668670]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1928
stanilar
Тем более что он и не работает, когда пытаешься отладить в программе пакет из пакета. Ну, может в токио что и изменилось к лучшему, давно не слежу.
Серьезно? И как мы свои дизайнтайм пакеты уже 20 лет дебажим?...
7 сен 18, 23:21    [21668704]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
stanilar
Member

Откуда: Спб
Сообщений: 742
white_nigger
И как мы свои дизайнтайм пакеты уже 20 лет дебажим


ShowMessage?
8 сен 18, 01:34    [21668744]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
чччД__
Guest
stanilar
white_nigger
И как мы свои дизайнтайм пакеты уже 20 лет дебажим


ShowMessage?

Ладно, используй.
8 сен 18, 01:47    [21668748]     Ответить | Цитировать Сообщить модератору
 Re: Добавить поле в Датасет  [new]
Gator
Member

Откуда: Москва
Сообщений: 13909
чччД__
stanilar
пропущено...


ShowMessage?

Ладно, используй.
Не. Как правило, "пакет из пакета" суть чужой релиз и не содержит отладочной инфы. К нему и надо относиться как к черному ящику.
9 сен 18, 00:16    [21669101]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить