![]() |
Delphi-Version: XE2
Ereignisprozedur ohne Klasse (Prozedurenzeiger)
Hallo zusammen,
Sorry für den Titel. Für ein älteres Projekt nutze ich die unit OneInstance.pas aus dieser Community um einfach einen Mehrfachstart zu verhindern. Das funktioniert perfekt. Nun sollte ich allfällige Parameter an die Instanz auch verwenden. Der Author schreibt ![]() Zitat:
Delphi-Quellcode:
wird logischerweise bemängelt: Inkompatible Typen: Reguläre Prozedur und Methodenzeiger. Hinweis: Die Komponente ist nicht installiert - es ist nur die Unit in uses.
uses
,OneInstance type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure NewInst(ProcessId: Cardinal; CmdLine: string; var Allow: Boolean); public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin OneInstance.NewInstProc:= self.NewInst; end; Danke für eine Erleuchtung |
AW: Ereignisprozedur ohne Klasse (Prozedurenzeiger)
Es gibt einen Unterschied zwischen Klassenmethoden und normalen Prozeduren.
Hier ist eine normale Prozedur gefordert:
Delphi-Quellcode:
uses
,OneInstance type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure NewInst(ProcessId: Cardinal; CmdLine: string; var Allow: Boolean); begin // ? end; procedure TForm1.FormCreate(Sender: TObject); begin OneInstance.NewInstProc:= NewInst; end; |
AW: Ereignisprozedur ohne Klasse (Prozedurenzeiger)
Ächz.... So einfach. Danke
|
AW: Ereignisprozedur ohne Klasse (Prozedurenzeiger)
Delphi-Quellcode:
Class-Methode = ohne Instanz
type
TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private class procedure NewInst(ProcessId: Cardinal; CmdLine: string; var Allow: Boolean); static; end; procedure TForm1.FormCreate(Sender: TObject); begin OneInstance.NewInstProc := self.NewInst; end; Static = ohne versteckten "Self"-Parameter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 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