376

(11 replies, posted in General)

Each file must contain a begin - and section. With a dot at the end, this is very important!

begin
end.

The error was caused by the use of a Cyrillic character that is visually indistinguishable from the Latin

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9435&download=0

Thanks for the feedback, I'll fix it in the next version.

Well, I don’t know ... I downloaded the archive, unpacked it, launched it - everything works.There is a certainty that the matter is in different versions of the MVDB, but it is extremely small.

https://drive.google.com/file/d/1S2s0hZ … IELw4/view

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9432&download=0

379

(32 replies, posted in General)

sparrow wrote:

As for the event, apparently the program is waiting until the previous event is completed.
MouseLeave is also triggered after.
More correctly after MouseDown for the left button.

It turns out that onMouseDown suspends the processing of the events onMouseEnter and onMouseLeave. For me it was a shock, but there is certainly a logical explanation for this.

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9431&download=0

380

(11 replies, posted in General)

I forgot to say that modules do not limit the scope: all declarations (procedures, functions, variables and constants) are global.

381

(11 replies, posted in General)

There is no need to "call" anything in any special way. It is enough that you have specified an external file in the uses section.
When compiling the program, all scripts are collected into one final file script.dcu.


A little more difficult to deal with nesting. As I understand it, the MVDB tries to consistently check identifiers, and if an identifier is declared in a module, a link to which it has not yet managed to find, then there will be an error. Circular references are not allowed. The order in which references are declared is also important: independent modules must be declared first, and then modules that depend on previously declared ones.

382

(32 replies, posted in General)

Indeed, an interesting topic. And I also learned something interesting for myself: that the OnMouseEnter event when the mouse button is pressed comes after the OnMouseUp event.


Do not call me a bore, but I do not quite understand why the named priority statuses (Important-Urgent, Important-Not Urgent, Not Important-Urgent, Not Important-Not Urgent) give advantages over the numeric ones (1-2-3-4)? And why are four lists on the screen more convenient than one linear list? I agree that the proposed criteria for separation of concerns are convenient, but the visual representation seems to me debatable.

reteinformatica wrote:

HI k245, hi everyone,
I had a look at your project downloaded from the page you indicated. Unfortunately I can't see what it does in practice because I can't run it. When I run it I get this error: "Undeclared identifier 'labDesñription' at 311:25". And he puts my cursor at the 25:18 position basically a few spaces after the "end" command.
I thought that the identifier maybe should have been "labDscription" instead of "labDesñription" but I really don't know which file to find it on.

I checked both links, everything is downloaded, ClassExplorer starts (MultiLang is installed) and does not contain errors.

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9418&download=0

384

(11 replies, posted in General)

As you probably already know, My Visual Database allows you to place script sources in several files, which is very convenient if the number of lines of code exceeds a couple of thousand. In order to connect a module (a file with the .pas extension) to the main code, you must specify it in the uses:

uses
   // sort by degree of dependency: first those that do not refer to anyone, then dependent
   'ConstVar.pas', // global constants and application variables
   'System\Utils.pas', // system procedures
   'Tools\Tools.pas', // tools
   'VClass\VClass.pas', // virtual classes and extensions
   'Forms\Forms.pas', // forms
   'UserApp.pas'; // general procedures and application functions

A prerequisite is that the module file is located inside the Script folder, nested storage of module files in subfolders is also allowed.


Unfortunately, the built-in MVDB editor does not support editing modules, but the solution was easily found in the person of the universal editor Notepad ++, which is used by many programmers. As you can see from the project file tree, there are quite a lot of them, and only six are present in the uses command. The remaining modules are connected in the modules described above, they also contain the uses command for files. For example, the Forms.pas file is used solely to register modules that store handlers.


Read more: https://k245.ru/en/mvdb-en/butterfly-effect.html

A couple of years ago, I even made a tool for localizing My Visual Database projects, but for some reason this topic was not particularly popular.

https://sites.google.com/view/multilang-1-0-en

Hello! You may find the ideas on localization algorithms that I outlined in my article useful to you. In particular, there is an example of a localization system using text resource files. This solution does not require changing the program code when adding new interface objects for localization.


https://k245.ru/wp-content/uploads/2023/04/vybor-yazyka.png


https://k245.ru/en/mvdb-en/resources-an … ation.html


When you add a new language, you only need a new text file with translated resources.

Анализируем модули

https://k245.ru/wp-content/uploads/2023/05/Analiziruj-eto.jpg


Хранение информации о проектах имеет далеко идущие цели: анализ исходного кода и архитектуры с выдачей рекомендаций по их оптимизации.


А начнем с простой задачи: извлечение информации о содержимом модуля, в частности – поиск и отображение процедур и функций.


Читать:  https://k245.ru/mvdb/analiziruem-moduli.html

Project modules

https://k245.ru/wp-content/uploads/2022/07/obedinenie.jpg


Typically, projects created in the My Visual Database development environment contain only one module with scripts – the script.pas file. However, if the program contains a lot of additional functionality, then the size of this file can be huge. Therefore, it is quite logical to divide the scripts into logical parts and store them in separate files.


The modular architecture improves the perception of the source text, allows you to reuse individual modules by copying the necessary files to a new project. Therefore, the next improvement of the Developer’s Guide is related to the display of the modular structure of projects.


Read: https://k245.ru/en/mvdb-en/project-modules.html

