![]() |
TuniConnection
Guten Abend,
ich erstelle per runtime die Komponente TUniConnection
Delphi-Quellcode:
Connect := TUniConnection.Create(nil);
Connect.Port := MYSQL_PORT; Connect.ProviderName := MYSQL_PROVIDER; Connect.Server := MYSQL_SERVER; Connect.Username := MYSQL_USERNAME; Connect.Database := MYSQL_DATABASE; Connect.Password := MYSQL_PASSWORD; Connect.Options.DisconnectedMode := True; Connect.Options.LocalFailover := True; Connect.OnConnectionLost := ConnectionConnectionLost; // <----- Connect.Connect;
Delphi-Quellcode:
Leider funktioniert die Zuweisung so nicht.
procedure ConnectionConnectionLost(Sender: TObject;
Component: TComponent; ConnLostCause: TConnLostCause; var RetryMode: TRetryMode); begin RetryMode := rmReconnectExecute; end; (E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur') Wenn ich das über eine Klasse regel Zitat:
Wie löse ich das am besten? |
AW: TuniConnection
Indem du das machst, was da steht?
Das darft halt keine Prozedur, sondern muß eine Methode sein. :roll: |
AW: TuniConnection
Hm, hast noch meinen 2. Versuch gesehen über eine Klasse? Damit startet das Programm, allerdings meckert es dann, siehe 1. Post.
|
AW: TuniConnection
TUni_connection ist auch instanziiert?
Und wo tritt denn diese Exception auf? |
AW: TuniConnection
Ja ist initialisiert.
Fehler beim Lesen von Connection.OnConnetionLost: Ungültiger Eigentschaftswert Edit: Ok Fehler liegt woanderst. |
AW: TuniConnection
Du lässt jetzt das Event über den FormDesigner/Objektinspektor zuweisen?
Wenn ja, dann muß diese Event published sein. |
AW: TuniConnection
Oder man verwendet eine anonyme Methode:
Delphi-Quellcode:
connect.OnConnectionLost := procedure (Sender: TObject;
Component: TComponent; ConnLostCause: TConnLostCause; var RetryMode: TRetryMode); begin RetryMode := rmReconnectExecute; end; |
AW: TuniConnection
Aber nicht laut der Deklaration.
![]() Für mich sieht das nur nach einer Methode aus. Und wenn anonyme Methoden gehen würden, dann hätte man auch die Prozedur zuweisen können, da derartige Referenzen/Zeiger alle 3 Varianten enthalten können. :zwinker: |
AW: TuniConnection
|
AW: TuniConnection
Zitat:
Dort wird nur der umgekehrte Fall beschrieben
Delphi-Quellcode:
type
TFoo = class procedure Bar( Sender : TObject ); end; procedure Bar( Sender : TObject ); begin end; procedure test; var LEvent : TNotifyEvent; LProc : TProc<TObject>; LFoo : TFoo; begin LProc := LFoo.Bar; LProc := Bar; LProc := procedure ( Sender : TObject ) begin end; LEvent := LFoo.Bar; // der Rest geht nicht LEvent := Bar; LEvent := procedure ( Sender : TObject ) begin end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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 by Thomas Breitkreuz