Архив категории ‘Компоненты’

Jul29

Как правильно делать поиск в ADO? Часть 2

Продолжение... Начало в статье - Как правильно делать поиск в ADO? Часть 1

BDE (вовсе не ADO) Дельфи нам предоставляет для работы с нашими таблицами базы данных определённые функции, позволяющие поиск производить нужных значений... Читать далее »

Jul29

Как правильно делать поиск в ADO? Часть 1

Наиболее известная задача, которую приложения решают, работающие именно с базами данных – представляет собой поиск нужных записей по заданному нами критерию. В Дельфи, компоненты ADOExpress в себя включают способы поиска записей, которые являются фактически полностью идентичными к тем, используются которые в BDE... Читать далее »

Jul23

Компонент IdHTTP

Компонент под названием IdHTTP в Дельфи размещается на самой вкладке Indy ClientsЧитать далее »

Jul11

Таймер в Дельфи

В данном посте, давайте рассмотрим комонент Timer...Компонент под названием Timer, в среде программирования Delphi, предназначен для пуска процедур, а также функций и событий в указанные временные интервалы... Читать далее »

Jun14

Закрытие окна

При необходимости закрытия окна, если вы нажмете на  кнопку Escape, то закроется "вторичное" окно программы, а вовсе не самое главное. К примеру, для ввода значений... Читать далее »

Oct08

Небольшая особенность с VirtualTreeView

Делая одну программу, понадобилось смоделировать переход по ячейкам VirtualTreeView с помощью кнопки Tab. Перехват Tab-а отдельный разговор =), а вот переход по ячейкам сейчас обсудим.

Дело в том, что при переходе по ячейкам VT сразу вызывает редактирование нода, в связи с чем у меня возникала ситуация, когда на редактирование вызывалась не правильная ячейка. Т.е., если реализуете перемещение по ячейкам сами, делайте примерно так:

with vtGrid do
begin
    TreeOptions.MiscOptions := vtGrid.TreeOptions.MiscOptions - [toEditable];
    Selected[lNode] := True;
    FocusedNode := lNode;
    FocusedColumn := lColumn;
    TreeOptions.MiscOptions := vtGrid.TreeOptions.MiscOptions + [toEditable];   
    EditNode(lNode, lColumn);
end;

В таком варианте все работает так, как и ожидается.

P.S.: отметьте для себя еще один момент - очередность присваивания фокуса в дереве - сначала SelectedNode, потом FocusedNode и только после этого FocusedColumn! Только так и никак иначе! В ином случае вас ждут не приятные сюрпризы ;)

Sep20

НИКОГДА так не делайте!

На, уважаемом мною, сайте delphiplus.org увидел ссылку на статью Фленова. Я и до этого с трудом переносил его книги и статьи, но эта статья просто возмутила!

 

Намного проще изменить стандартный компонент TButton и больше никаких изменений в проекте делать не надо.

 

Как так можно??? Вместо того, чтобы объяснить новичкам, что это ОЧЕНЬ не желательно, он призывает поступать именно так. Ну в конце-концов - есть хелперы в новых (и, относительно, не новых. например D2006) версиях Delphi.

 

Я понимаю, что иногда это будет полезно, но такие случаи очень-очень редки. А новички, прочтя подобную статью, будут именно так и поступать. Что-то мне не вериться, что в какой-либо компании, занимающейся разработкой программ и в которой больше одного программиста, будут поступать подобным образом.

 

Итог - НИКОГДА так не делайте и перестаньте читать Фленова!

Jun14

ShortCuts vs VirtualTreeView Editors

Что-то не видно желающих написать пост про VirtualTreeView для конкурса. Жаль...

Ну тогда я сам попробую ;) . Тем более, что нашелся подходящий повод.

Читать далее »