begin
//Change caption and hint to the Portuguese language and etc.
frmImage.Caption := 'Álbum de Fotografias';
frmImage.btnDelete.caption := 'Excluir';
frmImage.btnEdit.caption := 'Editar';
frmImage.btnNew.caption := 'Adicionar';
frmImage.btnPlay.caption := 'Slides';
frmImage.chbOR.caption := 'OU';
frmImage.chbShowPreview.caption := 'Visualizar';
frmImage.chbTag.caption := 'TAG';
frmImage.labDescription.caption := 'Descrição';
frmImage.labName.caption := 'Nome';
frmImage.btnFirst.Hint := 'Vai para a primeira página';
frmImage.btnLast.Hint := 'Vai para a última página';
frmImage.btnNext.Hint := 'Vai para a página anterior';
frmImage.btnPred.Hint := 'Vai para a primeira página';
frmImage.btnTag.Hint := 'Selecione as tags do diretório';
frmImage.edtFilter.Hint := 'Clique 2x para limpar filtro.';
frmImage.edtFilter.TextHint := 'Busca por marca (TAG)';
frmImage.Epage.Hint := 'Entre com a página e pressione ENTER';
frmTag.Caption := 'Marcação (TAG)';
frmTag.btnClear.Hint := 'Limpar seleção';
frmTag.btnDelete.Caption := 'Excluir';
frmTag.btnEdit.Caption := 'Editar';
frmTag.btnNew.Caption := 'Adicionar';
frmTag.btnSelect.Caption := 'Selecionar';
frmTag.labTagCategory.Caption := 'Categoria:';
frmTagEdit.Caption := 'Marcação (TAG)';
frmTagEdit.btnCancel.Caption := 'Cancelar';
frmTagEdit.btnSave.Caption := 'Salvar';
frmTagEdit.labCategory.Caption := 'Categoria';
frmTagEdit.labName.Caption := 'Marcação (TAG)';
frmTagCategory.Caption := 'Categorias das TAGs';
frmTagCategory.btnDelete.Caption := 'Excluir';
frmTagCategory.btnEdit.Caption := 'Editar';
frmTagCategory.btnNew.Caption := 'Adicionar';
frmTagCategory.tgrMain.dbListFieldsNames := 'Categoria';
frmTagCategoryEdit.Caption := 'Categoria';
frmTagCategoryEdit.btnCancel.Caption := 'Cancelar';
frmTagCategoryEdit.btnSave.Caption := 'Salvar';
frmTagCategoryEdit.labName.Caption := 'Nome';
frmImageEdit.Caption := 'Edição de imagem';
frmImageEdit.btnCancel.Caption := 'Cancelar';
frmImageEdit.btnEdit.Caption := 'Editar';
frmImageEdit.btnSave.Caption := 'Salvar';
frmImageEdit.Label1.Caption := 'Nome';
frmImageEdit.Label2.Caption := 'Descrição';
frmImageEdit.Label3.Caption := 'Data/hora de criação';
frmImageEdit.Label4.Caption := 'Pré-visualização';
frmImageEdit.Label5.Caption := 'Marcação (TAG)';
//frmImageEdit.imgPreview.Hint := 'Clique 2x para abrir arquivo abaixo se existir.';
frmImageEditor.caption := 'Inclusão de Foto e Edição de Miniatura';
frmImageEditor.btnCancel.caption := 'Cancelar';
frmImageEditor.btnClear.caption := 'Limpa';
frmImageEditor.btnFilter.caption := 'Carrega';
frmImageEditor.btnSave.caption := 'Salvar';
frmShow.caption := 'Slides';
frmShow.btnFirst.Hint := 'Primeiro Slide';
frmShow.btnFullScreen.Hint := 'Tela cheia';
frmShow.btnLast.Hint := 'Último Slide';
frmShow.btnNext.Hint := 'Próximo Slide';
frmShow.btnPred.Hint := 'Slide Anterior';
frmShow.btnSettings.Hint := 'Setup';
frmShow.labDescription.caption := 'Descrição';
frmShow.labName.caption := 'Nome';
frmShow.btnPlay.Hint := 'Exibe Slides sequencialmente';
//It improved the display of full-screen forms and their buttons on my computer.
frmImage.WindowState := wsMaximized;
frmImageEditor.WindowState := wsMaximized;
frmImageEdit.WindowState := wsMaximized;
end.1 2025-11-27 17:36:40
Re: Image display (17 replies, posted in General)
2 2025-11-26 16:57:17
Re: Image display (17 replies, posted in General)
Hi all,
ESC exit added to some forms.
The FullScreen button has been enabled.
Two thumbnails have been added to the main screen.
Thumbnail cropping behavior has been changed:
- When adding an image, the default thumbnail is the entire image.
- The ability to crop a thumbnail of any size.
- Thumbnail cropping within the image boundaries.
Other changes...
Hi Sparrow! I tested the improvements you implemented in the Photo Album project, created by K245:
- "ESC" on certain screens.
- Full screen in the "Slides" form.
- Full filling of the initial screen with thumbnails.
- Automatic cropping when adding new images.
- Thumbnail cropping of any size, which allowed zooming in on any part of the image!
Everything looks great! Congratulations and thank you. Best regards.
3 2025-11-21 23:17:38
Re: Image display (17 replies, posted in General)
Hi Roberto
Could you elaborate on this?
- When the initial screen has more than one page of thumbnails, two thumbnails are missing to complete the first page...
A screenshot would be ideal.
As for finalizing the project, it's all in your hands. I'm just trying to fix a few things or do things differently. For me it's a good study...
P.S.
I understand what you're talking about.
In Project K245, the program was configured to display 30 thumbnails per screen (you see three rows of eight thumbnails, plus six more), which was optimal at the time. When I made changes to the code that sped up thumbnail display, I didn't change the number of thumbnails displayed. The trick is that if display scaling is applied in Windows, the layout changes. It also changes when the window is resized or maximized to full screen.
Hi Sparrow, screenshot attached. I put it in full screen and the problem persists. It's just a cosmetic detail and doesn't interfere with operation. It's fine if it's not possible to change. Regards
4 2025-11-21 16:31:25
Re: Image display (17 replies, posted in General)
Hi all,
Added to previous improvements:
! Thumbnail loading time has been accelerated when refreshing the panel and switching pages.
! Changes have been made to the form resize and thumbnail selection events.
Other improvements.Previous fixed versions have been removed from the forum.
Hi Sparrow, the improvements you made are great. The thumbnail loading was really slow... If I may offer a few suggestions (you've already done a lot for this project), provided you have the time and inclination:
- Some screens could be closed with "escape," especially the initial screen.
- When the initial screen has more than one page of thumbnails, two thumbnails are missing to complete the first page...
- In the slideshow presentation, making the "full screen" and "setup" buttons functional would be nice. The "setup" button could allow the user to change the display time per slide.
Thank you and best regards.
5 2025-11-19 23:07:12
Topic: Real-time SQL typing and execution (0 replies, posted in General)
Another project, which uses the capabilities of the MVD's sqlite interpreter, allows typing + <ENTER> with the execution of SQL commands in real time. The command inputs are stored and can be navigated using the up and down arrows, avoiding retyping.
The "Zoom" form allows you to type and view SQL instructions that occupy more than one line. When you exit with "ESC", the instructions are transferred to the line that executes them with ENTER. The "Help SQL" form displays the syntax of the main commands, and new ones can be entered. Perhaps it could be used as support in sqlite classes. I don't know what name I could give it. Any improvement is welcome.
6 2025-11-17 20:41:34
Re: Image display (17 replies, posted in General)
Page navigation has been added.
Inaccuracies, including mine, have been corrected.
Errors are possible.
Hi Sparrow! I tested the "delete" button and the page advance. Everything is working perfectly. It's fantastic! Other users will certainly be happy with this too. Thank you very much. Thanks also to K245 for being the author of this project.
7 2025-11-16 10:04:42
Re: Image display (17 replies, posted in General)
Hi Roberto
I don't think Konstantin couldn't fix it. It's his brainchild, like many other interesting projects. As he himself writes, the project turned out to be quite complex and large. During and after his work on it, it was rethought. Perhaps it will evolve into something else as a sequel.
Besides, there are internet issues.
Konstantin describes all projects in sufficient detail to teach others. But it doesn't always find user feedback due to the programming style, which is difficult for beginners. But you have to study.
I know there are some flaws, some inaccuracies, and some unfinished parts of the program.
I'll see what can be done.Google translate.
Hi Sparrow, I want to clear up a misunderstanding. I think k245 has a lot of technical expertise to make the corrections to the project. What I meant was that he might not have the time available. Regards.
8 2025-11-15 18:32:08
Re: Image display (17 replies, posted in General)
Hi Roberto
Go to " RELEASE\Script\VClass\ImageEdit " and replace the file with this one.
Dear Sparrow, I have another request regarding the photo album created by K245. I don't want to abuse your willingness to always help when possible. You solved a problem, and I think K245 wasn't available to do this, but I thank you both. If possible, could you make the "delete" button on the home screen work? I don't know how to do this given the complex and efficient code created by K245. My knowledge of MVD was entirely acquired through the forum. I also ask, if possible, to include page advance on the home screen. K245 himself said that this didn't yet exist in the project. It's okay if you can't fulfill my request. What I've done so far is translate all the comments and captions into Portuguese and include the close button (sometimes hidden) on some screens, so that it's possible to close them simply with "escape". I used the MVD 5.6 form editor, but without compiling the project, keeping the execution through the executable (MVD 6.5) provided by k245. Regards.
9 2025-11-14 18:28:04
Re: Где кто? (15 replies, posted in Russian)
While most systems rely on storing data, which must be organized into interconnected tables, processing that data, and generating reports (summaries, graphs, etc.), MVD, which does this splendidly and very easily, will remain relevant for a long time!
10 2025-11-13 19:32:50
Re: Image display (17 replies, posted in General)
Hi Roberto
Go to " RELEASE\Script\VClass\ImageEdit " and replace the file with this one.
Hi Sparrow, it worked!! Thank you so much!
11 2025-11-12 16:26:56
Re: бавно търсене при голям брой записи (2 replies, posted in Script)
I have a table with 32,000 Service Orders that is linked to a table with 13,000 clients. Accessing the service orders of a specific client was very time-consuming. In the "Service Order List," I added a button to call a small form containing a table grid with the IDs and names of the clients, where I can search by name or ID. When the client is found (it's very fast), the form closes, and the ID of the selected client is placed in the search field of the "Service Order List" form, which performs the search automatically. Everything solved in fractions of a second!
12 2025-11-12 16:00:46
Topic: How to confirm if a record has been deleted (0 replies, posted in General)
I confirmed that the selected record in the tablegrid was successfully deleted using the button.
procedure frm_help_sql_btn_del_OnAfterClick (Sender: TObject);
begin //*** Proc 1370 - confirma se deleção foi bem sucedida
if frm_help_sql.TableGrid_instrucoes.SelectedRow = -1 then
begin
frm_help_sql.Edit_instrucao.Clear;
frm_help_sql.Memo_ajuda.Clear;
frm_help_sql.chk_alterado.Checked := false;
end;
end;13 2025-11-07 17:33:25
Re: Tic-Tac Game on MVD 5.6 (13 replies, posted in General)
- Minor bug fixes.
- Button layout changed.
- Color identification added.
- Ability to select numbers from the keyboard (1..9) or (q,w,e,a,s,d,z,x,c).
- Tested with version 5.6.
- Sqlite.dll replaced with a newer version, file attribute set to ReadOnly (for future use with the solver).
- 250 of 509 recorded levels tested (thanks to Roberto). No errors.
Hi Sparrow! Congratulations!!! I completed a game and was able to test all the features. Everything worked correctly:
- The highlighting of identical numbers,
- The "pencil mode" annotations and the logic involved,
- The blocking of "wrong" number insertion and the highlighting of these errors in red.
It turned out great. I'll try importing the remaining 3 million Sudoku games later, of which I've already imported the 500 that are in the project. Thank you for your effort and the final result. Thanks also to Derek for his participation and contribution.
14 2025-11-06 16:08:10
Re: Tic-Tac Game on MVD 5.6 (13 replies, posted in General)
Hi Roberto, Sparrow,
You first need to click on a number (1-9) and then click in the cell where you want to place that number. Perhaps you are trying to do it the other way round?
Similarly, if you want to place "possible" numbers, first click on a number (1-9), then click on the 'pencil' and then click in the cell(s) where you want to place that "possible" number (it's a really neat feature).
Thanks,
Derek.
Hi Sparrow, I managed to start testing with the steps you provided. I missed the highlighting of identical numbers when a number is selected (see attached photo). I've never used the "pencil mode" note-taking system (I learned to do sudoku on paper...) and I think the logic you used to make this option available must have been very complex! But I'll still test this feature and come back here to give feedback. I noticed that when trying to enter a "wrong" number, the application highlights in red that the number already exists...
15 2025-11-06 14:35:04
Re: Tic-Tac Game on MVD 5.6 (13 replies, posted in General)
Hi Derek, Roberto
Early version.
To be continued. Errors are possible.
Bugs and suggestions are welcome.
Hi Sparrow! I tested the project with MVD 5.6, but I couldn't select the cells or enter any numbers... What am I doing wrong?
16 2025-11-02 20:37:19
Re: Image display (17 replies, posted in General)
Check out my project "Family Album". To speed things up, for each image, I create a thumbnail that is displayed in a grid. I use the tag system to search.
Hi K245! I really liked your Family Album project! I encountered a problem, which I'll show in the attached photo. The first time an image is edited, when the user wants to change the mini-photo that will be displayed on the home screen, everything works correctly. If the user enters the same screen a second time, the frame displaying the mini-photo disappears. The only way to solve this is to restart the application. I tried to identify which part of the script this happens in, but my knowledge of MVD is not yet sufficient. I would appreciate it if you could fix this part.
17 2025-10-31 17:30:16
Re: Scanner (17 replies, posted in General)
Hi, Sparrow!
I used TImage capabilities to scale the image. See the "Family Album" project (script folder "ImageEdit")
https://k245.ru/software-ru/is-ru/semejnyj-albom-2.html
You may need two copies of the image: one for display on the desktop (visible) and one for scaling/re-sizing etc. (hidden).
Hi K245! I really liked your Family Album project! I encountered a problem, which I'll show in the attached photo. The first time an image is edited, when the user wants to change the mini-photo that will be displayed on the home screen, everything works correctly. If the user enters the same screen a second time, the frame displaying the mini-photo disappears. The only way to solve this is to restart the application. I tried to identify which part of the script this happens in, but my knowledge of MVD is not yet sufficient. Also, my MVD version is 5.6. I would appreciate it if you could fix this part.
18 2025-10-28 16:41:38
Re: Как по клику по записи в одной таблице показать связанную в другой (6 replies, posted in Russian)
Attached is the file Derek sent again, now in RAR format. See if you can download it.
19 2025-10-26 17:50:13
Topic: Speeding up queries in Sqlite with "SQL Views" (0 replies, posted in General)
In the project contained in the topic below, I included the following procedure for creating "SQL Views" and changed parts of the script, as follows. The form opening time (attached photo) increased significantly. The slowdown was due to the query's main table containing 32,000 records.
https://myvisualdatabase.com/forum/view … hp?id=8659
procedure create_views_ano_mes;
begin //*** Proc 1364 - cria view se não existir
if sqlexecute('SELECT name FROM sqlite_master WHERE type="view" AND name="view_ano"') = '' then
SQLExecute('CREATE VIEW view_ano AS '+
' select distinct strftime("%Y",tbl_orderm_servico.entrada) as ano '+
' from tbl_orderm_servico order by 1 desc ');
if sqlexecute('SELECT name FROM sqlite_master WHERE type="view" AND name="view_mes"') = '' then
SQLExecute('CREATE VIEW view_mes AS '+
' select distinct strftime("%m",tbl_orderm_servico.entrada) as mes '+
' from tbl_orderm_servico order by 1 ');
end;I changed the previous section:
frmOverview.cbo_ano.dbSQLExecute('select strftime("%Y",tbl_orderm_servico.entrada) as ano from tbl_orderm_servico group by ano order by 1 desc');
frmOverview.cbo_mes.dbSQLExecute('select strftime("%m",tbl_orderm_servico.entrada) as mes from tbl_orderm_servico group by mes order by 1');for:
frmOverview.cbo_ano.dbSQLExecute('select ano from view_ano');
frmOverview.cbo_mes.dbSQLExecute('select mes from view_mes');20 2025-10-25 21:04:28
Re: how to speed up Combo box population linked to a parent combo box. (6 replies, posted in General)
For large data sets, I abandoned the combobox,
replacing it with two components: an input field (to display the selected value) and a button (to display the reference form). Of course, you will need scripts, examples of which can be found in this project.
https://k245.ru/en/mvdb-en/light-filtered.html
Hi k245! You're right! I have a form with a combo box that retrieves data from a table with 13,000 records, which makes the form very slow to open. I used the text box and a button next to it to retrieve the information from another form and fill in the text box, which made everything much faster.
21 2025-10-21 00:06:31
Re: Increasing access speed (5 replies, posted in General)
Hi Roberto
I'm even starting to wonder what's going on with your app and Windows.
In all my time working with MVD, I've never had to optimize SQLITE parameters. Using indexes – yes.
For example, my work program contains over 100,000 records spanning nine years. In another case, the database of a closed forum contains over 5 million records in just one table (the database is over 8 GB). In both cases, indexing is used, but all other parameters are set to default. There have been no issues. I specifically reconfigured the last database to version 5.6 and ran it from the c: drive, as you described. I also ran an antivirus scan, alternating it with copying another large database to the c: drive. Running it with and without SUBST was no different. My computer is modest by today's standards, but it has 16 GB of memory, which is sufficient for my work.
As for SUBST, the program is quite modest and doesn't do anything special. But while it's running, the system limits some of its disk and file management functions.
What can critically slow down your program? Antivirus software, downloading and installing system and antivirus updates. Intensive pagefile processing with a large number of loaded processes and programs and insufficient RAM. Errors with certain drivers or disks. And so on. All these and many other things have a higher priority and can slow down user programs. Check the system log for critical errors. Launch Task Manager during the slowdown. Pay attention to the CPU, disk, and memory usage graphs (RAM and pagefile separately). Look at the currently active processes actively using resources. Check your SmartDisk statistics.
The results after SQLITE optimization indicate that there are issues with indexing and generated queries to a database with only 11,000 records. Furthermore, the parameters you're using can lead to data loss and file corruption during computer crashes. Review your code again to ensure your queries are written correctly. Check their execution using SQLiteStudio for runtime and execution analysis (explain), especially various JOINs. This can help optimize the database, indexes, or the queries themselves. Make sure to close all TDataSets when processing queries if you use SQLExecute.
I'm in no way defending MVD. It's not a sacred program.
Hi Sparrow, I made some changes to the Windows 11 settings below, installed and ran Microsoft's freeware PC Manager—I recommend it to everyone—and it worked!!! Now the execution speed, which is much faster, is the same with or without "Subst."
I kept only the "Pragmas" that don't damage the database.
* In visual effects, I chose "Adjust for best performance."
* In virtual memory, I enabled "Automatically manage paging file size" and "System-managed file size."
Thanks for pointing out the problem, which prompted me to look for a solution. Anyway, if I ever encounter a slowdown on an end-user's machine and Windows optimization isn't possible, using "Subst" might be an alternative.
22 2025-10-19 18:24:57
Re: Increasing access speed (5 replies, posted in General)
Hi Roberto
I'm even starting to wonder what's going on with your app and Windows.
In all my time working with MVD, I've never had to optimize SQLITE parameters. Using indexes – yes.
For example, my work program contains over 100,000 records spanning nine years. In another case, the database of a closed forum contains over 5 million records in just one table (the database is over 8 GB). In both cases, indexing is used, but all other parameters are set to default. There have been no issues. I specifically reconfigured the last database to version 5.6 and ran it from the c: drive, as you described. I also ran an antivirus scan, alternating it with copying another large database to the c: drive. Running it with and without SUBST was no different. My computer is modest by today's standards, but it has 16 GB of memory, which is sufficient for my work.
As for SUBST, the program is quite modest and doesn't do anything special. But while it's running, the system limits some of its disk and file management functions.
What can critically slow down your program? Antivirus software, downloading and installing system and antivirus updates. Intensive pagefile processing with a large number of loaded processes and programs and insufficient RAM. Errors with certain drivers or disks. And so on. All these and many other things have a higher priority and can slow down user programs. Check the system log for critical errors. Launch Task Manager during the slowdown. Pay attention to the CPU, disk, and memory usage graphs (RAM and pagefile separately). Look at the currently active processes actively using resources. Check your SmartDisk statistics.
The results after SQLITE optimization indicate that there are issues with indexing and generated queries to a database with only 11,000 records. Furthermore, the parameters you're using can lead to data loss and file corruption during computer crashes. Review your code again to ensure your queries are written correctly. Check their execution using SQLiteStudio for runtime and execution analysis (explain), especially various JOINs. This can help optimize the database, indexes, or the queries themselves. Make sure to close all TDataSets when processing queries if you use SQLExecute.
I'm in no way defending MVD. It's not a sacred program.
Hi Sparrow, my laptop is a Lenovo Ideapad 310-15ISK, with a 5th-generation i5 processor, 12GB of RAM, a 256GB SSD, and a 1TB HDD connected to the optical drive port. It's old, but my brother gave it to me. Thanks for the feedback. I'll investigate and post the results later.
23 2025-10-18 21:22:44
Re: Increasing access speed (5 replies, posted in General)
may be this post can help.https://myvisualdatabase.com/forum/view … hp?id=8782
Hi, thanks for the information. I read the recommended post and ran some tests, but I think my access speed is still faster with the tip I posted.
I also included in the script:
SQLExecute('PRAGMA read_uncommitted = true;');
SQLExecute('PRAGMA journal_mode = MEMORY;');
SQLExecute('PRAGMA synchronous = OFF;');
SQLExecute('PRAGMA temp_store = MEMORY;');
SQLExecute('PRAGMA cache_size = -8000;');
SQLExecute('PRAGMA mmap_size = 268435456;');
SQLExecute('PRAGMA optimize;');
EXPLANATION OBTAINED ON THE INTERNET FOR INCREASING SPEED WITH THE USE OF A VIRTUAL UNIT
Subst sped up its MVD application because it eliminated the overhead of antivirus, permissions, and long path resolution, and because SQLite now uses exclusive caching and direct access to the virtual volume.
The 20s to 3s gain is consistent with this optimization—and shows that the I/O lens was outside of its code, not inside the MVD.
24 2025-10-16 00:16:03
Re: язык программирования Object Pascal, который мы используем (5 replies, posted in Russian)
Testimonial from someone looking for documentation:
I also looked for MVD documentation at first. Although, as Derek said, the information on the forum isn't structured like conventional documentation, the number of threads, member responses to other members' questions, countless example projects, tips, etc. surpass any documentation if it were to have one. Furthermore, the developer Dmitry himself produced a PDF and HTML tutorial with excellent explanations of MVD commands and functions, in addition to answering questions and providing several project examples. I organized myself by downloading these projects and copying script snippets into an MVD database. If I can't find information in the forum, I check my database. If I can't find it, I ask the question in the forum, and 99% of the time, it's answered.
25 2025-10-15 23:34:53
Topic: Increasing access speed (5 replies, posted in General)
I want to share an experience and knowledge I gained today.
I have an application in MVD that contains 10,000 records in one of the various tables and SQL views. It spans an 11-year period.
I've noticed a significant slowdown lately, even running on Windows 11 on a 256 GB SSD.
I created indexes, activated "PRAGMAS," vacuumed... but nothing worked.
When I ran the application on a virtual drive created with - subst v: "c:\mvd_project\application.exe" - I was surprised to see that access speed increased 10x or more.
I don't know the explanation. Perhaps Windows file management is interfering with the performance of MVD 5.6. Well, I solved my problem, and here's my report.



