Topic: Бета версия 1.44

Скачать бета версию 1.44 можете здесь
https://www.dropbox.com/s/2phoggh5kfu88 … 4.zip?dl=0


Что нового?


- Для компонента TableGrid добавлено событие OnChange (26.08.2014)

Срабатывает, когда в компоненте изменились данные
Например после того, как был выведен результат поиска, либо удалена запись и т.д.


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


пример:

procedure Form1_TableGrid1_OnChange (Sender: string);
var
    i,c: integer;
begin
    c := Form1.TableGrid1.RowCount - 1;
    for i := 0 to c do
    begin
         if Form1.TableGrid1.Cells[3,i] = 'Да' then Form1.TableGrid1.Cell[3,i].Color := clRed;
         if Form1.TableGrid1.Cells[3,i] = 'Нет' then Form1.TableGrid1.Cell[3,i].Color := clGreen;
    end;
end;



- Добавлена функция для скрипта, позволяющая открыть файл из базы (08.09.2014)
пример

var
   s: string;
begin
     s := SaveFileFromDataBase('person', 'file', Form1.GridAbonent.dbItemID); // возвращает путь и имя файла, сохраненного в папку Temp
     OpenFile(s); // открываем файл
end;

проект, с примером реализации:
http://myvisualdatabase.com/forum/misc. … download=1




- Добавлены методы BeginUpdate и EndUpdate для компонента TableGrid (08.09.2014)
Служит для увеличения скорости при разукрашивании ячеек компонента.
пример

procedure Form1_TableGrid1_OnChange (Sender: string);
var
   i,c: integer;
begin
   Form1.TableGrid1.BeginUpdate;    
   c := Form1.TableGrid1.RowCount - 1;
   for i := 0 to c do
   begin
      if Form1.TableGrid1.Cells[3,i] = 'Yes' then Form1.TableGrid1.Cell[3,i].Color := clRed;
      if Form1.TableGrid1.Cells[3,i] = 'No' then Form1.TableGrid1.Cell[3,i].Color := clGreen;
   end;
   Form1.TableGrid1.EndUpdate;
end;


- Добавлена возможность для скрипта обратиться к подвалу компонента TableGrid (11.09.2014)
пример

 Form1.TableGrid1.Options := Form1.TableGrid1.Options + goFooter; // активируем подвал
 Form1.TableGrid1.Columns[0].Footer.Caption := 'Привет из подвала';



- Добавлена возможность для компонента DateTimePicker искать только по месяцу и году (11.09.2014)
для ее активирования, в свойстве Kind выберите MonthYear




- Добавлена функция для скрипта, получающая список файлов в указанной папке (13.09.2014)
пример ее использования, для добавления списка файлов в базу данных

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   SL: TStringList;
   i,c: integer;
begin
   SL := TStringList.Create; // создаем объект списка
   SL.Text := GetFilesList('d:\music');  // получаем все файлы папки music

   c := SL.count - 1; // узнаем количество найденых файлов
  
   for i :=0 to c do // цикл, где перебираем имя каждого файла и добавляем его в базу
      SQLExecute ('INSERT INTO music (musicfile) VALUES ("' + SL[i] + '")');
   
  SL.Free;
end;
Dmitry.

2 (edited by savage 2014-08-29 21:24:28)

Re: Бета версия 1.44

DriveSoft, что-то идет не так. Попробовал "поиграться" на базе своей проги и не получается зайти в программу. Посмотреть - прикрепил

В старой версии все отрабатывает нормально

Вообще, очень странное поведение. Многие функции либо работают "через пень колоду" либо вообще "молчат"...

Post's attachments

Attachment icon MyLibrary.zip 335.76 kb, 564 downloads since 2014-08-29 

Re: Бета версия 1.44

savage

Спасибо, что сообщили, действительно была ошибка, пожалуйста скачайте версию 1.43 еще раз.
http://myvisualdatabase.com/download/myvisualdb.exe

Dmitry.

Re: Бета версия 1.44

DriveSoft, не могу в свойствах найти OnChange

Re: Бета версия 1.44

savage
Скачайте еще раз бета версию 1.44, перезалил ее с исправлением.
https://www.dropbox.com/s/2phoggh5kfu88 … 4.zip?dl=0

Dmitry.

6 (edited by savage 2014-08-30 08:46:55)

Re: Бета версия 1.44

DriveSoft, все гут.

А как выделить всю строку ? Это было бы более принципиально в моем случае...

Re: Бета версия 1.44

savage
Form1.TableGrid1.dbItemID := 5; //выделяем строку в таблице, в которой находится запись с идентификатором 5

Dmitry.

Re: Бета версия 1.44

Спасибо Дмитрий! То, что доктор прописал)))

Re: Бета версия 1.44

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

Re: Бета версия 1.44

mitrich45
Уточните, сообщение необходимо при вызове формы для добавления записи? либо при фактическом добавлении в базу данных?


для сообщения при удалении записи, создайте событие OnClick у кнопки, предназначенной для удаления записи, пример:

procedure Form1_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
   ShowMessage('Удаление');
end;
Dmitry.

Re: Бета версия 1.44

Спасибо за разъяснение! При фактическом добавлении, все работает, но, есть беда небольшая (реагирует OnChange на dbUpdate). Можно как то исключить, чтобы процедура не реагировала на обновление базы?

Re: Бета версия 1.44

mitrich45
Речь идет о компоненте TableGrid? метод dbUpdate обновляет содержимое компонента, поэтому OnChange обязан сработать.

Dmitry.

Re: Бета версия 1.44

DriveSoft wrote:

mitrich45
Речь идет о компоненте TableGrid? метод dbUpdate обновляет содержимое компонента, поэтому OnChange обязан сработать.

Да TableGrid, понимаю, что обязан срабатывать, ладно пока думать буду как реализовать уведомление о изменении записей в гриде, пока не критично.

Re: Бета версия 1.44

DriveSoft wrote:

- Добавлена функция для скрипта, позволяющая открыть файл из базы (08.09.2014)

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

Также по возможности прошу добавить в будущую версию функцию для пакетного добавления в таблицу путей к файлам в указанной папке (по заданной маске имени и расширения).
Это было бы очень удобно для первичного (чернового) заполнения базы. Например,
при создании базы типа медиакаталога или библиотеки. Это избавило бы от рутинного поиска и добавления файла к каждой записи и гарантировало бы отсутствие ошибочного дублирования файлов при ручной обработке.

Re: Бета версия 1.44

grial
Компонени DBFile имеет свойство Type
Устанавливает метод работы с файлом: сохранять в базу данных, ссылаться на файл, ссылаться на папку.
полный путь файла хранится в поле ИмяПоляТипаФайл_filename


Добавил в бета версию функцию
function GetFilesList(Path: string; ext: string = '*.*'): string;
ее пример использования можно найти в первом сообщении  темы

Dmitry.