Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
127 / 107 / 21
Регистрация: 23.05.2015
Сообщений: 705
RAD 2006-2007

RAD11 не видит bookmark, который работал в D7

31.08.2022, 10:29. Показов 1550. Ответов 16

Студворк — интернет-сервис помощи студентам
Пытаюсь адаптировать проект из D7 под RAD11.
Имя закладки у меня было в глобальной переменной (уже слышу неодобрительные возгласы, хотя не знаю почему).
После вставки из модальной формы возвращался в таблицу по закладке. Вижу что изменился процесс работы с закладками,
перестроился. Но ту глобальную переменную (закладку) которая была объявлена в Unit1 RAD11 не видит в Unit6

Delphi
1
2
3
4
5
6
7
8
Unit1
. . .
var
  Form1: TForm1;
  bm, bm1: TBookmark; //Закладки в наборе данных
. . .
implementation
 . . .
Delphi
1
2
3
4
5
6
7
8
Unit6
 
. . . 
{Возвращаемся к закладке}
          try
            DM1.DSUsers.DataSet.GotoBookmark(bm);
 
. . .
Пишет.
E2010 Incompatible types: 'System.TArray<System.Byte>' and 'string'
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2022, 10:29
Ответы с готовыми решениями:

Сайт, который работал бы на одном компьютере
Privet, est seit katori nujno chtob rabotal na konkretnem komjutere.Ja dumaju chto mojno napisat dll , ili java class katori proverjal &quot;mac...

Определить фамилию администратора, который работал в воскресенье
Определить фамилию администратора, который работал в воскресенье (выведите на экран дату прибытия клиента, день недели - воскресенье,...

Код, который работал в VS 2008, не работает в VS 2012
Подскажите, почему код, который работал в VS 2008, не работает в VS 2012. Я скопировала код из файла cpp и создала проект в новой студии,...

16
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
31.08.2022, 10:38
вы же просто взяли кусок одного файла, кусок второго, показали нам
оп - не совпадает)
а теперь вернемся к тому, чем плохи глобальные переменные ))

очевидно ж, что у вас есть еще как минимум BM : String; где-то
быстро исправить можно легко, вызывая переменную по имени-отчеству
Delphi
1
DM1.DSUsers.DataSet.GotoBookmark(Unit6.bm);
ну и заодно, напомню, для тех, у кого form1, unit6 и прочие глобальные переменные bm, есть отдельный котел в высокотехнологичном, культурном, продвинутом ИТ-аду
0
 Аватар для Zhbert
563 / 60 / 7
Регистрация: 27.03.2020
Сообщений: 186
31.08.2022, 10:43
Цитата Сообщение от krapotkin Посмотреть сообщение
ну и заодно, напомню, для тех, у кого form1, unit6 и прочие глобальные переменные bm, есть отдельный котел в высокотехнологичном, культурном, продвинутом ИТ-аду
У них он и так уже локальный есть, когда надо свой же код через пару лет дебажить или дописывать
Я так один раз с красными глазами разбирался в своей поделке, потом стал нормально называть
1
127 / 107 / 21
Регистрация: 23.05.2015
Сообщений: 705
31.08.2022, 20:06  [ТС]
Тов. krapotkin, увы но нет.
Попробовал Unit6.pas Undeklared identifier: 'bm'

И про котел если можно поподробнее, в чем засада с глобальными?
Если где-то, в любом из модулей, я назвал так-же локальную переменную?
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
01.09.2022, 22:18
Лучший ответ Сообщение было отмечено SeGun как решение

Решение

попробовал что? откуда Unit6.pas ????
у меня конечно опечатко там, надо unit1.bm, но можно было б и догадаться
где переменная, тот и юнит

а ошибка - да, где-то в ваших модулях есть еще один bm.
а когда везде натыканы глобальные переменные, то и найти, которая конкретно из них подхватится в каждом случае, почти нереально.
поэтому либо собирайте их все в одном отдельном юните
либо что еще лучше, используйте локальные
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
02.09.2022, 00:40
Цитата Сообщение от SeGun Посмотреть сообщение
И про котел если можно поподробнее, в чем засада с глобальными?
Если где-то, в любом из модулей, я назвал так-же локальную переменную?
Засад довольно много может быть. Но оставляя в стороне глобальные переменные, которые вставляет в шаблон кода сама IDE и где свои проблемы, я скажу что если у вас в проекте есть глобальная переменная с именем bm, то это уже очень дурно пахнущая жопа! Глобальные переменные обязательно должны иметь осмысленные имена, чтобы само имя говорило кто это, откуда и зачем.
1
127 / 107 / 21
Регистрация: 23.05.2015
Сообщений: 705
02.09.2022, 17:52  [ТС]
Спасибо за помощь.
Таки и да, было объявление в другом модуле.
Проблема решена.

