DriveSoft wrote:

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


Прощу прощения за задержку с ответом, был в отпуске. Вопрос все еще актуален для Вас?

Да Дмитрий, вопрос актуален.
Обратил внимание что скрипт с обработкой ошибки срабатывает если ошибка вызывается в следствии нажатия на кнопку с предустановленным действием (т.е. с действием кнопки выбранным из визуального интерфейса программы). Если же нажатие на кнопку запускает скрипт запроса в базу SQL, то обработка ошибки просто игнорируется.

Дмитрий, здравствуйте!
Возможно реализовать перехват ошибки связанной с потерей соединения с базой данных MySQL?
Пробовал вариант указанный вами выше, не срабатывает. Видимо работает только с ответом от БД.
Ошибка при потере соединения начинается так : Cannot connect to server

Скачал, попробовал - пока все отлично. Антивирус молчит, проект не удаляется!
Спасибо за оперативность!

Дмитрий, добрый день!
Проекты скомпилированные в MVDB 3.4 распознаются Windows Defender (штатный защитник Windows) как Троян (Win32/Fuery.A!cl)  и подлежат немедленному удалению.
Те же самые проекты скомпилированные в MVDB 3.3 проверку проходят без проблем и претензий со стороны защитника Windows нет.
Проверял на 30 компьютерах с разной операционной системой , как правило проблемы на Win8 и Win10

Дмитрий, добрый вечер !
Не могли бы вы подробнее описать новые функции , добавленные в версию 3.2
1. функция HTTPPost - ?
2. MessageBox - я так понимаю диалоговое окно ?
3. класс TPrinter - для взаимодействия с принтером ?

Ну и совсем было бы классно - простые примеры с использованием данных нововведений, можно все в одном ?!

DriveSoft wrote:

Igor
Скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/1y0jek64gzfdy … a.zip?dl=0

Дмитрий, скачал потестил все работает. Но появилось несколько вопросов:
1. Можно ли закреплять запускаемое приложение не только в самом окне формы но и например на панели формы. Что то наподобие TWebBrowser

Дмитрий здравствуйте!
При попытке запуска тестового проекта созданного в версии 3.1  со скриптом (который вы привели выше)

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
    h: integer;
    Max: integer;
begin
      // run calculator
      OpenFile('calc.exe');

      // finding window's calculator
      h := 0;
      Max := 20;
      while (h = 0) and (Max > 0) do
      begin
          h := FindWindow('', 'Calculator'); // find window using caption
          Dec(Max);
          Sleep(50);
      end;

      // move the calculator to the Form1
      if h <> 0 then
      begin
          SetWindowPos( h, 0, 10, 10, 0, 0, SWP_NOSIZE); // set position x=10, y=10
          SetParent( FindWindow('', 'Calculator'), Form1.Handle);
      end;
end;


Выдает ошибку: Undeclared identifier 'SetWindowsPos'
Пользуюсь Windows 10

33

(5 replies, posted in Russian)

Еще один вопрос: как запретить использование кнопки Esc во всех формах? спасибо заранее

Если вы имеете ввиду закрытие формы по нажатию на Esc ? То как правило достаточно убрать с формы кнопку c процедурой закрытия формы (выбранной через графический интерфейс программы -  Action: Закрыть форму). Создать кнопку без действия и через скрипт прописать процедуру закрытия окна.
например:

procedure Form2_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
    Form2.Close;
end;

Тогда нажатие на Esc не будет приводить к закрытию формы.

34

(5 replies, posted in Russian)

bemorhona-qt wrote:

В PageContol1 имеется 2 вкладки, как сделать 2-ю вкладку неактивным?

Form2.PageControl1.Pages[1].TabVisible := False;

Позволяет скрыть вкладку
Где Pages[1] - номер вкладки PageIndex отсчет с нуля, поэкспериментируйте

DriveSoft wrote:

Исправил, скачайте пожалуйсту бета версию 2.8

Дмитрий, спасибо , все работает !

Дмитрий, добрый вечер!
Столкнулся с проблемой. Вариант скрипта в SQLite :

procedure frmFile_Button4_OnClick (Sender: string; var Cancel: boolean);
var
   s,name: string;
begin
     s := SaveFileFromDataBase('TabFile', 'Files', frmFile.TableGrid1.dbItemID); 
     CopyFile(s, 'Image\'+ExtractFileName(s)); 
end;

Работает как надо.
А вот тот же самый скрипт, но в формате MySQL выдает ошибку : No such Table: TabFile .

Anna.Vinogradova wrote:

Здравствуйте!
Как обновлять приложение на компьютерах пользователей база в интернете MYSQL  у пользователя на компьютере стоит приложение которое мы разработали?
Как обновить формы автоматически?

Anna, здравствуйте, конкретно по вашему вопросу подсказать не смогу, но смогу дать направление ))
http://myvisualdatabase.com/forum/viewtopic.php?id=1863

38

(14 replies, posted in Russian)

Дмитрий, здравствуйте !
Когда-то поднимался вопрос:  Сохранение изображений с web камеры в базу. Скажите когда планируется реализация данной функции в MVDB ?

Дмитрий, я правильно понял что ComboBox со свойством MultiSelect  используется только для поиска, для добавления записи его не реализовать?

Дмитрий, здравствуйте !
Не могли бы вы помочь с решением одного вопроса. Реализовать возможность назначения энного кол-ва задач нескольким исполнителям одновременно с frmNew. Все это счастье пытаюсь реализовать с помощью двух ComboBox-ов с использованием мультиселекта ну и скрипта. Одним словом ни черта не выходит.
За основу взят пример с форума SG_fixed.
Дмитрий если не сложно - посмотрите данный пример !

Здравствуйте !
При большом объеме текста в поле (Memo) и включенном ScrollBars, скролл ставится на последнюю строку текста.
Вопрос: Имеется ли возможность в (Memo) установить скролл на нужную строку, в данном случае на самую первую ?

42

(8 replies, posted in Russian)

yevgeny2003 wrote:

Не найденые значения, это в таблице у нас есть записи Вася и Петя, а мы в поиске забиваем Фёдор, соответственно грид у нас будет пустым. А мне надо чтобы в гриде была запись соответствующая id1, которая в свою очередь будет отображать "нет данных"

yevgeny2003, если я вас правильно понял, то результат поиска должен быть приблизительно таким (см. вложение zip-архив).Если нет - то на самом деле весьма расплывчатый вопрос ))
P.S. Пример создан в версии MVDB - 2.5

iacovlogica wrote:

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c,: integer;
   q : single ;  //  Тип переменной то тоже сменить надо
begin
    q := 0;
.....................................
...................................

iacovlogica, спасибо за подсказку. Второй раз выручаете smile

Дмитрий, сделал как вы посоветовали - выдает ошибку:

Incompatible types: 'Integer', 'Extended' at 8:77

Прикладываю пример проекта

Здравствуйте Дмитрий и форумчане!
Столкнулся с такой проблемкой:
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=2235
Подсчет столбца в футере игнорирует не целые числа (с запятыми). Запрос написан через скрипт, конечно есть вариант решения используя встроенные механизмы подсчета программы через интерфейс, но все же хотелось бы узнать как можно выполнить правильный подсчет используя скрипт.

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c, q: integer;
begin
    q := 0;
    c := Form1.GridEmployees.RowCount - 1;
    for i := 0 to c do
    if ValidInt(Form1.GridEmployees.Cells[3, i]) then q := q + StrToInt(Form1.GridEmployees.Cells[3, i]);
    Form1.GridEmployees.Columns[3].Footer.Caption := IntToStr(q);// result
end;

begin
end.
iacovlogica wrote:

Вы забыли условие вписать


frmSearchOP.Edit11.Text := VarToStr( SQLExecute('
SELECT
DateTime
FROM Logs
WHERE
     (TabelN = ''' + sTabelN + ''') and
     (Action = ''Окончание смены'') and
     (DateTime >= ''' + FormatDateTime('yyyy-MM-DD hh:mm:ss.000', Int(now)) + ''');
')
);

iacovlogica, спасибо вам за подсказку !

Действительно про условие поиска для даты я забыл, а вот про Int(now)) даже не знал. Еще раз спасибо, помогли!

Дмитрий здравствуйте!
Сразу к вопросу. Существует таблица данных (см. скриншот)
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=2204

1. Запись в таблицу базы происходит по событию через скрипт

SQLExecute('INSERT INTO logs (NameUser, Action, PrefixOP, TabelN, DateTime) VALUES ("'+sUser+'", "Окончание смены", "'+sNameOP+'", "'+sTabelN+'", "'+ FormatDateTime('yyyy-MM-DD hh:mm:ss.000', now) +'"); ')

2. Далее мне необходимо вывести данные в текстовое поле, при определенных условиях поиска (см. запрос ниже ) . В данном запросе поиск выполняется по значениям переменных  sNameOP , sTabelN и
текущей датой с форматом Год,месяц,день  - (''' + FormatDateTime('yyyy-MM-DD ', now) + ''')

frmSearchOP.Edit11.Text := VarToStr( SQLExecute('SELECT DateTime FROM Logs WHERE (TabelN = ''' + sTabelN + ''')and(Action = ''Окончание смены'')and(''' + FormatDateTime('yyyy-MM-DD ', now) + ''');') );

Суть вопроса: Указанный скрипт по запросу из таблицы работает (ошибок не выдает) но выводит первую попавшуюся дату из таблицы учитывая значения двух переменных но игнорируя текущую дату. Где допущена ошибка в скрипте, помогите разобраться ?!

DriveSoft wrote:

Доработал ваш проект.

Дмитрий, спасибо !

jean.brezhonek

Видимо вы не поняли вопроса smile
Мне необходимо скрыть подменю при нажатии на кнопку!