Fensterprogramm ohne Ressourcen

Rund um die LCL und andere Komponenten
Antworten
Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Fensterprogramm ohne Ressourcen

Beitrag von Martin V »

Ich habe ein Fensterprogramm geschrieben, das den Resourceneditor nicht verwendet. Die wenigen Fenster erzeuge ich händisch über den Pascal-Programmcode. (Es ist eine Portierung von einem anderen Delphi-Dialekt.) Ich habe, das war vielleicht ein Fehler, mit einem LPI eines Kommandozeilenprogramms gestartet. Ich verwende Win32. Folgendes habe ich schon angefügt, damit es ein Fensterprogramm wird:

- LCL bei Projektinspektor eintragen
- "uses Interfaces" unter "program" im Haupt-Quelltext
- Haken bei GUI Anwendung unter Projekteinstellungen - Compiler - Konfiguration
- mit "Application.Initialize" im Hauptprogrammblock beginnen.

Trotzdem erhalte ich die Laufzeit-Fehlermeldung: Error 1407 Fensterklasse nicht gefunden.
Was muss ich noch ergänzen?

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Fensterprogramm ohne Ressourcen

Beitrag von PascalDragon »

Wenn du ein Formular ohne Verwendung einer Ressource erzeugen möchtest, dann musst du YourForm.CreateNew als Konstruktor verwenden. Du darfst dann also auch nicht Application.CreateForm nutzen.
FPC Compiler Entwickler

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: Fensterprogramm ohne Reshsourcen

Beitrag von Martin V »

Ich habe aber schon Programme geschrieben, bei denen die Mainform selbst erzeugt ist und dann weitere Forms über Resourceneditor genutzt werden. Dabei habe ich im Hauptprogramm nur geschrieben:

Application.Initialize;
Application.CreateForm (TypeOfMyMainForm, MyMainForm)

Das hat immer funktioniert.

Ich werde natürlich auch über File - New - Project - Application eine neue LCL Anwendung starten können, und dann die Resourcenform wieder wegklicken und die Settings entsprechend anpassen, aber das muss ja auch anders gehen.

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: Fensterprogramm ohne Ressourcen

Beitrag von Martin V »

Ich habe jetzt einfach eine Dummy-Form erzeugt (Datei - Neues Formular), obwohl ich eigentlich alle Forms händisch via Pas-Datei erzeuge. Jetzt geht es. Vorher konnte er nicht einmal eine Messagebox erzeugen, ohne dass der Fehler auftritt.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Fensterprogramm ohne Ressourcen

Beitrag von Socke »

Hast du in der lpr-Datei noch die Zeile RequireDerivedFormResource := True; stehen? Die Zeile wird bei neuen Lazarus-Projekten automatisch eingefügt.
Ggf. kannst du die Variable einfach zu Programmstart auf "False" setzen.

Andererseits sollte auch die von PascalDragon vorgeschlagene Lösung genau so funktionieren.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten