StatusBar in einem DLL-Formular

Rund um die LCL und andere Komponenten

StatusBar in einem DLL-Formular

Beitragvon zappa2 » 27. Aug 2019, 10:47 StatusBar in einem DLL-Formular

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...
zappa2
 
Beiträge: 43
Registriert: 28. Nov 2013, 10:54

Beitragvon af0815 » 27. Aug 2019, 11:08 Re: StatusBar in einem DLL-Formular

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).
af0815
 
Beiträge: 3764
Registriert: 7. Jan 2007, 11:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon zappa2 » 28. Aug 2019, 08:12 Re: StatusBar in einem DLL-Formular

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!
zappa2
 
Beiträge: 43
Registriert: 28. Nov 2013, 10:54

Beitragvon af0815 » 28. Aug 2019, 08:39 Re: StatusBar in einem DLL-Formular

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).
af0815
 
Beiträge: 3764
Registriert: 7. Jan 2007, 11:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste

porpoises-institution
accuracy-worried