Topic: Версия 4.0

Что нового:

- Добавлен компонент карта Google Maps. Подробней: http://myvisualdatabase.com/help_ru/components/map.html
примеры:
   один маркер - http://myvisualdatabase.com/forum/misc. … download=1
   множество маркеров - http://myvisualdatabase.com/forum/misc. … download=1


- Добавлено свойство "Searchable" для компонента ComboBox, позволяет искать необходимую запись непосредственно в компоненте


- Добавлено меню: Файл > Последние проекты


- Добавлен альтернативный вид для компонента TableGrid (slide), пример http://myvisualdatabase.com/forum/misc. … download=1


- Добавлена функция Translate, пример: http://myvisualdatabase.com/forum/viewt … 387#p22387


- Добавлена функция GetAdaptersInfo, пример: http://myvisualdatabase.com/forum/viewt … 553#p22553


- Добавлены функции EncryptFileRC5 и DecryptFileRC5 для шифрования и дешифрования файлов, пример: http://myvisualdatabase.com/forum/viewt … 553#p22553

- Обновлена справка.

- Другие незначительные доработки.


- Исправлено несколько ошибок.



Скачать: http://myvisualdatabase.com/download/myvisualdb.exe

Dmitry.

Re: Версия 4.0

Добрый день! заметил если в Гриде font поменять цвет текста, то и весь грид становится этим же цветом, после этого приходится в Additional менять цвет. не помню было ли это в версиях 3.х

Re: Версия 4.0

pt.82 wrote:

Добрый день! заметил если в Гриде font поменять цвет текста, то и весь грид становится этим же цветом, после этого приходится в Additional менять цвет. не помню было ли это в версиях 3.х

Спасибо за найденную ошибку, исправим.
Данная ошибка пришла еще с версии 3.x

Dmitry.

Re: Версия 4.0

Дмитрий, подскажите, вопрос уже задавал ранее - все-таки когда планируется внедрить в программу планировщик, или хотябы привязать к программе google-календарь?

Re: Версия 4.0

motorolla wrote:

Дмитрий, подскажите, вопрос уже задавал ранее - все-таки когда планируется внедрить в программу планировщик, или хотябы привязать к программе google-календарь?

к сожалению в ближайшее время не планируется.

Dmitry.

Re: Версия 4.0

Приветствую!
в 4 версии ругается на

Form1.mniSettings.Click;

еще перестал работать старый скрипт импорта, не работает и в версии 3.6.... вот в 3.3 работает...

Re: Версия 4.0

Посмотрел Вашу программу, неплохая. Нашел проблему во всех программах, при импорте в базу данных картинку в размере 10мб и после ее удаления, картинка удаляется только из формы, а вот из базы нет! База данных не уменьшается. ) Таким образом база будет расти и расти как гриб. Вот такая беда.

Re: Версия 4.0

Andrey.Win wrote:

Посмотрел Вашу программу, неплохая. Нашел проблему во всех программах, при импорте в базу данных картинку в размере 10мб и после ее удаления, картинка удаляется только из формы, а вот из базы нет! База данных не уменьшается. ) Таким образом база будет расти и расти как гриб. Вот такая беда.

Это не проблема, это принцип работы всех баз данных. На самом деле данные не удаляются из базы данных, а лишь помечаются как удаленные, и в будущем это место будет заполнено новыми данными.



Если необходимо, то все же можно удалить данные, выполнив команду VACUUM

команду VACUUM можно выполнить как для конкретной таблицы

SQLExecute('VACUUM tablename');

так и для всех таблиц

SQLExecute('VACUUM');

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

Dmitry.

Re: Версия 4.0

mr_xxl wrote:

Приветствую!
в 4 версии ругается на

Form1.mniSettings.Click;

Спасибо за найденную ошибку, в финальной версии будет исправлено.


mr_xxl wrote:

еще перестал работать старый скрипт импорта, не работает и в версии 3.6.... вот в 3.3 работает...

какой именно скрипт? Дайте пожалуйста ссылку, также опишите, что именно не работает.

Dmitry.

10 (edited by mr_xxl 2017-11-14 09:24:25)

Re: Версия 4.0

какой именно скрипт? Дайте пожалуйста ссылку, также опишите, что именно не работает.

за основу взят этот скрипт но доработан, добавляет в две связанные таблицы и в одной из них проверяет на наличие уже имеющихся записей и если аналогичная запись есть, то связывает с ней

мой код:

procedure frmSklad_Button7_OnClick (Sender: string; var Cancel: boolean);
var
   OpenDialog: TOpenDialog;
   sl: TStringList;
   arrStr: array of string;

   x, m, z, z0, skA, z1: string;
   i,c: integer;

   iOb,cOb: integer;
   ValuteID: string;
