AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Ungültiges Fenster Handle - seit 10.2. Tokyo
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültiges Fenster Handle - seit 10.2. Tokyo

Ein Thema von alf.krause · begonnen am 9. Aug 2017 · letzter Beitrag vom 10. Aug 2017
Antwort Antwort
Seite 1 von 2  1 2      
alf.krause

Registriert seit: 23. Apr 2007
17 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 19:07
Hallo,

ich habe ein Form mit mehrer Constructoren und einer funzt nicht seit der Umstellung auf 10.2

Code:

TMessageForm = class(TForm)
...

    constructor Create(AOwner: TComponent); overload;
    constructor Create(AOwner: TComponent; FormType: TKontaktType;ADRCODE: String; AutoTextBaustein : String =''); overload;
    constructor Create(AOwner: TComponent; ADRCODE: String;Vorgangsnummer: Integer; AutoTextBaustein : String =''); overload;
    constructor Create(AOwner: TComponent; Vorgangsnummer: Integer;ADRCODE: String; AutoTextBaustein : String =''); overload;
    constructor Create(AOwner: TComponent; FormType: TKontaktType;ADRCODE: String; KontaktNr: Integer; AutoTextBaustein : String =''); overload;
    constructor Create(AOwner: TComponent; FormType: TKontaktType;Vorgangsnummer: Integer; ADRCODE: String; KontaktNr: Integer;AReport: TppReport; AutoTextBaustein : String =''); overload;
    constructor CreateBuchungMessage(AOwner: TComponent; ADRCODE: String;Vorgangsnummer: Integer; Documentype: TDocumentType; AutoTextBaustein :String=''); virtual;
    constructor CreateHotelAvisVorgang(AOwner: TComponent;Vorgangsnummer: Integer; HotelCode: String; VPartnerCode: String; DateFrom, DateTo: TDateTime; AvisAdr: Boolean; PrintOption: Boolean;PrintZusatz: Boolean;AutoTextBaustein : String = ''); virtual;
    constructor CreateTeilnehmerListe(AOwner: TComponent;Vorgangsnummer: Integer; HotelCode: String; AutoTextBaustein : String ='');
    constructor CreateBusPreisAnfrage(AOwner: TComponent; Vorgangsnummer: Integer; ADRCODE: String;OverWriteAdr : Boolean; MultiBusAnfrage: Boolean; AutoTextBaustein : String ='');
    constructor CreateMailKundeWv(AOwner: TComponent; MailText: String;KUNCODE: String; AutoTextBaustein : String ='';Vorgangsnummer: Integer = 0);
    procedure SmtpClientMessageDataSent(Sender: TObject; Size: Integer);
Der constructor CreateHotelAvisVorgang stürtzt beim inherited ab mit der Meldung ungültiges Fensterhandle. Der constructor CreateTeilnehmerListe geht, ich sehe aber da keinen Unterschied,außer in den Parametern.


Code:
///////////////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////////////
constructor TMessageForm.CreateHotelAvisVorgang(AOwner: TComponent;
  Vorgangsnummer: Integer; HotelCode: String; VPartnerCode: String;
  DateFrom, DateTo: TDateTime; AvisAdr: Boolean; PrintOption: Boolean;
  PrintZusatz: Boolean;AutoTextBaustein : String = '');
Begin
  inherited Create(AOwner);
  Font := Application.MainForm.Font;
  FCreateFrom := fromBuchung;
  FAdrCode := HotelCode;
  FVPartnerCode := VPartnerCode;
  FDateFrom := DateFrom;
  FDateTo := DateTo;
  FAvisAdr := AvisAdr;
  FPrintOption := PrintOption;
  FPrintZusatz := PrintZusatz;
  FVorgangsnummer := Vorgangsnummer;
  FKontaktType := kontaktAvisVorgang;
  FHotelAvisVorgang := true;
  FOverWriteAdr := false;
  FMultibusAnfrage := false;
  FAutoTextBaustein := AutoTextBaustein;
end;

///////////////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////////////
constructor TMessageForm.CreateTeilnehmerListe(AOwner: TComponent;
  Vorgangsnummer: Integer; HotelCode: String; AutoTextBaustein : String ='');
begin
  inherited Create(AOwner);
  Font := Application.MainForm.Font;
  FCreateFrom := fromBuchung;
  FAdrCode := HotelCode;
  FVPartnerCode := '';
  FVorgangsnummer := Vorgangsnummer;
  FKontaktType := kontaktTeilnehmerliste;
  FHotelAvisVorgang := false;
  FTeilnehmerListe := true;
  FOverWriteAdr := false;
  FMultibusAnfrage := false;
  FAutoTextBaustein := AutoTextBaustein;
end;
Aufruf:
Code:
     MessageForm:= TMessageForm.CreateHotelAvisVorgang(Application,FVorgangsnummer,
                                                       HotelAvisData.sqlHotels.FieldByName('HOTEL').AsString,
                                                       HotelAvisData.sqlHotels.FieldByName('VPARTNERCODE').AsString,
                                                       sqlVorgangHotel.FieldByName('DATUMVON').AsDateTime,
                                                       sqlVorgangHotel.FieldByName('DATUMBIS').AsDateTime,
                                                       Boolean(HotelAvisData.sqlHotels.FieldByName('AVISIERUNGADR').AsInteger),
                                                       Option, true);
Alle Änderungen im folgenden FormCreate habe ich schon mal auskommentiert, ohne Erfolg. Ausserdem verabschiedet er sich ja schon beim inherited.

Hat jemand einen Tipp ?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#2

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 19:16
Wie ist die Einstellung von OldCreateOrder bei dem Form? Bei true wird das FormCreate bereits im inherited Create aufgerufen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
alf.krause

Registriert seit: 23. Apr 2007
17 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 19:20
Sorry, ich vergaß - die Änderung der Einstellung OldCreate order bringt nichts (steht jetzt auf false) - der Fehler tritt immer auf.

Ich habe spaßenshalber FormCreate mal so geändert -ohne Erfolg:

Code:
rocedure TMessageForm.FormCreate(Sender: TObject);
begin
 PostMessage(Handle, WM_MAILFORMSETUP,0,0);
end;
Damit sollte es ja alles erstmalda sein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 19:20
Ein Unterschied liegt erstmal im virtual , beim CreateHotelAvisVorgang.

* Wie sieht die Ableitung aus? (existiert ein override)
* Wie werden die Instanzen erstellt? (da, wo das Create aufgerufen wird)
* ...


Im Inherited wird eventuell das OnCreate aufgerufen (OldCreateorder=True) oder es wird erst im AfterConstruction aufgerufen.
Und dann wird im Inherited die DFM geladen, alle auf der Form liegenden Komponenten erstellt und deren Properties (siehe DFM) zugewiesen ... Debug-DCUs aktivieren und eventuell mal schauen wo es da genau knallt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Aug 2017 um 19:23 Uhr)
  Mit Zitat antworten Zitat
alf.krause

Registriert seit: 23. Apr 2007
17 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 20:13
Sodele das virtual ist raus, gehört auch da wohl nicht, ändert aber an dem Problem nichts.Danke trotzdem schon mal für den Hinweis!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 20:25
Daß bei dem inherited Create nicht das erste Create overload aufgerufen wird ist so beabsichtigt? Mal abgesehen davon, daß das eventuell als override deklariert werden sollte.

constructor Create(AOwner: TComponent); overload;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
alf.krause

Registriert seit: 23. Apr 2007
17 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 20:26
Ja - Danke! GGf.wäre es sinnvoll alle construcoren umzubenennen.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#8

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 20:27
Was sagt denn nun der Debugger?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
alf.krause

Registriert seit: 23. Apr 2007
17 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 20:36
Der Debugger bleibt erst hier stehen

Code:
procedure TWinControl.MainWndProc(var Message: TMessage);
begin
  try
    try
      WindowProc(Message);
    finally
      FreeDeviceContexts;
      FreeMemoryContexts;
    end;
  except
    [B]Application.HandleException(Self)[/B];
  end;
end;
dann hier

Code:
procedure RaiseLastOSError(LastError: Integer; const AdditionalInfo: string); overload;
var
  Error: EOSError;
begin
  if LastError <> 0 then
    Error := EOSError.CreateResFmt(@SOSError, [LastError, SysErrorMessage(LastError), AdditionalInfo])
  else
    Error := EOSError.CreateRes(@SUnkOSError);
  Error.ErrorCode := LastError;
  raise Error;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#10

AW: Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 20:40
Jetzt müsste man nur wissen, welche Message da behandelt werden soll und wer die wo los schickt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 20:53 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