Вопрос: Как запретить изменение размера моего компонента в design-time? Ответ: Поместите в конструктор компонента код, устанавливающий размеры по умолчанию. Переопределите метод SetBounds и проверяйте в нем "componentstate". Если компонет находится режиме "design-time" (csDesigning in ComponentState) просто передавайте значения ширины и высоты (width и heights) компонента по умолчанию (в нашем примере 50) методу класса-предка Read the rest of this entry »
Тэги ‘Integer’
Вопрос: На некоторых laptop компьютерах может не быть флоппи дисковода. Можно ли удалять из списка TDriveComboBox диски которые отключены? Ответ: В примере TDriveComboBox не показывает дисководы, которые не готовы. (not ready). Учтите что на многих компьютерах будет ощутимая задержка при поверке plug&play флоппи дисковода. Read the rest of this entry »
Вопрос: Как сделать прямоугольник для выделения части картинки для редактирования? Ответ:
Самый простой способ -
воспользоваться функцией Windows API DrawFocusRect. Функция DrawFocusRect использует
операцию XOR при рисовании – таким образом вывод прямоугольника дважды с одними
и теми же координатами стирает прямоугольник, и прямоугольник всегда будет виден,
на фоне какого бы цвета он не выводился. Read the rest of this entry »
Вопрос: Как перемещать компонент мышкой во время работы программы "runtime"? Ответ:
Перехватить событие OnMouseDown,
запомнить x и y координты курсора мыши. Отслеживать движение мыши по событию
OnMouseMove и перемещать компонент вслед за курсором мыши до тех пор пока не
произойдет событие OnMouseUp. В примере показано перемещение компонента TButton.
Перемещение начинается, когда пользователь “берет” TButton мышью, удерживая
нажатой клавишу “Сontrol”. Read the rest of this entry »
Вопрос: Создание PolyPolygon используя массив точек? Ответ:
Polygon – метод компонента
TCanvas получает в качестве параметра динамический массив точек. Функция PolyPolygon()
из Windows GDI получает указатель на массив точек. Read the rest of this entry »
Вопрос: Как создать отдельную подсказку (hint) для каждой ячейки StringGrid? Ответ:
В приведенном примере
отслеживается движение курсора мыши – при перемещении между ячейками StringGrid’а
- появляется окно подсказки(hint), показываеющее номер текущей строки и колонки. Read the rest of this entry »
Вопрос:
При использовании модулей доступа к BDE (DbiTypes, DbiProcs, DbiErrs), любая попытка вызвать процедуру abort выдает ошибку при компиляции при вызове метода abort “Statement expected,
but expression of type ‘Integer’ found”. Я пытался найти DbiTypes.pas, DbiProcs.pas
и DbiErrs.pas чтобы разобраться но не нашел этих файлов. Где расположены эти
файлы и как обойти ошибку?
Вопрос:
Как разместить прозрачную надпись на TBitmap?
Пример:
procedure TForm1.Button1Click(Sender: TObject);
var
OldBkMode : integer;
begin
Image1.Picture.Bitmap.Canvas.Font.Color := clBlue;
OldBkMode := SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,TRANSPARENT);
Image1.Picture.Bitmap.Canvas.TextOut(10, 10, ‘Hello’);
SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,OldBkMode);
end;
Как скрыть свойства объекта?
В иерархии VCL в большинстве случаев существует уровень объектов-”предшественников”
(TCustomXXXX), в которых многие свойства скрыты. Для унаследованных от таких
“предшественников” объектов можно “открывать” на выбор те или иные свойства.
А как можно сокрыть свойства, которые объявлены в published-области
от Object Inspector’а, но при этом оставить возможность доступа во время
работы программы? Решение состоит в объявлении свойства “по новой” в public-области.
В примере скрытым будет у объекта TMyControl свойство Height.
TMyControl = class(TWinControl) Read the rest of this entry »
Как выяснить дату последнего изменения файла?
Для выяснения даты последнего изменения файла можно воспользоваться следующей
функцией:
function GetFileDate(FileName: string): string;