{codecitation class="brush: pascal; gutter: false;" width="600px"}

Оформил: DeeCo

Автор: Горкуша Алексей

Здесь представлены работающие компоненты обновления данных, полученных запросом через TADOQuery, аналогичные компонентам BDE TQuery,TUpdateSQL

Компоненты TADOUpdateQuery, TADOUpdateSQL выполняют в точности те же функции что и компоненты BDE TQuery,TUpdateSQL.

Это может способствовать быстрому переводу программ с BDE на ADO. Компоненты работающие (в исходных текстах есть комментарии), но до полной совместимости необходимы доработки, например: отсутствуют события onUpdateRecord, onUpdateError.

Предлагаю всем подключится и довести дело до конца.

procedure TForm1.Button1Click (Sender: TObject);

begin

PowerControl1.Action:= actCDEject; // Или…

actLogOFF, actShutDown…PowerControl1.Execute;

end;

= = = = = = = = = = = = = = = = = = = = = = = = = Component Code: unit

PowerControl;

interface uses WinTypes, WinProcs, Messages,

SysUtils, Classes, Controls, Forms, Graphics,

MMSystem;

type

TAction =

(actLogOFF, actShutDown, actReBoot, actForce, actPowerOFF,

actForceIfHung, actMonitorOFF, actMonitorON, actCDEject, actCDUnEject);

type

TPowerControl = class (TComponent)

private

FAction: TAction;

procedure

SetAction (Value: TAction);

protected

public

function Execute:

Boolean;

published

property Action:

TAction read FAction write SetAction;

end;

procedure Register;

implementation

procedure register;

begin

RegisterComponents ('K2', [TPowerControl]);

end;

procedure TPowerControl.SetAction (Value: TAction);

begin

FAction:= Value;

end;

function TPowerControl.Execute: Boolean;

begin

with (Owner as TForm) do

case FAction of

actLogOff:

ExitWindowsEx (EWX_LOGOFF, 1);

actShutDown:

ExitWindowsEx (EWX_SHUTDOWN, 1);

actReBoot:

ExitWindowsEx (EWX_REBOOT, 1);

actForce:

ExitWindowsEx (EWX_FORCE, 1);

actPowerOff:

ExitWindowsEx (EWX_POWEROFF, 1);

actForceIfHung:

ExitWindowsEx (EWX_FORCEIFHUNG, 1);

actMonitorOFF:

SendMessage (Application.Handle,

WM_SYSCOMMAND,

SC_MONITORPOWER, 0);

actMonitorON: SendMessage (Application.Handle, WM_SYSCOMMAND,

SC_MONITORPOWER, −1);

actCDEject: mciSendstring ('SET CDAUDIO DOOR OPEN WAIT', nil, 0, Handle);

actCDUnEject: mciSendstring ('SET CDAUDIO DOOR CLOSED WAIT', nil, 0,

Handle);

end; {Case}

Result:= True;

end;

end.

Скачать ADOComponent.zip (5.7 K)

{/codecitation}