Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Code wie anwenden... (https://www.delphipraxis.net/59160-code-wie-anwenden.html)

Knotti2005 18. Dez 2005 15:46


Code wie anwenden...
 
Wie kann ich diesen Delphi Code in meinen Programm anwenden?


Delphi-Quellcode:
unit PowerButton;

///////////////////////////////////////////////////////////////////////////////////////
//Dies ist eine Komponente um den Powerknopf anzusteuern.
//Eigenschaften:
//PowerOffEnable:boolean
//  >false lässt den Pc nicht mehr herunterfahren
//Ereignisse:
//  OnPowerbuttonpress
//  >Wird ausgeführt wenn der Powerbutton gedrückt wurde
//
//Programmed by CTV => [url]www.ctvnet.ch[/url]
//
//Komponente darf frei für alles verwendet werden copyright darf nicht entfernt werden
///////////////////////////////////////////////////////////////////////////////////////



interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Menus, ShellApi, ExtCtrls, Dialogs;



type

  TPowerButton = class(TComponent)
  private
    FHooked: Boolean;
    FOnPowerbuttonPress: TNotifyEvent;
    PPowerOffEnable: Boolean;
    function MessageHook(var Msg: TMessage): Boolean;
  protected
    procedure DoPowerbuttonPress; dynamic;
  public
    Version, Hersteller: string;
    IResultHi, IResultLo, ILParamHi, ILParamLo, IWParamHi, ILParam,
    IWParamLo, IWparam, Imsg, IResult: Integer;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    {events}
    property OnPowerbuttonPress: TNotifyEvent
      read FOnPowerbuttonPress write FOnPowerbuttonPress;
    {properties}
    property PowerOffEnable: Boolean read PPowerOffEnable write PPowerOffEnable;

  end;

procedure Register;

implementation

const
  PBT_APMQUERYSUSPEND = 536; {Request for permission to suspend.}

procedure Register;
begin
  RegisterComponents('Zusätzlich', [TPowerButton]);
end;

constructor TPowerButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Version   := '1.0.0.0';
  Hersteller := 'CTVNet.ch';
  FHooked   := False;
  if not (csDesigning in ComponentState) then
  begin
    Application.HookMainWindow(MessageHook);
    FHooked := True;
  end;
end;

procedure TPowerButton.DoPowerbuttonPress;
begin
  if Assigned(FOnPowerbuttonPress) then FOnPowerbuttonPress(Self);
end;

function TPowerButton.MessageHook(var Msg: TMessage): Boolean;
begin
  IResultHi := Msg.ResultHi;
  IResultLo := Msg.ResultLo;
  ILParamHi := Msg.LParamHi;
  ILParamLo := Msg.LParamLo;
  IWParamHi := Msg.WParamHi;
  ILParam  := Msg.lParam;
  IWParamLo := Msg.WParamLo;
  Imsg     := Msg.Msg;
  IResult  := Msg.Result;
  IWparam  := Msg.wParam;

  if (Msg.Msg = PBT_APMQUERYSUSPEND) and (Msg.wParam = 0) then //win95/98
  begin
    if PPowerOffEnable = False then
    begin
      Msg.Result := PWR_FAIL;
    end;
  end;

  if (Msg.Msg = PBT_APMQUERYSUSPEND) and (Msg.wParam = 0) then //winNT,2k,XP
  begin
    if PPowerOffEnable = False then
    begin
      Msg.Result := BROADCAST_QUERY_DENY;
    end;
  end;

  if (Msg.Msg = PBT_APMQUERYSUSPEND) and (Msg.wParam = 0) then //excute Event
  begin
    DoPowerbuttonPress;
  end;
end;

destructor TPowerButton.Destroy;
begin
  if FHooked then Application.UnhookMainWindow(MessageHook);
  inherited Destroy;
end;


end.

arbu man 18. Dez 2005 15:50

Re: Code wie anwenden...
 
so z.B.
Delphi-Quellcode:
var myPowerButton:TPowerButton;
begin
  myPowerButton:=TPowerButton.Create(self);
  myPowerButton.PowerOffEnable:=true;
  myPowerButton.Destroy;
end;

stifflersmom 18. Dez 2005 15:53

Re: Code wie anwenden...
 
Du solltest mal danach suchen, wie man Komponenten installiert,
dann kannst Du auch Deinen Powerbutton benutzen.

Moin

Knotti2005 18. Dez 2005 15:58

Re: Code wie anwenden...
 
Ich glaube das ist die Erkenntnis die mir fehlt...

Kannste mir helfen...

malo 18. Dez 2005 15:59

Re: Code wie anwenden...
 
Grr. Jetzt hab ich mich 10 Minuten hingesetzt, und eine Beschreibung gemacht, und dann fällt mir auf, dass es eine Komponente ist :wall:

Klick mich
Das ist ein Tutorial zum Installieren von Komponenten ;)

Knotti2005 18. Dez 2005 16:03

Re: Code wie anwenden...
 
Danke und Sorry wegen deiner Arbeit...

Mal gleich in meine Favoriten aufnehmen...


Danke


:wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz