1

(5 replies, posted in General)

Thanks sparrow,
it's perfect and I never could have done it without your help...especially in such an elegant way.

2

(5 replies, posted in General)

Thanks jean.brezhonek and sparrow,
I had read that post but I couldn't apply it to a pie chart.
I tried based on an example from Derek, derekpiechart which I attach, in which only one series is added; if I insert the color at the end of line 35:
...
if ValidInt(cfsexValue) then Chart.Series[0].AddXY(x,strtoint(cfsexValue),sexvalue,clred);
...
all parts of the pie chart are colored red.

3

(5 replies, posted in General)

Hello everyone, I would like to know how to change the color of the sectors of a pie chart, for example instead of blue and yellow, display them green and red.
Thank you.

4

(10 replies, posted in FAQ)

Ciao Fabio, per la traduzione dei messaggi di sistema utilizzo lo script riportato all'inizio del post, inserito tra il begin e l'end al termine del listato del mio codice.
Spero possa aiutarti.

Hi Fabio, for the translation of system messages I use the script shown at the beginning of the post, inserted between the begin and the end at the end of my code listing.
I hope it can help you.


// TRADUCO INTERFACCIA
    Form1.mniFile.Caption := 'File';
    Form1.mniClose.Caption := 'Chiudi';
    Form1.mniOptions.Caption := 'Opzioni';
    Form1.mniSettings.Caption := 'Database';
    Form1.mniReport.Caption := 'Report designer';
    Form1.mniExportData.Caption := 'Esportazione dati';
    Form1.mniImportData.Caption := 'Importazione dati';
    Form1.mniAbout.Caption := 'Informazioni';

    Form1.mniUsers.Caption := 'Utenti';

    frmdbCoreLogin.Caption := 'Accesso';
    frmdbCoreLogin.edLogin.TextHint := 'Nome Utente';
    frmdbCoreLogin.edPassword.TextHint := 'Password';
    frmdbCoreLogin.bLogin.Caption := 'ACCEDI';

    frmdbCoreUsers.Caption := 'Utenti';
    frmdbCoreUsers.bNewUser.Caption := 'Nuovo';
    frmdbCoreUsers.bEdit.Caption := 'Modifica';
    TdbStringGridEx(frmdbCoreUsers.FindComponent('gridUsers')).dbListFieldsNames := 'Nome Utente,Ruolo,Admin,Attivo,Cognome,Nome,Ultimo login,Data Creazione';
    TdbButton(frmdbCoreUsers.FindComponent('bDelete')).Caption := 'Elimina';

    frmdbCoreUserForm.Caption := 'Utenti';

    frmdbCoreUserForm.lbUsername.Caption := 'Nome Utente';
    frmdbCoreUserForm.lbPassword.Caption := 'Password';
    frmdbCoreUserForm.lbConfirmPassword.Caption := 'Conferma Password';
    frmdbCoreUserForm.bChangePassword.Caption := 'Cambia Password';
    frmdbCoreUserForm.lbRole.Caption := 'Ruolo';
    frmdbCoreUserForm.lbLastname.Caption := 'Cognome';
    frmdbCoreUserForm.lbFirstname.Caption := 'Nome';
    frmdbCoreUserForm.lbEmail.Caption := 'Email';
    frmdbCoreUserForm.lbAdmin.Caption := 'Amministratore';
    frmdbCoreUserForm.lbActive.Caption := 'Attivo';
    frmdbCoreUserForm.bOK.Caption := 'OK';
    frmdbCoreUserForm.bCancel.Caption := 'Annulla';


    frmOptionsdbCore.Caption := 'Opzioni';
    frmOptionsdbCore.TabDatabaseLoc.Caption := 'Percorso Database';
    frmOptionsdbCore.rbAppFolder.Caption := 'Salva il database nella stessa cartella dell''applicazione.';
    frmOptionsdbCore.rbDBFilename.Caption := 'Specifica il nome del database.';
    frmOptionsdbCore.lbPath.Caption := 'Puoi usare una cartella di rete (e.d. \\PCNAME\Folder\sqlite.db)';
    frmOptionsdbCore.bCancel.Caption := 'Annulla';
    frmOptionsdbCore.TabSettings.Caption := 'Impostazioni';
    frmOptionsdbCore.GroupBoxSettings.Caption := 'File di configurazione (settings.ini)';
    frmOptionsdbCore.rbSettingsIniApp.Caption := 'Salva il file di configurazione nella stessa cartella dell''applicazione.';
    frmOptionsdbCore.rbSettingsIniAppData.Caption := 'Salva il file di configurazione nella cartella:'+#13+'%appdata%\My Visual Database Configurations\%projectname%';

    frmdbCoreImport.Caption := 'Importazione dati da file esterno in formato CSV - CHIUDERE QUESTA FINESTRA AL TERMINE DELLA PROCEDURA';
    frmdbCoreImport.gbFileAndSettings.Caption := '1. File e impostazioni';
    frmdbCoreImport.lbFile.Caption := 'Nome del file CSV';
    frmdbCoreImport.lbColumnsSeparator.Caption := 'Separatore di colonna';
    frmdbCoreImport.cbSeparator.Items[0] := ', (virgola)';
    frmdbCoreImport.cbSeparator.Items[1] := '; (punto e virgola) ';
    frmdbCoreImport.cbSeparator.Items[2] := '\t (tab)';
    frmdbCoreImport.cbSeparator.Items[3] := 'Personalizzato';
    frmdbCoreImport.cbSeparator.ItemIndex := 1;
    frmdbCoreImport.lbEncoding.Caption := 'Codifica dei caratteri';
    frmdbCoreImport.chbColumnNamesRow.Caption := 'Intestazioni di colonna nella prima riga';
    frmdbCoreImport.lbDateFormat.Caption := 'Formato date';
    frmdbCoreImport.cbDateFormat.Items[0] := 'Formato SQL';
    frmdbCoreImport.cbDateFormat.Items[1] := 'Formato regionale ';
    frmdbCoreImport.lbTimeFormat.Caption := 'Formato orari';
    frmdbCoreImport.cbTimeFormat.Items[0] := 'Formato SQL';
    frmdbCoreImport.cbTimeFormat.Items[1] := 'Formato regionale ';
    frmdbCoreImport.gbData.Caption := '2. Dati';
    frmdbCoreImport.lbImportTable.Caption := 'Importa in questa tabella';
    frmdbCoreImport.lbFieldsAndColumns.Caption := 'Specifica il nome dei campi per ogni colonna';
    frmdbCoreImport.lbSqliteWarning.Caption := 'Esegui un backup dei tuoi dati prima dell''importazione.'+#13+'Il database può risultare illeggibile se spegni il computer durante l''importazione.';
    frmdbCoreImport.bImport.Caption := 'Importa';


    frmdbCoreExport.Caption := 'Esportazione dati in formato CSV';
    TdbStringGridEx(frmdbCoreExport.gridTables).Columns[0].Header.Caption := 'Tabelle';
    TdbStringGridEx(frmdbCoreExport.gridFields).Columns[1].Header.Caption := 'Campi';
    frmdbCoreExport.lbSettings.Caption := 'Impostazioni';
    frmdbCoreExport.chbColumnNamesRow.Caption := 'Intestazioni di colonna nella prima riga';
    frmdbCoreExport.lbColumnsSeparator.Caption := 'Separatore di colonna';
    frmdbCoreExport.cbSeparator.Items[0] := ', (virgola)';
    frmdbCoreExport.cbSeparator.Items[1] := '; (punto e virgola) ';
    frmdbCoreExport.cbSeparator.Items[2] := '\t (tab)';
    frmdbCoreExport.cbSeparator.Items[3] := 'Personalizzato';
    frmdbCoreExport.cbSeparator.ItemIndex := 1;
    frmdbCoreExport.lbEndOfLine.Caption := 'Fine linea';
    frmdbCoreExport.chbEnclosing.Caption := 'Racchiudi tra doppie virgolette';
    frmdbCoreExport.lbSQLFilter.Caption := 'Filtro SQL (condizioni WHERE )';
    frmdbCoreExport.bExport.Caption := 'Esporta in formato CSV';
    frmdbCoreImportProgress.Caption := 'Importazione in corso...';
    frmdbCoreImportProgress.bMore.Caption := 'Maggiori dettagli';
    frmdbCoreImportProgress.bCancel.Caption := 'Annulla';


    // how to translate messages and captions
    Translate('Open_report_designer', 'Open report designer');
    Translate('Your_computer_does_not_have_Excel', 'MS Excel non è installato sul computer');
    Translate('Your_computer_does_not_have_LibreOffice', 'LibreOffice non è installato sul computer');
    Translate('Your_computer_does_not_have_Excel_or_LibreOffice', 'Nel computer non è installato MS Excel o LibreOffice');
    Translate('Entry_to_edit_is_no_selected', 'Non è stato selezionato il record da modificare');
    Translate('Unable to determine the record ID', 'Non posso determinare l''ID del record');
    Translate('Please_select_record_in_grid', 'Selezionare il record nella tabella');
    Translate('Report_file_not_found', 'Il Report non è stato trovato');
    Translate('Entry_to_be_deleted_is_not_selected', 'Non è stato selezionato il record da eliminare');
    Translate('Are_you_sure_you_want_to_delete_the_record', 'Sei sicuro di voler eliminare questo record?');
    Translate('The_database_file_is_not_found', 'Il database non è stato trovato');
    Translate('Not_a_number: string', 'Non è un numero');
    Translate('Are_you_sure_you_want_to_delete_the_image_from_the_database', 'Sei sicuro di voler eliminare l''immagine dal database?');
    Translate('There_is_no_file_to_save', 'Non ci sono file da salvare');
    Translate('Do_you_really_want_to_delete_the_file_from_the_database', 'Sei veramente sicuro di voler eliminare il file dal database?');
    Translate('Restart_the_program_to_apply_the_settings', 'Riavvia il programma per rendere effettive le modifiche');
    Translate('This_Field_is_required', 'Questo campo è obbligatorio');
    Translate('Not_permitted_to_use_ComboBox_for_saving_record', 'Non è permesso usare una casella combinata per salvare il record');
    Translate('Saving_or_opening_file_from_database', 'Sto salvando o aprendo un file dal database');
    Translate('Select_file_stored_in_database', 'Seleziona il file memorizzato nel database');
    Translate('Export_image_from_database', 'Esporta l''immagine dal database');
    Translate('Open_image_to_save_the_database', 'Apri l''immagine da salvare nel database');
    Translate('Delete_Image', 'Elimina l''immagine');
    Translate('Calculated_field', 'Campo calcolato');
    Translate('Counter_field', 'Campo contatore');
    Translate('Open_file', 'Apri file');
    Translate('Save_file', 'Salva file');
    Translate('Delete_file', 'Elimina file');
    Translate('Open_folder_with_file', 'Apri la cartella con i file');
    Translate('Clear', 'Pulisci');
    Translate('Open', 'Apri');
    Translate('Component', 'Componente');
    Translate('No_data_to_add', 'Nessun dato da aggiungere');
    Translate('File_not_found', 'Il file non è stato trovato');
    Translate('Confirm', 'Conferma');
    Translate('Error', 'Errore');
    Translate('Info', 'Info');
    Translate('Set_marker', 'Set marker');
    Translate('Set_marker_at_address', 'Set marker at address');
    Translate('Delete_marker', 'Delete marker');
    Translate('Address', 'Address');
    Translate('Export', 'Esporta');
    Translate('Import', 'Importa');
    Translate('Records_exported', 'Record esportati');
    Translate('Records_imported', 'Record importati');
    Translate('Export_is_not_configured_correctly', 'L''esportazione non è configurata correttamente.');
    Translate('Import_is_not_configured_correctly', 'L''importazione non è configurata correttamente.');
    Translate('Yes', 'Si');
    Translate('No', 'No');
    Translate('None', 'Nessuno');
    Translate('Skip', 'Salta');       
    Translate('Close', 'Chiudi');
    Translate('Cancel', 'Annulla');

