StatusBar in einem DLL-Formular

Rund um die LCL und andere Komponenten
Antworten
zappa2
Beiträge: 43
Registriert: Do 28. Nov 2013, 09:54

StatusBar in einem DLL-Formular

Beitrag von zappa2 »

Schon wieder muss ich mich mit einem sehr eigenartigen Verhalten rumschlagen, das ich für einen Fehler halte:

Ich setze auf ein in einer DLL enthaltenem Formular eine StatusBar. Dadurch wird das Anzeigen dieses Formulares mit folgender Fehlermeldung abgebrochen:

Failed to create win32 control, error: 1406:
Untergeordnetes Fenster kann nicht auf der obersten Ebene erstellt werden.


Das ist reproduzierbar: StatusBar wieder runter => Formular funzt, StatusBar wieder drauf => Formular crasht.
Die Fehlerbeschreibung hilft mir nicht wirklich weiter, der Debugger scheint mir hier ebenfalls nicht hilfreich.
Abgesehen davon ist das wohl eine Meldung vom Betriebssystem.

In einer normalen Exe ist mir sowas noch nicht passiert.

Hat jemand eine Idee, was ich offensichtlich falsch mache? :? Eine StatusBar ist ja nun kein Exot unter den Comps...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: StatusBar in einem DLL-Formular

Beitrag von af0815 »

System:

Code: Alles auswählen

1406 (0x57E)
 
Cannot create a top-level child window.

Quelle: https://docs.microsoft.com/en-us/window ... 1300-1699-

Das ist Windows, das will die Komponente nicht auf dem Level :-) Man findet das Problem auch in anderen Sprachen unter Windows.

BTW: Ich habe nach einigen Versuchen mit den Forms in DLL wieder aufgehört, da es mir zu wenig stabil funktioniert hatte. Das ist ein absoluter Fremdkörper (gefühlt) in Lazarus. Wnn die App größer wurde, Leisten und Frames dazugekommen sind, war Feierabend. Ich bin dann auf Programmlaunching umgestiegen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

zappa2
Beiträge: 43
Registriert: Do 28. Nov 2013, 09:54

Re: StatusBar in einem DLL-Formular

Beitrag von zappa2 »

Wie immer erst mal vielen Dank für Deine schnelle Antwort!

Das klingt ja sehr deprimierend:

Ich habe nach einigen Versuchen mit den Forms in DLL wieder aufgehört, da es mir zu wenig stabil funktioniert hatte. Das ist ein absoluter Fremdkörper (gefühlt) in Lazarus.


Vor ziemlich genau 20 Jahren war ich an einem größeren Delphi5-Projekt beteiligt, wo bis auf ein kleines Zentralformular alle anderen aus diversen DLLs kamen. Man hatte damit gleich irgendwelche Lizenzierungen abgehakt. Es hatte Null Probleme gegeben von wegen Formular in DLL.

Ist das jetzt der Preis für die Multiplatform-Fähigkeit von Lazarus? :( Sehr frustrierend!

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: StatusBar in einem DLL-Formular

Beitrag von af0815 »

zappa2 hat geschrieben:Ist das jetzt der Preis für die Multiplatform-Fähigkeit von Lazarus? :( Sehr frustrierend!

Nein, sondern es wird nicht von vielen - besonders Coreentwicklern - verwendet. Allerdings hast du recht, wenn es mit multiwidgetset (nicht unbedingt Plattform) schwieriger wird. BTW es gibt auch Ownerdrawn, QT und GTK unter Windows :shock: Also auch unter Windows sind mehrere Widgetsets möglich.

Das Problem was du hast, ist aber nicht Lazarusspetzifisch und nicht einmal FormInDLL spezifisch, das haben C und C# Programmierer genauso. Siehe auch den Beiträgen die man mit Google findet.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten