Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

На TabbedNotebook у меня есть множество компонентов TEdit. Я изменяю цвет компонентов TEdit на желтый и назначаю свойству Hint компонента строчку предупреждения, если поле редактирования содержит неверные данные.

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

Я не знаю как изменить поведение всплывающей подсказки, заданное по умолчанию. Я знаю что это возможно, но кто мне подскажет как?

Ниже приведен модуль, содержащий новый тип hintwindow, TFocusHintWindow. Когда вы "просите" TFocusHintWindow появиться, он появляется ниже элемента управления, имеющего фокус. Для показа и скрытия достаточно следующих команд:

FocusHintWindow.Showing := True;

FocusHintWindow.Showing := False;

Пример того, как это можно использовать, содержится в комментариях к модулю. Это просто.

unitFHintWin;

{ -----------------------------------------------------------

TFocusHintWindow --

Вот пример того, как можно использовать TFocusHintWindow.

Данный пример выводит всплывающую подсказку ниже любого

TEdit, имеющего фокус. В противном случае выводится

стандартная подсказка Windows.

unit Unit1;

interface

uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, FHintWin;

type TForm1 = class(TForm)

procedure FormCreate(Sender: TObject);

private

FocusHintWindow: TFocusHintWindow;

procedure AppIdle(Sender: TObject; var Done: Boolean);

procedure AppShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);

end;

implementation

procedure TForm1.FormCreate(Sender: TObject);

begin

Application.OnIdle := AppIdle;

Application.OnShowHint := AppShowHint;

FocusHintWindow := TFocusHintWindow.Create(Self);

end;

procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean);

begin

FocusHintWindow.Showing := Screen.ActiveControl is TEdit;

end;

procedure TForm1.AppShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);

begin

CanShow := not FocusHintWindow.Showing;

end;

end.

----------------------------------------------------------- }

interface

usesSysUtils, WinTypes, WinProcs, Classes, Controls, Forms;

typeTFocusHintWindow = class(THintWindow)

private

FShowing: Boolean;

HintControl: TControl;

protected

procedureSetShowing(Value: Boolean);

functionCalcHintRect(Hint: string): TRect;

procedureAppear;

procedureDisappear;

public

propertyShowing: Boolean readFShowing writeSetShowing;

end;

implementation

functionTFocusHintWindow.CalcHintRect(Hint: string): TRect;

varBuffer: array[Byte] ofChar;

begin

Result := Bounds(0, 0, Screen.Width, 0);

DrawText(Canvas.Handle, StrPCopy(Buffer, Hint), -1, Result, DT_CALCRECT orDT_LEFT orDT_WORDBREAK orDT_NOPREFIX);

withHintControl, ClientOrigin doOffsetRect(Result, X, Y + Height + 6);

Inc(Result.Right, 6);

Inc(Result.Bottom, 2);

end;

procedureTFocusHintWindow.Appear;

var

Hint: string;

HintRect: TRect;

begin

if(Screen.ActiveControl = HintControl) thenExit;

HintControl := Screen.ActiveControl;

Hint := GetShortHint(HintControl.Hint);

HintRect := CalcHintRect(Hint);

ActivateHint(HintRect, Hint);

FShowing := True;

end;

procedureTFocusHintWindow.Disappear;

begin

HintControl := nil;

ShowWindow(Handle, SW_HIDE);

FShowing := False;

end;

procedureTFocusHintWindow.SetShowing(Value: Boolean);

begin

ifValue thenAppear elseDisappear;

end;

end.

– Ed Jordan

Вызов 16-разрядного кода из 32-разрядного

Andrew Pastushenkoпишет:

Посылаю код для определения системных ресурсов (как в "Индикаторе ресурсов"). Использовалась статья "Calling 16-bit code from 32-bit in Windows 95".

{ GetFeeSystemResources routine for 32-bit Delphi.

Works only under Windows 9x }

unitSysRes32;

interface

const

//Constants whitch specifies the type of resource to be checked

GFSR_SYSTEMRESOURCES = $0000;

GFSR_GDIRESOURCES = $0001;

GFSR_USERRESOURCES = $0002;

// 32-bit function exported from this unit

functionGetFeeSystemResources(SysResource: Word): Word;

implementation

usesSysUtils, Windows;

type

//Procedural variable for testing for a nil

TGetFSR = function(ResType: Word): Word; stdcall;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x