AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Delpi2007->XE2 geänderte Ereignis-Parameterliste
Thema durchsuchen
Ansicht
Themen-Optionen

Delpi2007->XE2 geänderte Ereignis-Parameterliste

Ein Thema von Keldorn · begonnen am 24. Jan 2012 · letzter Beitrag vom 5. Feb 2012
Antwort Antwort
Seite 1 von 2  1 2      
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Delpi2007->XE2 geänderte Ereignis-Parameterliste

  Alt 24. Jan 2012, 20:12
Hallo,

ich habe eines meiner Projekte von Delphi2007 zu XE2 umgestellt.
Bsp, sahen 2 Ereignismethoden bei HTTPRio so aus
Delphi-Quellcode:
    procedure HTTPRioBeforeExecute(const MethodName: string; var {!} SOAPRequest: WideString{!});
    procedure HTTPRIOAfterExecute(const MethodName: string;SOAPResponse: TStream);
unter DelphiXE2 ist HttprioBeforeExecute jetzt so:
procedure HTTPRIO1BeforeExecute(const MethodName: string;SOAPRequest: TStream); der Soaprequest ist jetzt auch ein Stream und kein Var-Parameter und widestring.
Prinzipiell ja nicht unschön, ist es wenigstens schön einheitlich und die notwendige Änderung ist auch schnell gemacht.

Großes Problem ist aber: Das Projekt wird trotzdem mit der alten Mehodenschreibweise kompiliert und gestartet.
Ich habe schon alle DCU´s gelöscht, mache Projekt erzeugen usw, nix, Delphi meckert nicht. Erst, wenn ich innerhalb der Proc etwas ändere (leerzeichen reicht schon) und dann nochmal kompiliere bekomme ich den erwarteten Fehler
Zitat:
Die <methodenname>, aufgerufen von <formularname>.<ereignisname> hat eine inkompatible Parameterliste. Soll der Aufruf entfernt werden?
was muß ich tun, damit ich solche (evtl. weiteren ?!) geänderten Ereignisparamterlisten finde oder mir das Delphi anzeigt?

Danke Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)

Geändert von Keldorn (24. Jan 2012 um 22:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delpi2007->XE2 geänderte Ereignis-Paramerliste

  Alt 24. Jan 2012, 20:52
Die Signatur der Events in der DFM werden nicht geprüft.

Erst beim Zugriff/Aufruf mit der falschen Parametersignatur, knallt es, aufgrud der falschen Typen.

Leider scheint es keine komplett automatische Lösung dafür zu geben.


Ohne daß die Units neu kompiliert werden, wird es nicht geht, denn die DFMs werden ja sonst nicht geprüft. (nur die PAS wird auf ihre Änderung geprüft, aber nicht DFMs)
Alles neu erzeugen und dann müßte man den Methodennamen nehmen, sich aus der PAS die zugehörige Parametersignatur raussuchen und mit der Signatur des Ereignisses vergleichen.
(könnte man ja mal erstellen und via OTA reinschmuggeln)


manuelle Lösung selbstgefundener Fehler:
Entferne diese Methode und lasse sie neu erstellen (mit den richtigen Parametern)
z.B. die alte Methode im OI umbenennen, kurz eine andere Methodenvariable selektieren (damit wirklich umbenannt wird), dann zurück und den Methodennamen ganz rauslöschen.
Danach doppelt draufklicken (neu erstellen), und nur noch den Code umkopieren und anpassen.
Wenn die alte Methode nun leer ist (kein Code und keine lokalen Variablen), dann löscht Delphi diese später.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (24. Jan 2012 um 21:05 Uhr)
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Delpi2007->XE2 geänderte Ereignis-Paramerliste

  Alt 24. Jan 2012, 21:02
ok, wenn ich so ein ereignis weiß, ist die Vorgehensweise klar.
aber wie kann ich solche Ereignisse finden, ohne das es später im Programm knallt?
Oder gibt es irgendwo eine Liste, wo einer solche geänderten Ereignisse sammelt?
Ist dir da was bekannt?

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.590 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delpi2007->XE2 geänderte Ereignis-Paramerliste

  Alt 24. Jan 2012, 21:07
Die Fehler zeigt Delphi ja schon an. Im Zweifelsfall das Projekt neu erstellen, dann werden die Units neu kompiliert. Aber da du ja noch keine von XE2 hattest, hätte das eigentlich ohnehin passieren müssen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delpi2007->XE2 geänderte Ereignis-Paramerliste

  Alt 24. Jan 2012, 21:10
'ne Testmöglichkeiten hab ich grade reineditiert, aber nativ ist das in Delphi nicht vorhanden.

Bin selber mal darauf reingefallen, als ich eine Signatur änderte.

Bisher die einzige Lösung ist: Man darf keine Signaturen verändern! (wer das macht, ist fahrlässig blöd oder hinterhältig)
Nur altes Event löschen und unter einem anderem Namen mit der neuen Signazur veröffentlichen ist sicher.


Ich weiß nicht wie das in XE2 ist, aber in XE und 2010 bekommt der Compiler, selbst beim Neuerzeugen nicht immer mit, ob die Signatur paßt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Delpi2007->XE2 geänderte Ereignis-Paramerliste

  Alt 24. Jan 2012, 21:21
Ich weiß nicht wie das in XE2 ist, aber in XE und 2010 bekommt der Compiler, selbst beim Neuerzeugen nicht immer mit, ob die Signatur paßt.
Kann er nicht wissen. Die DFM Liegt als Ressource vor und die nimmt der Compiler, erzeugt Binärdarstellung und packt sie als Ressource in die Exe rein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Delpi2007->XE2 geänderte Ereignis-Paramerliste

  Alt 24. Jan 2012, 21:53
Die Fehler zeigt Delphi ja schon an. Im Zweifelsfall das Projekt neu erstellen, dann werden die Units neu kompiliert. Aber da du ja noch keine von XE2 hattest, hätte das eigentlich ohnehin passieren müssen.
Das habe ich ja.
weder Projekt erstellen noch alle DCU´s löschen führte zu irgendeiner Fehlermeldung. es gibt auch keine Warnungen

Ich kann das auch problemlos reproduziere.
- Delphi2007-> neues Projekt
- HttpRio auf die Form, onbefore und onafterexecute doppelklick und einen Kommentar rein, damit die Procs bleiben
- das Projekt dann in XE2 öffen komplilieren/erzeugen-> geht alles.
- erst, wenn in BeforeExecute was geändert wird, kommt es zur Fehlermeldung

Ich häng mal das Delphi2007 Projekt dran.
Angehängte Dateien
Dateityp: zip Parameterliste.zip (2,4 KB, 5x aufgerufen)

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: Delpi2007->XE2 geänderte Ereignis-Parameterliste

  Alt 25. Jan 2012, 07:02
Kann man kein grep über die DFM laufen lassen, da man die in Frage kommenden Signaturen bzw. Komponenten kennt? Alternativ im Code die richtige Signatur automatisch einbauen? Dann hagelt es beim Kompilieren Fehler, aber das will man ja gerade.

Könnte sogar mit RegEx gehen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delpi2007->XE2 geänderte Ereignis-Parameterliste

  Alt 25. Jan 2012, 09:29
In der DFM stehen keine Signaturen ... nur "Komponentennamen.Methodenname" oder maximal "Komponentennamen.Methodenname".
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Jan 2012 um 09:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Delpi2007->XE2 geänderte Ereignis-Parameterliste

  Alt 25. Jan 2012, 09:31
In der DFM stehen keine Signaturen ... nur "Komponentennamen.Eventname".
Der Parser müsste die DFM durchsuchen und das Eventpropertie festzustellen welche Methoden auf Problematische Events gemappt sind. Dann in die Pas schauen wie die signatur der Methode aussieht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:58 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