5

(6 replies, posted in General)

Hi Derek and Sparrow,
thanks for your interest.
My goal is to hide the system menu when the database is not found.
The solution Derek proposed works great if the program doesn't use a style.
However, my program uses a style, and I would like to continue to maintain it.
I attach a small project file with an image.

Sorry Derek I didn't specify that I used a style.

6

(6 replies, posted in General)

Hi Derek, thanks for the reply.
I immediately tried your solution on a test project and it works great, but when I changed the 'bsdialog' property on my main operational project, it didn't work.
Experimenting I found that changing the 'bsdialog' property doesn't work, for this specific functionality of hiding the system menu, if the project has been styled.
In fact I'm using the 'glow' style and still see the menu despite changing that property.
The 'problem' only concerns a graphical aspect of my application, when the db is not found the message window appears and the scripts are not executed, therefore my form1 appears with a very messy layout and you see panels in positions where they should be... to avoid this unpleasant sensation of approximation to the user, I inserted a panel that completely covers form1 and, if the db is found and the application opens, I hide it with this command on form1 on show:
form1.pnlscreen .visible.=false;
otherwise it remains visible to completely cover form1.
The only flaw is that the system menu appears and I don't want the user to be able to see the structure of the db.
Could there be some other solution?
Can I disable the style somehow and, I don't know, re-enable it after entering the login credentials?
Thank you

