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

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Top = 24

Width = 241

Height = 21

TabOrder = 2

Text = 'Messenger'

end

end

Unit1.pas

unitUnit1;

interface

usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Winsvc;

typeTForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Label1: TLabel;

procedureButton1Click(Sender: TObject);

procedureStopService(ServiceName: String);

procedureButton2Click(Sender: TObject);

procedureStartService(ServiceName: String);

private

{ Private declarations }

public

{ Public declarations }

end;

varForm1: TForm1;

implementation

{$R *.DFM}

procedureTForm1.Button1Click(Sender: TObject);

begin

StopService(Edit1.Text);

end;

procedureTForm1.StopService(ServiceName: String);

var

schService, schSCManager: DWORD;

p: PChar;

ss: _SERVICE_STATUS;

begin

p:= nil;

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

ifschSCManager = 0 thenRaiseLastWin32Error;

try

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

ifschService = 0 thenRaiseLastWin32Error;

try

if notControlService(schService, SERVICE_CONTROL_STOP, SS) then RaiseLastWin32Error;

finally

CloseServiceHandle(schService);

end;

finally

CloseServiceHandle(schSCManager);

end;

end;

procedureTForm1.Button2Click(Sender: TObject);

begin

StartService(Edit1.Text);

end;

procedureTForm1.StartService(ServiceName: String);

var

schService, schSCManager: Dword;

p: PChar;

begin

p:= nil;

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

ifschSCManager = 0 thenRaiseLastWin32Error;

try

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

ifschService = 0 thenRaiseLastWin32Error;

try

if notWinsvc.startService(schService, 0, p) thenRaiseLastWin32Error;

finally

CloseServiceHandle(schService);

end;

finally

CloseServiceHandle(schSCManager);

end;

end;

end.

Прямой вызов метода Hint

Delphi 1

functionRevealHint (Control: TControl): THintWindow;

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

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

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

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

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

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

var

ShortHint: string;

AShortHint: array[0..255] ofChar;

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 orDT_LEFT orDT_WORDBREAK orDT_NOPREFIX);

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

Inc(HintBox.Right, 6);

Inc(HintBox.Bottom, 2);

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

Result.ActivateHint(HintBox, ShortHint);

end; {RevealHint}

procedureRemoveHint ( varHint: 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-файл }

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

procedurestuff;

begin

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

screen.cursor := PutTheCursorHere_Dude;

end;

Компоненты

BatchMove

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

Delphi 1

… вы все делаете правильно. BatchMove не может пересобирать индексы. Тем не менее, следующая процедура все же поможет вам сделать это (создать индексы заново). Задайте ей необходимые параметры (.DBF. Name, исходная и целевая таблица, Source и Target) и попробуйте ее в деле!

procedureForm1.FormCreate(Sender: TObject);

varx: integer;

begin

BatchMove1.Execute;

Source.Open;

Target.Exclusive := True;

Target.Open;

Source.IndexDefs.Update;

forx := 0 toSource.IndexDefs.Count – 1 do

Target.AddIndex(Source.IndexDefs[x].Name, Source.IndexDefs[x].Fields, Source.IndexDefs[x].Options);

Source.Close;

Target.Close;

end;

Есть некоторая таблица и требуется при нажатии на кнопку создавать таблицы такой же структуры. Подскажите, как это удобнее всего сделать?

Nomadicотвечает:

Удобней всего, например, так —

withbmovMyBatchMove do begin

Mode := bmCopy;

RecordCount := 1;

Execute;

R Destination.Delete;

end;

Где bmovMyBatchMove – экземпляр класса TBatchMoveиз VCL.

Неправда Ваша! ;)

Этот загадочный BatchMove имеет одну очень неприятную особенность (по крайней мере при работе с DBF-таблицами и в Delphi 1.0x), как-то:

увеличивает в создаваемых таблицах в полях типа NUMBERколичество значащих цифр после запятой (не помню – возможно, что и до), если там указаны небольшие (около 1-3 цифр) значения :(.

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

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x