[Erledigt]ExeName im Quellcode ändern

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

[Erledigt]ExeName im Quellcode ändern

Beitragvon Frank Ranis » 5. Feb 2019, 15:18 [Erledigt]ExeName im Quellcode ändern

Hallo ,

gibt es eine Möglichkeit den ExeNamen im Quellcode zu ändern ?

Normal wird das ja während der Programmierphase unter ' Complilereinstellung / Ziel-Dateiname ' , z.B. project1 eingetragen und hinten fällt project1.exe raus.

Ich möchte das bedingt per {$define Bedingung} im Quellcode machen.

Code: Alles auswählen
 
Also oben
 
{$define Bedingung_eins}  oder  {$define Bedingung_zwei} vorgeben
 
{$ifdef Bedingung_eins}
-> ExeName soll zu otto.exe werden
{$endif}
 
{$ifdef Bedingung_zwei}
-> ExeName soll zu kalle.exe werden
{$endif}
 

Gibt es irgendwelche Compiler-Schalter ?

Gruß

Frank
Zuletzt geändert von Frank Ranis am 4. Mär 2019, 13:39, insgesamt 1-mal geändert.
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon pluto » 6. Feb 2019, 00:40 Re: ExeName im Quellcode ändern

Im Allgemeinen geht sowas unter Lazarus unter :
Projekte/Projekt Einstellungen/Pfade/Ziel Dateinamen.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6994
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon Frank Ranis » 6. Feb 2019, 10:55 Re: ExeName im Quellcode ändern

Hallo pluto,

pluto hat geschrieben:Im Allgemeinen geht sowas unter Lazarus unter :
Projekte/Projekt Einstellungen/Pfade/Ziel Dateinamen.


Ja das ist schon klar , hatte ich ja oben so beschrieben.

Ich muß wohl etwas mehr ausholen .

Ich habe mir ein Konfigurations-Programm geschrieben .

Hier kann man diverse Einstellungen vornehmen .
1) Voll - oder Demoversion
2) Seriennummern-Zähler
u.u.u.

Diese Tool schreibt dann die Einstellungen in eine Include-Datei 'lizenz.inc' , welche sich im Quellcode-Pfad befindet.
Hier steht dann z.B. oben an erster Stelle.

{$define Voll}

oder

{$define Demo}

Am Ende des Konfigurations-Programm wird dann 'lazbuild' aufgerufen .
Z.B. mit eine TProcess und den Parametern 'C:\lazarus\lazbuild -B Programm.lpr' .

In der Hauptunit wird die 'lizenz.inc' eingebunden.
Je nach Einstellung (Voll oder Demo) werden dann bestimmte Quell-Code-Blöcke mit kompiliert ode ausgeklammert .

So weit so gut , das funktioniert auch alles prima und ich brauch nicht jedesmal die Lazarus-IDE aufmachen .

Wenn alles Durchgelaufen ist fällt hinten Programm.exe raus , egal ob es nun die Demo oder die Vollversion ist.

Derzeit behelfe ich mir damit , das ich dann per File-Rename , die Programm.exe in

Programm_Voll.exe
oder
Programm_Demo.exe

umbenenne .

Finde ich aber nicht so elegant.

Besser fände ich , wenn Lazarus die Ausgabedatei (je nach {$define Voll} oder {$define Demo}) dann halt automatisch passend machen würde .
Also den Compiler / Linker dazu veranlassen den EXE-Filenamen zu ändern.

In der LPI möchte ich nicht rumpatchen , dann kann ich das mit dem File-Rename auch so lassen wie bisher.

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon wp_xyz » 6. Feb 2019, 11:19 Re: ExeName im Quellcode ändern

Versuch's mal mit Build-Modes: "Projekt-Optionen" > '...' neben "Build-Modes". Build-Modes für Voll- und Demo-Version erzeugen. Nacheinander jeden Build-Mode aktivieren und unter "Compiler-Optionen" die gewünschten Parameter eintragen, v.a. auch den Ziel-Dateinamen. Je nachdem welcher Build-Mode aktiv ist, werden die entsprechenden Parameter verwendet. Zum schnellen Umschalten zwischen den Buildmodes vor dem Compilieren gibt es auch ein Icon in der Toolbar (2.Zeile, 3.Icon).
wp_xyz
 