7

(6 replies, posted in General)

Hi everyone,
I moved the sqlite.db file to a different location on my hard drive.
When I start the application a message box allows me to select the new file path...but in the background form1 is visible.
If I cancel the message box (or leave it open and move it) I can operate the system menu despite having hidden it with a script.
Is there a way to make the menu, or any of its items, not appear in this specific case?
Thank you.

8

(3 replies, posted in General)

Thanks Derek, it works perfectly.

9

(3 replies, posted in General)

Hi, I would like to show a splashscreen when my application starts.
Searching the forum I found this example by Derek that works great:
http://myvisualdatabase.com/forum/viewtopic.php?id=3839
My application uses the login procedure internal to myvdb, with tables of roles and users, and the splashscreen appears until the login screen appears... great. After entering the credentials the app takes a long time to open.
My question is this: Is it possible to make a splashscreen appear after entering the credentials in the login mask? ...That way the user would have a distraction during the long boot time.
Thank you

10

(35 replies, posted in General)

Hello everyone, my concern is related to the fact that sooner or later, hopefully later, compatibility with future versions of the operating system will cease.
Thank you for your alternative suggestions.
I've tried Visualneo these days but the feeling it left me was that of a claustrophobic closure between the wizards. Another concern is to end up in the vortex of paid plugins.
It's a good product, but the freedom that myvdb offers is unmatched.
With myvdb you can do everything that comes to your mind in a thousand ways, offering the possibility of creating a very professional final product.
The only alternative solution, in my opinion, will be to switch to lazarus ... but for the near future I will continue to use this product which represents a unique and rare pearl in the panorama of rad applications.
Another strong point is this forum (I've never seen such an active and productive forum!) characterized by an enormous willingness of the more expert users to help those, like me, who need clarification.
Thank you all.

11

(3 replies, posted in General)

Grazie, hai fatto un ottimo lavoro!

12

(35 replies, posted in General)

Hello, do you have any news about the future of this fantastic application? it is a real regret that it is no longer updated and that it cannot express all the potential that it still contains in it. I'm not a programmer, but since 2015 it has allowed me to create complex applications that I never thought possible. I sincerely hope that this stalemate will be resolved in the best possible way. Has anyone found any alternative and similar application?

13

(5 replies, posted in Script)

great...works perfectly...thanks smile

14

(5 replies, posted in Script)

wow...great...
...and how can i intercept the user action when he clicks the button?
For example, if you click on the AAA button it will activate a script, if you click on the BBB button it will activate another script...and so on...Thanks

15

(1 replies, posted in General)

I solved in this way


procedure OnClickdelRecord(Sender: TObject);
begin
   
    form1.buttondelete.Click; // buttondelete is a button create on form1 with a custom script
end;



begin
Form1.TableGrid1.dbPopupMenu.Items[1].OnClick := @OnClickdelRecord; // items[1] is the index of the voice delete on popupmenu
end.

16

(1 replies, posted in General)

Hi everyone,
how can I intercept the "delete" event generated by a popup menu?
I would like to replace it with a custom script.
Thank you.

17

(5 replies, posted in General)

Hello and thank you,
unfortunately I did not get what I was looking for ... I am attaching a minimal project that reflects my situation.
I hope you can try it to get my problem clear.
Thanks.

18

(5 replies, posted in General)

Hi, thanks for the quick reply.
When I open the edit form, the fields are not filled in with the data of the record chosen in the tabelgrid.
I enclose a rudimentary example.
Thanks

19

(5 replies, posted in General)

Hello everyone, I would like to briefly explain my problem: in a tablegrid I display the data of a table that has not set a primary key, but in a column, the fourth, I have a unique identification code. I would like to change the record selected in the tablegrid in another mask, via script ... but how can I open the mask while maintaining the association with the record selected on the tablegrid? considering that i can't use dbitemid as a reference? Thank you.

20

(2 replies, posted in General)

Hi all, i would like to move the sqlite database file to a folder called db in the application root.

My problem is that I can't set the path of the new folder in the settings.

If I write the absolute path, considering that the application resides on a USB stick, it happens that if the drive letter changes the database is not found and I have to select it again from the settings.

I would like to be able to put the relative path in the settings. What syntax should I use? Thank you.

21

(9 replies, posted in Script)

Perfect...tx.

22

(9 replies, posted in Script)

Hello, I am writing in this topic because my problem is related to this post.

I would like only the values of the first column of each record to be loaded into the text boxes.

How can I do it ... Thanks.

23

(12 replies, posted in General)

Any news on the new version? yes, no, maybe ... tks

24

(12 replies, posted in General)

Hi, when is the new version expected to be released? Tks

25

(5 replies, posted in General)

hi Dimitry,
i'm happy to hear from you ... we missed you.