begin
     OpenDialog := TOpenDialog.Create(frmSklad);
     OpenDialog.InitialDir := ExtractFileDir(Application.Exename);
     if OpenDialog.Execute then
     begin
          sl := TStringList.Create;
          sl.LoadFromFile (OpenDialog.FileName);


          cOb := sl.Count - 1;
          for iOb := 0 to cOb do
          begin
               arrStr := SplitString(sl[iOb], ';');

               // artikul
               if arrStr[0] = '' then
               begin
                    z0 := '';
                    m := 'SK-';
                    z1 := VarToStr( SQLExecute('SELECT record_count FROM sklad WHERE id = (SELECT MAX(id) FROM sklad)') );
                    if z1='' then z := '0' else z := FloatToStr( StrToFloat(z1) + 1);                                                                                               
                    z := FloatToStr( StrToFloat(z1) + 1);
                    c := Length(z);
                    c := 6-c; // 6 - qty of zero
                    for i := 1 to c do z0 := z0 + '0';
                    skA := m+z0+z;
                end else
                begin
                     skA := ReplaceStr(arrStr[0], '''', '''''');
                     z1 := VarToStr( SQLExecute('SELECT record_count FROM sklad WHERE id = (SELECT MAX(id) FROM sklad)') );
                     if z1='' then z := '0' else z := FloatToStr( StrToFloat(z1) + 1);
                end;

               // skname
               if arrStr[1] <> '' then arrStr[1] := ''''+ ReplaceStr(arrStr[1], '''', '''''') + ''''
                   else arrStr[1] := 'NULL';

               // skizm
               if arrStr[2] <> '' then arrStr[2] := ''''+ ReplaceStr(arrStr[2], '''', '''''') + ''''
                   else arrStr[2] := 'NULL';

               // skkol
               arrStr[3] := ReplaceStr(arrStr[3], ',', '.');
               if arrStr[3] = '' then arrStr[3] := 'NULL';

               // skcena
               arrStr[4] := ReplaceStr(arrStr[4], ',', '.');
               if arrStr[4] = '' then arrStr[4] := 'NULL';

               //2 id_sktype
               if arrStr[5] <> '' then
               begin
                    ValuteID := SQLExecute ('SELECT id FROM sktype WHERE stname LIKE "' + arrStr[5] +'"');
                    if ValuteID = '' then
                    begin
                         SQLExecute ('INSERT INTO sktype (stname) VALUES ("'+ arrStr[5] +'");');
                         ValuteID := IntToStr(Last_Insert_id);
                         if ValuteID = '-1' then ValuteID := 'NULL';
                    end;
               end else ValuteID := 'NULL';

               // skmin
               arrStr[6] := ReplaceStr(arrStr[6], ',', '.');
               if arrStr[6] = '' then arrStr[6] := 'NULL';

               // skzak
               arrStr[7] := ReplaceStr(arrStr[7], ',', '.');
               if arrStr[7] = '' then arrStr[7] := 'NULL';


               SQLExecute ('INSERT INTO sklad (artikul, record_count, skname, skizm, skkol, skcena, id_sktype, skmin, skzak) VALUES ("'+ skA +'",'+ z +','+ arrStr[1] +','+ arrStr[2]+','+ arrStr[3]+','+ arrStr[4]+','+ ValuteID +','+ arrStr[6]+','+ arrStr[7]+');');


               frmSklad.Label1.Caption := IntToStr(iOb+1) + ' из ' + IntToStr(cOb+1);
               Application.ProcessMessages;
          end;

          sl.Free;
          UpdateDatabase('sktype');
          frmSklad.TableGrid1.dbUpdate;
          frmSklad.TableGrid2.dbUpdate;
          frmSklad.ComboBox1.DoOnChange;
     end;
     OpenDialog.Free;
end;

после выбора файла ничего не происходит...

Re: Версия 4.0

mr_xxl
Пожалуйста создайте отдельную тему по данному вопросу, также приложите в нем ваш проект.

Dmitry.

Re: Версия 4.0

Там, это, курсор пропадает если в форме больше чем 3-4 "Searchable" ComboBox-а. hmm

Извиняюсь, я не программист но сильно стараюсь.

Re: Версия 4.0

easyterm wrote:

Там, это, курсор пропадает если в форме больше чем 3-4 "Searchable" ComboBox-а. hmm

проверил, к сожалению ничего не заметил. Приложите пожалуйста проект и опишите действия приводящие к данной ошибке.

Dmitry.

Re: Версия 4.0

DriveSoft wrote:
easyterm wrote:

Там, это, курсор пропадает если в форме больше чем 3-4 "Searchable" ComboBox-а. hmm

проверил, к сожалению ничего не заметил. Приложите пожалуйста проект и опишите действия приводящие к данной ошибке.

Странно, с утра на 3х компьютерах проверял, курсор пропадал. А сейчас всё в порядке. Прошу прощения, у меня что-то пошло не так.

Извиняюсь, я не программист но сильно стараюсь.

Re: Версия 4.0

DriveSoft wrote:
easyterm wrote:

Там, это, курсор пропадает если в форме больше чем 3-4 "Searchable" ComboBox-а. hmm

проверил, к сожалению ничего не заметил. Приложите пожалуйста проект и опишите действия приводящие к данной ошибке.

Нашёл. )) Я вам на мыло отправил видео и архив.