Beiträge: 2924
Registriert: 8. Apr 2011, 09:01

Beitragvon af0815 » 6. Feb 2019, 11:43 Re: ExeName im Quellcode ändern

für den Vorschlag von wp und lazbuild dann den entsprechenden Mode verwenden
Code: Alles auswählen
--build-mode=<project/ide build mode> or --bm=<project/ide build mode>
override the project build mode.

Siehe auch http://wiki.lazarus.freepascal.org/lazbuild

Somit kannst du dir über den Buildmodus dann aussuchen welche Datei wie erzeugt wird, auch Verzeichnisse kann man damit umschalten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3711
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 Socke » 6. Feb 2019, 21:39 Re: ExeName im Quellcode ändern

Du könntest eine zusätzlich FPC-Konfiguration erstellen und dort den Parameter -okalle.exe setzen. Diese Konfigurationsdatei bindest du per @configfile.txt ein (Projektoptionen > Compilereinstellungen > Konfiguration und Ziele). Der entsprechende Parameter sollte in den Projektoptionen dann entsprechend leer sein.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
Lazarusforum e. V.
 
Beiträge: 2618
Registriert: 22. Jul 2008, 19:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon Frank Ranis » 7. Feb 2019, 10:54 Re: ExeName im Quellcode ändern

Hallo ,

ich danke euch , probiere mit den Infos mal herum .

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon aro » 1. Mär 2019, 14:22 Re: ExeName im Quellcode ändern

Hallo,
Kopiere nur Deine Projektdateien in ein anderes temporäres Verzeichnis. Dann öffnest Du das Projekt nennst das Projekt in den Namen den es als Vollversion haben soll und setzt im Project {$define Voll}
Dann verschiebst Du die kopierten Datein zurück in das ursprüngliche Verzeichnis. Du öffnest das alte Projekt und änderst es in den Demonamen und setzt V {$define Demo}

Du hast jetzt im ursprünglichen Verzeichnis 2 fast gleiche Projekte.

Wenn Du das Demoprojekt kompilierst erhälst Du die Demoversion mit dem richtigen Namen.
Wenn Du das Vollversionprojekt kompilierst erhälst Du die Vollversion mit dem richtigen Namen.

Da beide Projekte auf die gleiche Units zugreifen arbeitest Du mit dem gleichen Quelltext und die Programmpflege bleibt übersichtlich.
aro
 
Beiträge: 39
Registriert: 26. Jul 2011, 19:58

Beitragvon aro » 1. Mär 2019, 14:24 Re: ExeName im Quellcode ändern

Hallo,
Kopiere Deine Projektdateien in ein anderes temporäres Verzeichnis. Dann nennst du das Projekt in den Namen um den es als Vollversion haben soll und setzt {$define Voll}
Dann verschiebst Du die kopierten Datein zurück in das ursprüngliche Verzeichnis. Du öffnest das Projekt und änderst es in den Demonamen und setzt {$define Demo}

Wenn Du das Demoprojekt kompilierst erhälst Du die Demoversion mit dem richtigen Namen.
Wenn Du das Vollversionprojekt kompilierst erhälst Du die Vollversion mit dem richtigen Namen.

Da beide Projekte auf die gleiche Units zugreifen arbeitest Du mit dem gleichen Quelltext und die Programmpflege bleibt übersichtlich.
aro
 
Beiträge: 39
Registriert: 26. Jul 2011, 19:58

Beitragvon Frank Ranis » 4. Mär 2019, 13:36 [gelöst] ExeName im Quellcode ändern

Hi ,

so hat ne Weile gedauert , bis ich die Infos von wp_xyz und af0815 verstanden habe.
Ich weis nicht , wie ich das letzte Jahrzehnt ohne diese Möglichkeiten überlebt habe, aber 'wat der bur net kennt dat fret er net' .

Hier nun mal ne Anleitung (für Dummies) , wie ich zum Ziel gekommen bin .
Aufgabe ist :
a) Die Anwendung soll es als Voll- und Demo-Version geben.
b) Die Kompilierung soll sowohl per Lazarus-IDE , als auch ohne IDE durch ein externes Steuerungsprogramm möglich sein .

1) In Lazarus eine neue Anwendung erzeugen .
2) Wir klicken nun den Button für 'Einstellmodus ändern' siehe Bild1 .
Es öffnet sich das Fenster 'Einstellungen für project:project1'
3) Dort ganz oben rechts auf den Button (mit den drei Punkten) drücken , siehe Bild2 .
Es öffnet sich nun der Editor für den Einstellmodus .
Hier dann zwei mal auf den Button '+' klicken , um zwei neue Einträge zu bekommen .
Die Texte für die neuen Zeilen mit 'Voll' und 'Demo' beschriften .
Dann auf die Zeile 'default' gehen und einmal den Button '-' clicken um diese Zeile zu löschen.
Fertige Eingaben siehe Bild3 .
Mit Button 'OK' verlassen.
4) Im Fenster 'Einstellungen für project:project1' wählen wir nun den Menüpunkt 'Benutzerdefinierte Einstellungen' und rechts oben in der Combobox einen unsere beiden neuen Modi aus (Voll oder Demo) .
Dann tragen wir in das Textfeld unter 'Benutzerdefinierte Einstellungen' einmal '-dVoll' oder '-dDemo' ein .
Siehe Bild4 und Bild5.
Dann auf OK , Fenster 'Einstellungen für project:project1' schließen.
Projekt komplett speichern.

Test in der IDE:

Im Quelltext der HauptUnit tragen wir nun die Defines für die Voll- Und Demo-Version ein .

Code: Alles auswählen
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
 
type
 
 { TForm1 }
 
 TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
 private
 
 public
 
 end;
 
// Hier Defines für Voll- und Demo-Version zum Testen eintragen.
// Beim Programmstart soll dann in der Titelzeile 'Demo-Version' oder 'Voll-Version' angezeit werden.
{$ifdef Demo}
const Titel='Demo-Version';
{$endif}
{$ifdef Voll}
const Titel='Voll-Version';
{$endif}
 
var
 Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 caption:=titel; // Titel je nach Define
end;
 
end.                           
 


