AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignisprozedur zur Laufzeit zu weisen

Ein Thema von Samashy · begonnen am 18. Okt 2010 · letzter Beitrag vom 18. Okt 2010
Antwort Antwort
Benutzerbild von Samashy
Samashy

Registriert seit: 20. Feb 2004
Ort: Cottbus
127 Beiträge
 
Delphi 10.4 Sydney
 
#1

Ereignisprozedur zur Laufzeit zu weisen

  Alt 18. Okt 2010, 16:09
Delphi-Version: 2007
Hallo Ihr Lieben,

ich hänge an folgendem Problem fest.
Ich möchte eine Komponente zur Laufzeit erzeugen und dann eine Ereignisprozedur zu weisen:

Code:
type
  TForm1 = class(TForm)
      Memo1: TMemo;
      procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
     testrio : THTTPRIO;
     procedure testrioBeforeExecute(const MethodName: string;
      var SOAPRequest: TStream);
  public
    { Public-Deklarationen }
  end;
Code:
procedure TForm1.testrioBeforeExecute(const MethodName: string;
  var SOAPRequest: TStream);
var
 Request: UTF8String;
begin
  SetLength(Request, SOAPRequest.Size);
  SOAPRequest.Position := 0;
  SOAPRequest.Read(Request[1], Length(Request));
  Memo1.Lines.Add(FormatXMLData(Request));
end;

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
   testrio :=THTTPRIO.create(Application);
   testrio.OnBeforeExecute:=testrioBeforeExecute;   //<---- Hier bekomme ich den Fehler
end;
Die Fehlermeldung: Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'

Was mache ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Ereignisprozedur zur Laufzeit zu weisen

  Alt 18. Okt 2010, 16:11
Na dann guck dir doch mal an, was für Parameter die Prozedur erwartet. Das weiß ich auch nicht, da müsste ich genauso in der Hilfe nachgucken, wie du.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Ereignisprozedur zur Laufzeit zu weisen

  Alt 18. Okt 2010, 16:14
Zitat:
Delphi-Quellcode:
{$IFDEF OLD_STYLE_ON_BEFORE_EXECUTE}
  TBeforeExecuteEvent = procedure(const MethodName: string; var SOAPRequest: InvString) of object;
{$ELSE}
  TBeforeExecuteEvent = procedure(const MethodName: string; SOAPRequest: TStream) of object;
{$ENDIF}
Ich vermute mal das Neue ist aktiv ... aber da gibt es kein VAR beim Stream

PS: Wozu in die OH gucken?
Die stimmt doch eh nicht immer.
Aktueller und richtig wird der Quellcode sein.
> Strg+Mauslinksklick auf ".OnBeforeExecute" und schon siehst du, was verlangt wird.
$2B or not $2B

Geändert von himitsu (18. Okt 2010 um 16:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Ereignisprozedur zur Laufzeit zu weisen

  Alt 18. Okt 2010, 16:30
PS: Wozu in die OH gucken?
Die stimmt doch eh nicht immer.
Aktueller und richtig wird der Quellcode sein.
> Strg+Mauslinksklick auf ".OnBeforeExecute" und schon siehst du, was verlangt wird.
Das war nur ein Hinweis, dass man da auch mal selber gucken kann.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Ereignisprozedur zur Laufzeit zu weisen

  Alt 18. Okt 2010, 16:41
Zumal die OH in diesem Fall ja auch stimmt
http://docs.embarcadero.com/products...cuteEvent.html

Wenn das dann immer noch nicht passt schaut man (wie gezeigt) in den Quelltext.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Samashy
Samashy

Registriert seit: 20. Feb 2004
Ort: Cottbus
127 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Ereignisprozedur zur Laufzeit zu weisen

  Alt 18. Okt 2010, 16:49
Vielen Dank!!! Jetzt funktioniert es! Das var war es

Sam

Geändert von Samashy (18. Okt 2010 um 16:49 Uhr) Grund: Tipfehler beseitigt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Ereignisprozedur zur Laufzeit zu weisen

  Alt 18. Okt 2010, 16:53
Das war nur ein Hinweis, dass man da auch mal selber gucken kann.
Ist auch richtig, aber leider enthält die OH nicht immer viele Infos, wenn überhaupt. (Unbenannt.PNG)
Da geht es über den Typen selber schneller.

Leider bekommt man das letzte D2010er Help-Update hier nicht installiert (ein Installerproblemchen), aber eventuell hat man es ja auch erst in XE aktualisiert.
Aber derzeit finde ich die OH diesbezüglich nicht grad informativ.
Dazumal F1 über "OnBeforeExecute" nichts oder was Falsches findet,
auf "TBeforeExecuteEvent" muß man auch erstmal kommen
und selbst da zeigt die OH nichtmal den Eintrag direkt an (Unbenannt2.PNG) und man muß selber weiterklicken.

Und jetzt darf ich auch nicht vergessen diese blöde dexplorer.exe abzuschießen, da sonst der PC nicht mehr runterfährt.
Miniaturansicht angehängter Grafiken
unbenannt.png   unbenannt2.png  
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 Uhr.
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