Извиняюсь, я не программист но сильно стараюсь.

Re: Версия 4.0

MessageDlg выдаёт ошибку:

http://f2.s.qip.ru/SwgAVREX.jpg

begin
  if MessageDlg('Произвести загрузку из текстовых файлов?',mtWarning,[mbOK,mbCancel],0)=mrOK then
  begin
    ShowMessage('!');
  end;
  ShowMessage('!!!');
end.
Визуальное программирование: блог и телеграм-канал.

Re: Версия 4.0

вместо

[mbOK,mbCancel]

пишите

mbOK+mbCancel

также рекомендую использовать MessageBox вместо MessageDlg, т.к. у последнего кнопки всегда на английском.


if IDYES = MessageBox('Message', 'Caption', MB_YESNO+MB_ICONINFORMATION) then ShowMessage('Yes');

Buttons:
MB_OK
MB_OKCANCEL
MB_ABORTRETRYIGNORE
MB_YESNOCANCEL
MB_YESNO
MB_RETRYCANCEL


Results:
IDOK
IDCANCEL
IDABORT
IDRETRY
IDIGNORE
IDYES
IDNO


Icons
MB_ICONWARNING
MB_ICONINFORMATION
MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP
MB_ICONERROR

Dmitry.

Re: Версия 4.0

Используя компонент PageControl, по умолчанию Style=FlatButtons  и если попытаться сменить TabPosition на Bottom программа падает. Дернуло меня поменять без сохранения проекта и 2-х часовая работа коту под хвост. :-((((((((((

Re: Версия 4.0

wertyby wrote:

Используя компонент PageControl, по умолчанию Style=FlatButtons  и если попытаться сменить TabPosition на Bottom программа падает. Дернуло меня поменять без сохранения проекта и 2-х часовая работа коту под хвост. :-((((((((((

Спасибо за найденную ошибку, частично исправил, пришлось убрать сообщение, т.к. оно пока по невыясненной причине вызывало последющее исключение.

Dmitry.

Re: Версия 4.0

Здравствуйте, Дмитрий!
Обновил версию с 4.02 на 4.04 - программа стала незарегистрированной. Откатился на предыдущую версию (хорошо, что оставил  инсталлятор) - регистрация вернулась. Посмотрите, пожалуйста.

Re: Версия 4.0

mcsimm wrote:

Здравствуйте, Дмитрий!
Обновил версию с 4.02 на 4.04 - программа стала незарегистрированной. Откатился на предыдущую версию (хорошо, что оставил  инсталлятор) - регистрация вернулась. Посмотрите, пожалуйста.

Здравствуйте.


Отправил новый ключ на ваш email.

Dmitry.

Re: Версия 4.0

Спасибо, программа активировалась.

Re: Версия 4.0

Дмитрий, а нельзя ли получить ссылку на скачивание версии 4.0? А то пока что нет возможности купить версию за 199 евро, а инсталятор куда-то пропал с компьютера (стёр наверное случайно).

Re: Версия 4.0

TroNadoR wrote:

Дмитрий, а нельзя ли получить ссылку на скачивание версии 4.0? А то пока что нет возможности купить версию за 199 евро, а инсталятор куда-то пропал с компьютера (стёр наверное случайно).

К сожалению не сохраняю различные версии инсталяторов.


Но такой цены как 199 евро нету, обновление до версии 4.xx для ранее зарегистрированных пользователей стоит $29.95, для новых пользователей $49, пожизненная лицензия $149

Dmitry.

Re: Версия 4.0

DriveSoft wrote:
TroNadoR wrote:

Дмитрий, а нельзя ли получить ссылку на скачивание версии 4.0? А то пока что нет возможности купить версию за 199 евро, а инсталятор куда-то пропал с компьютера (стёр наверное случайно).

Но такой цены как 199 евро нету

Да, я опять цены перепутал. Пора в отпуск. Я нашёл уже у себя, версия 4.01. Пока этого вполне хватит. Программа просто шикарная!