5) Zum probieren können wir nun die Voll- oder Demoversion per Menü-Popup auswählen (Pfeil neben dem Zahnradbutton 'Einstellmodus ändern' .
Siehe Bild6.
Es sollte dann im Quelltext
const Titel='Demo-Version';
oder
const Titel='Voll-Version';

scharf geschaltet werden .
Und die fertige Exe sollte dann in der Titel-Caption auch 'Voll-Version' oder 'Demo-Version' ausgeben.

Fersteuerungs-Programm:
Wenn man sich ein Konfigurations-Tool bauen will , kann man die Application 'hier project1' auch per Lazbuild kompilieren.
Benutze dazu hier TProcess , das geht ja auch unter LINUX.

Im ZIP das Programm Fernsteuerungs_Programm.lpi .

Code: Alles auswählen
unit unit_fernsteuerung;
 
{$mode objfpc}{$H+}
 
interface
 
uses
 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
 process;
 
type
 
 { TForm1 }
 
 TForm1 = class(TForm)
  Button1: TButton;
  RadioButton1: TRadioButton;
  RadioButton2: TRadioButton;
  procedure Button1Click(Sender: TObject);
 private
 
 public
 
 end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
// Project kompilieren mit lazbuild
procedure TForm1.Button1Click(Sender: TObject);
var prozess:tprocess;
    voll_demo:string;
begin
 if radiobutton1.Checked
  then voll_demo:='voll'
  else voll_demo:='demo';
 
 // Das Project neu copilieren
 // Programmaufruf
 prozess:=tprocess.create(nil);
 
 // prozess.CommandLine:='C:\lazarus\lazbuild -B --build-mode='+voll_demo+' project.lpr';
 
 prozess.Executable:='C:\lazarus\lazbuild.exe'; // Pfad zu Lazbuild
 prozess.Parameters.Add('-B');
 prozess.Parameters.Add('--build-mode='+voll_demo); // Einstellmodus 'voll' oder 'demo'
 prozess.Parameters.Add('project.lpr');
 
 prozess.Execute;
 prozess.free;
end;
 
end.                                           
 


Kompilieren mit Batch-Datei:
Siehe die beiden Bat-Dateien im ZIP im Anhang :

Entweder:
Für die Vollversion mit

start C:\lazarus\lazbuild -B --build-mode=voll project.lpr

oder

start C:\lazarus\lazbuild -B --build-mode=demo project.lpr

Sorry , mir ist es leider nicht gelungen , die Bilder in den Text einzufügen , hab es ne halbe Stunde ohne Erfolg probiert.
Bilder sind im ZIP enthalten.

Gruß

Frank
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon af0815 » 4. Mär 2019, 13:45 Re: [Erledigt]ExeName im Quellcode ändern

Wenn du dir schon eine solche Arbeit machst, wäre die besser im Wiki von Lazarus aufgehoben. :D
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3711
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 fliegermichl » 4. Mär 2019, 13:55 Re: [gelöst] ExeName im Quellcode ändern

Frank Ranis hat geschrieben:Hi ,

Sorry , mir ist es leider nicht gelungen , die Bilder in den Text einzufügen , hab es ne halbe Stunde ohne Erfolg probiert.
Bilder sind im ZIP enthalten.

Gruß

Frank


Bei Dateianhang kann man ein Häkchen setzen "Im Beitrag anzeigen"
Lazarusforum.PNG
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
fliegermichl
Lazarusforum e. V.
 
Beiträge: 344
Registriert: 9. Jun 2011, 09:42

Beitragvon wp_xyz » 4. Mär 2019, 14:42 Re: [Erledigt]ExeName im Quellcode ändern

af0815 hat geschrieben:Wenn du dir schon eine solche Arbeit machst, wäre die besser im Wiki von Lazarus aufgehoben. :D

Das möchte ich unterstützen. Auch im Wiki ist es schwer, bestimmte Beiträge wiederzufinden, aber hier ist es absolut unmöglich, wenn man nicht weiß, dass sich eine solche Anleitung unter den Beiträgen befindet.
wp_xyz
 
Beiträge: 2924
Registriert: 8. Apr 2011, 09:01

Beitragvon Frank Ranis » 4. Mär 2019, 14:52 Re: [Erledigt]ExeName im Quellcode ändern

Hi ,

af0815 hat geschrieben:Wenn du dir schon eine solche Arbeit machst, wäre die besser im Wiki von Lazarus aufgehoben. :D


wp_xyz hat geschrieben:
af0815 hat geschrieben:Wenn du dir schon eine solche Arbeit machst, wäre die besser im Wiki von Lazarus aufgehoben. :D

Das möchte ich unterstützen. Auch im Wiki ist es schwer, bestimmte Beiträge wiederzufinden, aber hier ist es absolut unmöglich, wenn man nicht weiß, dass sich eine solche Anleitung unter den Beiträgen befindet.


Ich habe noch nie nen Wiki-Beitrag gebaut , gibt es dazu auch ne Anleitung , ohne ne Woche Einarbeitung ?

fliegermichl hat geschrieben:
Frank Ranis hat geschrieben:Hi ,

Sorry , mir ist es leider nicht gelungen , die Bilder in den Text einzufügen , hab es ne halbe Stunde ohne Erfolg probiert.
Bilder sind im ZIP enthalten.

Gruß

Frank


Bei Dateianhang kann man ein Häkchen setzen "Im Beitrag anzeigen"
Lazarusforum.PNG


Habe ich gerade versucht .

Zip-Anhang , Bilder 1,2,3 geht auch noch , bei Bild 4 sagt mit der Editor 'max 4 Anhänge erlaubt' , was tun ?

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon af0815 » 4. Mär 2019, 18:59 Re: [Erledigt]ExeName im Quellcode ändern

Es geht nur den Beitrag über mehrere Posts zu führen. Alternativ ein Dokument erstellen, dann ein PDF draus zu machen und hier anzuhängen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3711
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

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Freepascal



Wer ist online?

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

porpoises-institution
accuracy-worried