[erledigt]bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
-
- Beiträge: 48
- Registriert: Sa 26. Dez 2020, 13:22
[erledigt]bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Hallo,
beschäftige mich gerade mit Simple Direkt Layer - SDL2 für Pascal.
damit kann man Fenster erzeugen und darin beliebige grafische Inhalte anzeigen.
Also eine grafische Anwendung ohne die LCL-Bibliothek.
Läuft soweit gut, störend ist nur das Lazarus/FPC ev. glaubt das sei eine Konsolenanwendung
und zu meinem Programm immer auch parallel die Windows Konsole (cmd.exe) startet.
Kann man das ändern ?
beschäftige mich gerade mit Simple Direkt Layer - SDL2 für Pascal.
damit kann man Fenster erzeugen und darin beliebige grafische Inhalte anzeigen.
Also eine grafische Anwendung ohne die LCL-Bibliothek.
Läuft soweit gut, störend ist nur das Lazarus/FPC ev. glaubt das sei eine Konsolenanwendung
und zu meinem Programm immer auch parallel die Windows Konsole (cmd.exe) startet.
Kann man das ändern ?
Zuletzt geändert von oliver2104 am Mo 29. Jul 2024, 12:44, insgesamt 1-mal geändert.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1629
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
schau mal ob in den Projekt Einstellungen unter Konfiguration und Ziele der Hacken bei "Win32 gui application" gesetzt ist ..
--
Just try it
Just try it
-
- Beiträge: 6958
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Wen dies nicht hilft, kann es noch folgendes sein,schau mal ob in den Projekt Einstellungen unter Konfiguration und Ziele der Hacken bei "Win32 gui application" gesetzt ist ..
Start -> Startparameter -> Startprogramm verwenden.
Für die Entwicklungszeit mit SDL würde ich die Konsole sein lassen. Da kann man sehr einfach mit Writeln Werte ausgeben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 48
- Registriert: Sa 26. Dez 2020, 13:22
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Danke für die Antworten !
Aber jetzt kommt gleich das nächste Problem: ich kann die Projekteinstellungen überhaupt nicht ändern.
bei jeder noch so kleinen Änderung der Projekteinstellungen kommt nach klick auf OK die Fehlermeldung:
hab deswegen alles deinstalliert und die aktuelle Windows Version 3.4 gestern neu installiert.
Dieses Problem bleibt aber. Wo werden die Projekteinstellungen eigentlich gespeichert ?
Da die projektspezifisch sind, müsste sich das eigentlich im Source Verzeichnis befinden.
Genau das wird's wahrscheinlich sein, bei mir ist der Haken nicht gesetzt.schau mal ob in den Projekt Einstellungen unter Konfiguration und Ziele der Hacken bei "Win32 gui application" gesetzt ist ..
Aber jetzt kommt gleich das nächste Problem: ich kann die Projekteinstellungen überhaupt nicht ändern.
bei jeder noch so kleinen Änderung der Projekteinstellungen kommt nach klick auf OK die Fehlermeldung:
Ehrlicherweise muss ich sagen, dieses Problem hatte ich schon bei meiner alten Lazarus Version,Fehler im "Unit-Ausgabeverzeichnis":
Endlosschleife in Makros
Wert: $(ProjOutDir)
hab deswegen alles deinstalliert und die aktuelle Windows Version 3.4 gestern neu installiert.
Dieses Problem bleibt aber. Wo werden die Projekteinstellungen eigentlich gespeichert ?
Da die projektspezifisch sind, müsste sich das eigentlich im Source Verzeichnis befinden.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1629
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Öffne die .lpi Datei mit einem Texteditor und suche nach den Compiler Optionen dort trägst du dann folgendes ein:
dann sollte der Haken dran sein..
Code: Alles auswählen
<CompilerOptions>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
--
Just try it
Just try it
-
- Beiträge: 6958
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Was passiert beim erstellen eines neuen Projektes ?Aber jetzt kommt gleich das nächste Problem: ich kann die Projekteinstellungen überhaupt nicht ändern.
bei jeder noch so kleinen Änderung der Projekteinstellungen kommt nach klick auf OK die Fehlermeldung:
Das gleiche Problem ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 48
- Registriert: Sa 26. Dez 2020, 13:22
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Vielen Dank, ihr habt mir schon weiter geholfen !
mein SDL-Programm besteht nur aus einer Datei -> sdl_test.pas
(braucht natürlich auch die SDL Runtime *.dll's und den Pfad zu den SDL Units)
In der Kommandozeile lässt sich das gut kompilieren ( option -WG macht das gleiche wie das Häkchen setzen) Nacher hab ich ein sdl_test.exe, welches als grafische Anwendung startet.
Unter Lazarus wär das natürlich bequemer, keine Kommandozeile, einfach auf Starten klicken.
Allerdings benötigt und erstellt Lazarus immer auch die Projektdateien *.lpi und *lps
Die dürfen aber nicht den gleichen Namen wie das eigentliche Programm haben.
z.b. sdl_test.lpi, sdl_test.lps und sdl_test.pas vertragen sich nicht.
Dann kommts anscheinend zu dieser Endlosschleife in Makros, wenn man etwas in den Compilereinstellungen ändern will.
Eines ist mir aber immer noch unklar, wenn ich ein Verzeichnis habe, das z.b. folgende Dateien enthält:
Was muss ich machen um mein Programm unter Lazarus zu bearbeiten ?
( Also nicht mit irgendeinem Editor und einer Kommandozeile)
mein SDL-Programm besteht nur aus einer Datei -> sdl_test.pas
(braucht natürlich auch die SDL Runtime *.dll's und den Pfad zu den SDL Units)
In der Kommandozeile lässt sich das gut kompilieren ( option -WG macht das gleiche wie das Häkchen setzen)
Code: Alles auswählen
> fpc -WG sdl_test.pas
Unter Lazarus wär das natürlich bequemer, keine Kommandozeile, einfach auf Starten klicken.
Allerdings benötigt und erstellt Lazarus immer auch die Projektdateien *.lpi und *lps
Die dürfen aber nicht den gleichen Namen wie das eigentliche Programm haben.
z.b. sdl_test.lpi, sdl_test.lps und sdl_test.pas vertragen sich nicht.
Dann kommts anscheinend zu dieser Endlosschleife in Makros, wenn man etwas in den Compilereinstellungen ändern will.
Eines ist mir aber immer noch unklar, wenn ich ein Verzeichnis habe, das z.b. folgende Dateien enthält:
Code: Alles auswählen
>dir
SDL2.dll
SDL2_image.dll
SDL2_ttf.dll
sdl_test.pas
( Also nicht mit irgendeinem Editor und einer Kommandozeile)
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Wo hast du das denn her? Jedes Lazarus-Projekt funktioniert mir diesen Dateien. Irgendetwas ist bei dir ober-faul...oliver2104 hat geschrieben: Sa 27. Jul 2024, 15:00 Allerdings benötigt und erstellt Lazarus immer auch die Projektdateien *.lpi und *lps
Die dürfen aber nicht den gleichen Namen wie das eigentliche Programm haben.
z.b. sdl_test.lpi, sdl_test.lps und sdl_test.pas vertragen sich nicht.
Dann kommts anscheinend zu dieser Endlosschleife in Makros, wenn man etwas in den Compilereinstellungen ändern will.
Zunächst lösche sdl_test.lpi, sdl_test.lps, sdl_test.res in deinem Projekt-Order, um Konflikten mit früheren Fehlversuchen aus dem Weg zu gehen. Wenn sdl_test.pas in der ersten Zeile das Schlüsselwort "program" enthält, wird es beim Öffnen in Lazarus als Programm-Datei erkannt. Da du die Datei aber auch nur "einfach so" öffnen könntest, fragt dich Lazarus , ob dafür ein Projekt (die .lpi-Datei) erstellt werden soll und präsentiert die übliche Liste der möglichen Projekt-Vorlagen. Bei einem Kommandozeilen-Programm nehme ich immer unter "Anwendungen" die Einstellung "Einfaches Programm" (damit ist auch das Häcken bei "Win32-GUI-Anwendung in den Projekt-Optionen nicht gesetzt). Das muss gehen, ich habe das schon hunderte mal gemacht...oliver2104 hat geschrieben: Sa 27. Jul 2024, 15:00 Eines ist mir aber immer noch unklar, wenn ich ein Verzeichnis habe, das z.b. folgende Dateien enthält:Was muss ich machen um mein Programm unter Lazarus zu bearbeiten ?Code: Alles auswählen
>dir SDL2.dll SDL2_image.dll SDL2_ttf.dll sdl_test.pas
( Also nicht mit irgendeinem Editor und einer Kommandozeile)
-
- Beiträge: 48
- Registriert: Sa 26. Dez 2020, 13:22
Re: bei Programmstart wird immer auch ein Konsolenfenster gleichzeitig geöffnet
Ich glaub jetzt funktioniert es.
Mich hat verwirrt, das ein Lazarus Projekt immer so viele Dateien anlegt, darunter auch eine project.lpr. Normalerweise ist das eine eher kleine Datei, und das eigentliche Programm befindet sich z.b in unit1.pas.
Bei meinem Einfachen/Konsolen Projekt hab ich jetzt den ganzen Code gleich in die sdl_test.lpr geschrieben und die sdl_test.pas gelöscht.
Läuft jetzt einwandfrei.
(zu dieser Endlosschleife: das Problem ist anscheinend wirklich nicht sdl_test.lpi oder sdl_test.lps, sonder eine sdl_test.lpr die in ihrer Uses-Deklaration auf eine Unit sdl_test.pas verweist)
Wie auch immer, Danke euch allen für die Hilfe !
Mich hat verwirrt, das ein Lazarus Projekt immer so viele Dateien anlegt, darunter auch eine project.lpr. Normalerweise ist das eine eher kleine Datei, und das eigentliche Programm befindet sich z.b in unit1.pas.
Bei meinem Einfachen/Konsolen Projekt hab ich jetzt den ganzen Code gleich in die sdl_test.lpr geschrieben und die sdl_test.pas gelöscht.
Läuft jetzt einwandfrei.
(zu dieser Endlosschleife: das Problem ist anscheinend wirklich nicht sdl_test.lpi oder sdl_test.lps, sonder eine sdl_test.lpr die in ihrer Uses-Deklaration auf eine Unit sdl_test.pas verweist)
Wie auch immer, Danke euch allen für die Hilfe !