Модули проекта

https://k245.ru/wp-content/uploads/2022/07/obedinenie.jpg


Обычно проекты, созданные в среде разработке My Visual Database, содержать только один модуль со скриптами – файл script.pas. Однако, если программа содержит много дополнительного функционала, то размер этого файла может быть огромным. Поэтому вполне логично разделить скрипты на логические части и хранить их в отдельных файлах.


Модульная архитектура улучшает восприятие исходного текста, позволяет повторно использовать отдельные модули, копируя нужные файлы в новый проект. Поэтому очередное улучшение “Справочника разработчика” связано с отображением модульной структуры проектов.


Читать: https://k245.ru/mvdb/moduli-proekta.html

390

(8 replies, posted in Talks about all)

pavlenko.vladimir.v wrote:

Я что-то проморгал, на какой проект сбор. Вы все таки пишите среду разработки?

Нет пока отдельного проекта. Есть блог, есть библиотека, есть желание систематизировать информацию об использовании MVDB в том виде, в котором он сейчас есть.  Есть желание написать ещё пару книг о разработке ПО, с практикой в MVDB. И неплохо было бы если бы желания совпали с возможностями )))


В ближайшем будущем видится формат более плотного общения с читателями, чтобы подсказывали наиболее актуальные направления, в которых они бы хотели развиваться в контексте MVDB.


А что касается My Visual Multibase - то пока вопросов по нему больше, чем ответов. И самый главный - платформа, на которой стоит начать разрабатывать данный проект. Хотя я приверженец Delphi, я не в восторге от последних версии, громоздких и глючных. Так что я пока в поиске инструмента.

391

(8 replies, posted in Talks about all)

joshuA wrote:

Thank you greatly for your excellent work and documentation!!!  It is truly astonishing.  :salute:

Would you happen to have a translated copy available?  I just wanted to ask before I run it through Google translate wink

Everything in the library is in Russian. Even if my translations appear, they will not differ much in quality from what Google does))

И ведь верно: без магии (недокументированных возможностей) у нас никак нельзя ))))

HideTextIfNotExists := False;

393

(8 replies, posted in Talks about all)

https://k245.ru/wp-content/uploads/2023/04/1maya.jpg

Если отбросить политическую подоплёку этого международного праздника, который отмечается более чем в 140 странах мира, то получаем прекрасный повод для радости и гордости: все блага, которые имеет человечество, созданы трудом человека. И в этот день можно почувствовать единство стремлений и желаний осознанного человечества, которое стремится к счастью путём созидания и сотрудничества, мирного труда на благо всех людей, живущих на нашей планете.

А чтобы праздновать было веселей, я хочу сделать подарок для всех разработчиков, которые уже используют или будут использовать My Visual Database: бесплатный доступ ко всем моим статьям, книгам и файлам с проектами, которые находятся в Библиотеке визуального программирования

https://k245.ru/biblioteka

https://fkr45.ru/UserFiles/news/201908/30/Original/exam.png

pavlenko.vladimir.v wrote:
Godless wrote:

МММ...я понял, вроде бы...

Подправил на три таблицы и перезанес данные. А вот с запросами я не силен( (

ну можно так
https://fileworld.pavlenkovv.ru/img/2023-04-28_15-08-37.png

А если завтра складов станет четыре?  )))

Обнаружил какой-то странный глюк: если фокус на выпадающем списке, и при этом отображается список значений, то при клике на кнопку "+" обработчик события onClick кнопки не вызывается, но закрывается выпадающий список и вызывается событие onCloseUp.


Проблема в том, что onCloseUp вызывается при потере фокуса (например, при клике на таблицу) , а добавлять нужно именно при нажатии на кнопку, а не каждый раз, когда чего-то не нашлось в комбике.

А где третья таблица? В которой хранятся пересечения? 
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9397&download=0

Структура данных у вас неверная, нужно три таблицы:
1. Справочник того, что отображается по столбцам
2. Справочник того, что отображается по строкам
3. Данные о том, что хранится в пересечении.

Общий алгоритм построения кросс-таблиц такой:
1. Первым запросом определяем, какие нужно отображать колонки
2. Создаем скриптом таблицу с нужным числом колонок
3. Вторым запросом определяем, что отображается в строках (в первой колонке)
4. Скриптом добавляем данные в таблицу
5. Третьим запросом выбираем данные для вставки в пересечение ячеек.
6. Скриптом вставляем данные в ячейки.

http://myvisualdatabase.com/forum/viewt … 568#p46568

Resources And Localization


https://k245.ru/wp-content/uploads/2023/04/Flagi.png


In my book “Visual Programming” I discussed in detail the issues of localization and internationalization, it is time to apply this knowledge in a new project.


Read: https://k245.ru/en/mvdb-en/resources-an … ation.html

Ресурсы и локализация

https://k245.ru/wp-content/uploads/2023/04/Flagi.png


В своей книге “Визуальное программирование” я подробно рассматривал вопросы локализации и интернационализации, настало время применить эти знания в новом проекте.


Читать: https://k245.ru/mvdb/resursy-i-lokalizatsiya.html

sparrow wrote:

Для SQL ведь комментарии  /* комментарий */

Всё верно. Но, как я уже заметил, пока правила форматирования не распознают язык и предполагают, что текст представляет собой исходники на Pascal