Что касается осмысленных имен, то сокращение bm от (Bookmark) для меня вполне очевидно.
0
05.09.2022, 02:26

Не по теме:

Коллеги, не мечите бисер, видите же, что бесполезно.

0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
05.09.2022, 02:57
Цитата Сообщение от SeGun Посмотреть сообщение
Что касается осмысленных имен, то сокращение bm от (Bookmark) для меня вполне очевидно.
Это только до тех пор, пока вы пишите проект уровня Hello World. И вы уже столкнулись с проблемой!
Сокращения типа bm хороши только в качестве префиксов к осмысленным именам. И то префикс bm чаще всего ассоциируется с типом TBitmap, а не с типом TBookmark.
0
127 / 107 / 21
Регистрация: 23.05.2015
Сообщений: 705
05.09.2022, 08:33  [ТС]
Обычно мой участок Hello World! выглядит так:

Delphi
1
2
3
  bm, bm1: TBookmark; //Закладки в наборе данных
  States: String; //Предварительно состояние набора данных
  States1: String; //Предварительно состояние набора данных форм налогообложения
Хотя, не смотря на это я действительно повторился в другом модуле - признаю.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
05.09.2022, 15:13
Цитата Сообщение от SeGun Посмотреть сообщение
Что касается осмысленных имен, то сокращение bm от (Bookmark) для меня вполне очевидно.
Если у вас не фотографическая память и пока ваш багаж написанного кода еще мал, вы можете помнить его весь, но вот когда у вас будет хотя бы несколько проектов и поддерживать вы их будете больше года, то давать максимально информативные имена для всего вы начнете сами, без подсказок.
2
127 / 107 / 21
Регистрация: 23.05.2015
Сообщений: 705
05.09.2022, 20:50  [ТС]
Спасибо за совет. Приму к сведению.
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
06.09.2022, 02:26
Цитата Сообщение от SeGun Посмотреть сообщение
Спасибо за совет. Приму к сведению.
Ну и про префиксы не забудьте принять к сведению. Они позволяют сократить осмысленные имена переменных до минимально разумных.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
06.09.2022, 12:58
поддержу)
даже несмотря на то, что официальный код-стайл их не разрешает!
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
07.09.2022, 01:17

Не по теме:

Цитата Сообщение от krapotkin Посмотреть сообщение
даже несмотря на то, что официальный код-стайл их не разрешает!
Консерваторы, снобы, эстеты...

Я честно сказать не знаю, кто первым придумал префиксы для имен компонентов/контролов. Но насколько же это полезная придумка!

Ну а если копнуть глубже и шире, то первые префиксы в Дельфи придумали сами разработчики. Только их фантазий хватило только на префиксы T и F

0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
07.09.2022, 12:47
просто альтернативой в то время были варианты типа lpstrParameter
надо сказать это тоже так себе )
0
08.09.2022, 00:57

Не по теме:

Цитата Сообщение от krapotkin Посмотреть сообщение
просто альтернативой в то время были варианты типа lpstrParameter
надо сказать это тоже так себе )
Ну это из другой оперы.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.09.2022, 00:57
Помогаю со студенческими работами здесь

В IE6 не работает код, который работал в предыдущих версиях IE
Уважаемый форум! Столкнулся с такой проблемой - в IE6 (XP SP1)не работает код, хотя в предыдущих версиях IE все было ОК. Кто-нибудь ...

Аналог InStr, но который работал бы быстрее с большим объемом данных
Есть ли аналог InStr, но который работал бы быстрее с большим объемом данных? P.S. надо в цикле (от 1 до 100 000) искать в String...

Написать словарь, который бы работал на алгоритме префиксного динамического дерева
Добрый день программисты! Нужно написать словарь, который бы работал на алгоритме префиксного динамического дерева. Статей на эту тему...

Сохранение проекта, который бы работал на другом PC без дополнительных файлов
Добрый день! У меня такая проблема уже который день!!! Устал искать в интернете и смотреть всяческие видео!!! В общем суть такая... Я...

Kak сделать обычный редиректор, который работал бы быстро и просто?
Kak сделать обычный редиректор, который работал бы быстро и просто. Линк должен выглядесь где-то так ---------- &lt;a...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru