3,126

(2 replies, posted in General)

Please make simple project with this error, I will test it.

Thank you for the project, you found a bug, fixed. Please download latest beta version:
https://www.dropbox.com/s/4rfukqr2r1awq … b.zip?dl=0

3,128

(6 replies, posted in General)

Check it out

procedure Form1_OnShow (Sender: string; Action: string);
begin
    Form1.DBImage1.LoadFromDatabase('logo', 'logo', 1);
end;

3,129

(1 replies, posted in General)

Hello.


Form1.TableGrid1.SelectedRow; // to get index of selected row
Form1.TableGrid1.dbItemID; // to get id of selected row 

3,130

(2 replies, posted in General)

Please attach your project to see the problem.

3,131

(3 replies, posted in General)

Check out an example
http://myvisualdatabase.com/forum/misc. … download=1

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

Frm_File.DBFile_Dir.dbCopyTo := 'C:\';

тестового проекта в вашем сообщении нет.

3,133

(9 replies, posted in Russian)

1.

SQLExecute('ATTACH DATABASE ''abc.db'' as ''TEST''');

Но использовать привязанную базу данных можете только с помощью SQL, пример

SELECT TEST.person.firstname, TEST.person.lastname FROM TEST.person

2. Чуть позже постараюсь сделать для вас пример

3,134

(1 replies, posted in Russian)

К сожалению не имел опыта с КЛАДР

function CountSubstringInString(SubStr: string; s: string): integer;
var
  i,k : Integer;
begin
  result:=0;
  i := Pos(SubStr,s);
  While i<>0 Do
  Begin
     Inc(result);
     i:=PosEx(SubStr, s, i+Length(SubStr));
  End;
End;



procedure Form1_Button4_OnClick (Sender: string; var Cancel: boolean);
begin
    ShowMessage( CountSubstringInString('a','banana') );
end;

Please attach your project.

3,137

(6 replies, posted in General)

Hello.


Yes you can, an example:
http://myvisualdatabase.com/forum/misc. … download=1

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


Обычно сканер кодов просто симулирует нажатие клавиатуры, таким образом сканированный qr код может напечататься в обычном текстовом поле, на котором установлен фокус ввода, данное текстовое поле можно сохранить просто как текст в базе данных.

3,139

(9 replies, posted in Russian)

CONST
   APP_NAME = 'MyAppName'; //your unique application name, used as an identifier, to store information in the system registry


procedure CheckFirstTime;
var
   reg: TRegistry;
begin
     reg := TRegistry.Create;
     reg.Access := KEY_ALL_ACCESS;
     reg.RootKey := HKEY_CURRENT_USER;

     if reg.OpenKey('software\' + APP_NAME, true) then
     begin
          if not reg.ValueExists('Once') then OpenFile('pbrush.exe'); // start external program
          Reg.WriteInteger('Once', 1);
          reg.CloseKey;
     end;

     reg.Free;
end;


begin
    CheckFirstTime;
end.

Не совсем понял пример с получением значения в разные формы. Цель - в разные формы получать значение из TableGrid одной другой. Пример приложил. Упростить реализацию задачи нельзя? Для 30 форм скрипт громоздкий.

К сожалению не пойму, причем тут TableGrid? В примере Search in ComboBox 3.zip используется одно и тоже событие для двух ComboBox-ов, т.о. его можно присвоить и 30-ти ComboBox-ам


Можно ли запустить несколько таймеров с разными интервалами для разных целей в одном проекте?

Да.

var
   Timer1: TTimer;
   Timer2: TTimer;

procedure Form1_OnShow (Sender: string; Action: string);
begin
     Timer1 := TTimer.Create (Form1);
     Timer1.OnTimer := @OnTimer1;
     Timer1.Interval := 5000; // every 5 sec
     Timer1.Enabled := True;

     Timer2 := TTimer.Create (Form1);
     Timer2.OnTimer := @OnTimer2;
     Timer2.Interval := 10000; // every 10 sec
     Timer2.Enabled := True;
end;

procedure OnTimer1;
begin
      // some script
end;

procedure OnTimer2;
begin
      // some script
end;


Экспортируя таблицы в SQLiteStudio загрузить их не удается.

Опишите пожалуйста на примере, что именно не получается.


Вижу, в версии 3.* есть ряд полезных вещей. Покупателям 2.* скидок не предусмотрено?

Предусмотрено, отправлю вам информацию на ваш e-mail



Пожалуйста создавайте отдельную тему для каждого вопроса.

3,141

(2 replies, posted in General)

Thanks for the bug report, I will test it.

3,142

(7 replies, posted in Russian)

Проще сделать так

procedure OnMVDMouseWheel(Sender: TObject; isShift, isAlt, isCtrl: boolean; WheelDelta: Integer; X, Y: Integer; var Handled: Boolean);
begin
    if TAForm(Sender).ActiveControl is TdbComboBox then Handled := True;
end;


begin
    Form1.OnMouseWheel := @OnMVDMouseWheel;
    frmAbonent.OnMouseWheel := @OnMVDMouseWheel;
end.

3,143

(4 replies, posted in General)

Please read section "More information about properties "Calendar""
http://myvisualdatabase.com/help_en/com … icker.html


Fixed project:

I know how to do it only using script from MVD, example:
http://myvisualdatabase.com/forum/viewtopic.php?id=1664

v_pozidis wrote:

Waiting for your help Dmitry.

Check it out

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


Да, это можно сделать скриптом

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
    OpenFile('c:\doc.xls');
end;
vojaka wrote:

Я так и сделал. Тогда еще вопрос, а добавление дней IncDay работает?

Нет, вместо этого к дате можете просто добавить единицу

MyData + 1

3,148

(9 replies, posted in Russian)

1. К сожалению такой возможности непредусмотрено. Это можно было бы реализовать только скриптом  при запуске проекта.


2. Просто поместите мышкой компонент Надпись (Label) поверх компонента с фотографией.

3,149

(7 replies, posted in Russian)

Да, точно.

Попробуйте так

procedure frmApplication_Button1_OnAfterClick (Sender: string);
var
    dbFileName, sFileName, sNewFileName: string;
begin
    if frmApplication.DBImage1.dbImageIsChanged then
    begin
        sFileName := frmApplication.DBImage1.dbFileName;
        sFileName := ExtractFileDir(Application.ExeName)+sFileName;
        sNewFileName := ExtractFilePath(Application.ExeName) + frmApplication.DBImage1.dbCopyTo + '\'+ frmApplication.edCounter.Text + '_' + DateToStr(frmApplication.dtDate.Date) + ExtractFileExt(sFileName);

        dbFileName := '"\'+frmApplication.DBImage1.dbCopyTo + '\'+ frmApplication.edCounter.Text + '_' + DateToStr(frmApplication.dtDate.Date) + ExtractFileExt(sFileName)+'"';

        if FileExists(sNewFileName) then
        begin
            if IDYES = MessageBox('File exists.' + #13+ sNewFileName+#13+ 'Overwrite?', 'Warning', MB_YESNO+MB_ICONQUESTION) then
            begin
                DeleteFile(sNewFileName);
                //if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE application SET PhotoIn1_filename = '+dbFileName + ' WHERE id='+IntToStr(frmApplication.Button1.dbGeneralTableId));
            end;
        end;

        if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE application SET PhotoIn1_filename = '+dbFileName + ' WHERE id='+IntToStr(frmApplication.Button1.dbGeneralTableId));
    end;


    if frmApplication.DBImage2.dbImageIsChanged then
    begin
        sFileName := frmApplication.DBImage2.dbFileName;
        sFileName := ExtractFileDir(Application.ExeName)+sFileName;
        sNewFileName := ExtractFilePath(Application.ExeName) + frmApplication.DBImage2.dbCopyTo + '\'+ frmApplication.edCounter.Text + '_' + DateToStr(frmApplication.dtDate.Date) + ExtractFileExt(sFileName);

        dbFileName := '"\'+frmApplication.DBImage2.dbCopyTo + '\'+ frmApplication.edCounter.Text + '_' + DateToStr(frmApplication.dtDate.Date) + ExtractFileExt(sFileName)+'"';

        if FileExists(sNewFileName) then
        begin
            if IDYES = MessageBox('File exists.' + #13+ sNewFileName+#13+ 'Overwrite?', 'Warning', MB_YESNO+MB_ICONQUESTION) then
            begin
                DeleteFile(sNewFileName);
                //if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE person SET photo2_filename = '+dbFileName + ' WHERE id='+IntToStr(frmApplication.Button1.dbGeneralTableId));
            end;
        end;

        if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE application SET PhotoIn2_filename = '+dbFileName + ' WHERE id='+IntToStr(frmApplication.Button1.dbGeneralTableId));

    end;

    if frmApplication.DBImage3.dbImageIsChanged then
    begin
        sFileName := frmApplication.DBImage3.dbFileName;
        sFileName := ExtractFileDir(Application.ExeName)+sFileName;
        sNewFileName := ExtractFilePath(Application.ExeName) + frmApplication.DBImage3.dbCopyTo + '\'+ frmApplication.edCounter.Text + '_' + DateToStr(frmApplication.dtDate.Date) + ExtractFileExt(sFileName);

        dbFileName := '"\'+frmApplication.DBImage3.dbCopyTo + '\'+ frmApplication.edCounter.Text + '_' + DateToStr(frmApplication.dtDate.Date) + ExtractFileExt(sFileName)+'"';

        if FileExists(sNewFileName) then
        begin
            if IDYES = MessageBox('File exists.' + #13+ sNewFileName+#13+ 'Overwrite?', 'Warning', MB_YESNO+MB_ICONQUESTION) then
            begin
                DeleteFile(sNewFileName);
                //if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE person SET photo3_filename = '+dbFileName + ' WHERE id='+IntToStr(frmApplication.Button1.dbGeneralTableId));
            end;
        end;

        if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE application SET PhotoIn3_filename = '+dbFileName + ' WHERE id='+IntToStr(frmApplication.Button1.dbGeneralTableId));
    end;
end;