Программное добавление поля

Программное добавление поля, на примере ADO, по аналогии можно сделать и с FireDAC

 

Delphi. FireDAC. FDTable. Осортировать записи на клиенте

Пример сортировки

Буква D означает по убыванию, Descending как я понимаю

Delphi. Как закрыть модальное окно программно?

Вопрос вроде бы простой, но стопорнулся на нём. В сети много примеров на эту тему, но перепробовав всё, я понял, что мне нужен свой вариант)))

Проблема заключается в том, что вызвав модальную форму, программа ждёт некоторого действия от пользователя, например нажатия на кнопку ok или Cancel. И если прогнать отладчиком, то какой бы код ни написать после ShowModal – всё это не исполняется, пока не нажмешь извне так сказать на одну из кнопок.

Меня такой вариант явно не устраивал, и тогда я объявил одно свойство ReadyToClose и при присвоении ему значения True – таймер закрывает эту модальную форму. Так сказать диверсионно подрывная работа изнутри))

Зачем? В моём конкретном случае нужно было показывать анимацию во время копирования файлов и закрывать её, когда соответствующий поток закончит свою работу. Закрывать программно.

Итак, пусть у нас есть некая модальная форма….

3 Continue reading

Delphi. Как настроить TListView для работы с большим количеством данных?

Например 1000 000 строк…

OnData

После этого – информация подгружается по мере скролла – происходит это достаточно быстро.

Delphi. Добавить DateTIme в MySQL в правильном формате.

Проблема – DateTime в MySQL и Delphi выглядят по разному. Решение – функция Delphi FormatDateTIme;

Записать в нужном формате в MySQL

Прочитать, соответственно, наоборот

 

Delphi. Как прочитать значение поля из DataSource?

Подсказка для себя

 

Delphi. MySQL. Пример добавления даты и времени в базу данных

Как вариант можно хранить TDateTime в качестве строки. Допустим у нас в базе есть поле CreationDateTime varchar(45);

Обратно можно преобразовать с помощью StrTODateTime;

Как ограничить движение мыши областью при DragOver при помощи ClipCursor?

Появилась задача – ограничить движение мыши прямоугольной областью, чтобы корректно работал механизм DragOver. Дело в том, что если разместить TreeView и ListView и прописать в каждом из них взаимоисключающие Accept параметры, то при переносе на соседний элемент иногда возникают проблемы. В итоге, решил ограничить область действия мыши для каждого из них отдельно. Поскольку я разрабатывал компонент, то использовал свойства для точного определения координат прямоугольника.

Получилось так…

В секции type private

В секции public

Continue reading

Как сохранить ID в TListItem.Data?

Пишу небольшую систему управления файлами на основе DBTreeView и DBListView – делаю небольшую подсказку для себя и тех, кто идет по моим следам.

В данном посте узнаем как добавить колонки, итемы и сохранить ID записи базы данных в TListItem.Data? Тут пример без самой БД, но с иллюстрацией того, как хранить id записей в TListItem.Data.

1

 

2

Как добавить колонки и итемы?

Continue reading

Как избавиться от зависимости от глобальных переменных при разработке компонента?

Столкнулся с тем, что при разработке компонентов есть published свойства, в которые заносится некоторая информация. И вот вопрос – как передать эту информацию во внутренний модуль компонента?

Подробно проблему описал на 2 форумах

How to avoid using GlobalVars in components development?

Как передать данные из одного юнита в другой при разработке компонента? Continue reading