Einzelnen Beitrag anzeigen

alf.krause

Registriert seit: 23. Apr 2007
21 Beiträge
 
Delphi 12 Athens
 
#1

Ungültiges Fenster Handle - seit 10.2. Tokyo

  Alt 9. Aug 2017, 20: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