Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Funktionen direkt einbinden (https://www.delphipraxis.net/45933-funktionen-direkt-einbinden.html)

MathiasSimmack 15. Mai 2005 15:19

Re: Funktionen direkt einbinden
 
Richtig! :roll: Ich amüsiere mich auch immer, dass die Leute die Units Windows und ActiveX oder ShellAPi rausschmeißen möchten, aber die tatsächlichen Brocken wie SysUtils, Registry o.ä. gern nutzen.

Rastaman 18. Mai 2005 19:48

Re: Funktionen direkt einbinden
 
is jetz nur n Beispiel !!

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
function ShellExecute(
    hwnd: HWND;
    lpOperation,
    lpFile,
    lpParameters,
    lpDirectory: PChar;
    nShowCmd: Integer
): HWND; stdcall;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function ShellExecute: HWND; external 'shell32.dll' name 'ShellExecute';

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShellExecute(Self.Handle,'open','http://www.google.de',0,0,SW_SHOWNORMAL);
end;

end.
[Fehler] Unit1.pas(13): E2065 Ungenügende Forward- oder External-Deklaration: 'TForm1.ShellExecute'

Kernel32.DLL 18. Mai 2005 20:42

Re: Funktionen direkt einbinden
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  public
    { Public-Deklarationen }
  end;

function ShellExecute( //>= Nimm den Kram aus dem Private - Teil
    hwnd: HWND;
    lpOperation,
    lpFile,
    lpParameters,
    lpDirectory: PChar;
    nShowCmd: Integer
): HWND; stdcall;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function ShellExecute; external 'shell32.dll' name 'ShellExecuteA'; //<= Nimm die "A"-Variante und ohne HWND!

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShellExecute(Self.Handle,'open','http://www.google.de',0,0,SW_SHOWNORMAL);
end;

end.
BTW: Ob's geht, weiß ich nicht, aber es müsste sich kompilieren lassen.

In eigener Sache: War eigentlich ganz nett mit euch im Forum, aber ich mach 'nen Neuanfang. Wer über MSCQ up-to-date bleiben möchte, kann sich ja im Newsletter auf meiner Seite danielstools.de eintragen. Kann bis zu einer neuen Version aber noch etwas dauern... Man schreibt sich...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr.
Seite 2 von 2     12   

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