Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

end;

procedure TForm1.StartService(ServiceName: String);

var

 schService, schSCManager: Dword;

 p: PChar;

begin

 p:=nil;

 schSCManager:= OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);

 if schSCManager = 0 then RaiseLastWin32Error;

 try

schService:=OpenService(schSCManager, PChar(ServiceName), SERVICE_ALL_ACCESS);

if schService = 0 then RaiseLastWin32Error;

try

if not Winsvc.startService(schService, 0, p) then RaiseLastWin32Error;

finally

CloseServiceHandle(schService);

end;

 finally

CloseServiceHandle(schSCManager);

 end;

end;

end.

Прямой

вызов метода Hint

Delphi 1

function RevealHint (Control: TControl): THintWindow;

{----------------------------------------------------------------}

{ Демонстрирует всплывающую подсказку для определенного элемента }

{ управления (Control), возвращает ссылку на hint-объект, }

{ поэтому в дальнейшем подсказка может быть спрятана вызовом }

{ RemoveHint (смотри ниже). }

{----------------------------------------------------------------}

var

ShortHint: string;

 AShortHint: array[0..255] of Char;

 HintPos: TPoint;

 HintBox: TRect;

begin

 { Создаем окно: }

 Result := THintWindow.Create(Control);

 { Получаем первую часть подсказки до '|': }

 ShortHint := GetShortHint(Control.Hint);

 { Вычисляем месторасположение и размер окна подсказки }

 HintPos := Control.ClientOrigin;

 Inc(HintPos.Y, Control.Height + 6); <<<< Смотри примечание ниже

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

 DrawText(Result.Canvas.Handle, StrPCopy(AShortHint, ShortHint), -1, HintBox, DT_CALCRECT or DT_LEFT or DT_WORDBREAK or DT_NOPREFIX);

 OffsetRect(HintBox, HintPos.X, HintPos.Y);

 Inc(HintBox.Right, 6);

 Inc(HintBox.Bottom, 2);

 {
Теперь показываем окно: }

 Result.ActivateHint(HintBox, ShortHint);

end; {RevealHint}

procedure RemoveHint (var Hint: THintWindow);

{----------------------------------------------------------------}

{ Освобождаем дескриптор окна всплывающей подсказки, выведенной }

{ предыдущим RevealHint. }

{----------------------------------------------------------------}

begin

Hint.ReleaseHandle;

 Hint.Free;

 Hint := nil;

end; {RemoveHint}

Строка с комментарием <<<< позиционирует подсказку ниже элемента управления. Это может быть изменено, если по какой-то причине вам необходима другая позиция окна с подсказкой. 

Как использовать свои курсоры в программе? I

Nomadic предлагает следующее:

{$R CURSORS.RES}

const

 crZoomIn = 1;

 crZoomOut = 2;

Screen.Cursors[crZoomIn] := LoadCursor(hInstance, 'CURSOR_ZOOMIN');

Screen.Cursors[crZoomOut] := LoadCursor(hInstance, 'CURSOR_ZOOMOUT');

С вашей программой должен быть слинкован файл ресурсов, содержащий соответствующие курсоры. 

Как использовать свои курсоры в программе? II

С помощью программы Image Editor упакуйте курсор в RES-файл. В следующем примере подразумевается, что вы сохранили курсор в RES-файле как «cursor_1», и записали RES-файл с именем MYFILE.RES.

{$R c:\programs\delphi\MyFile.res} { Это ваш RES-файл }

const PutTheCursorHere_Dude = 1; { произвольное положительное число }

procedure stuff;

begin

 screen.cursors[PutTheCursorHere_Dude] := LoadCursor(hInstance, PChar('cursor_1'));

 screen.cursor := PutTheCursorHere_Dude;

end;

Компоненты 

BatchMove 

Пересборка индексов с помощью TBatchMove

Delphi 1 

Поделиться с друзьями: