AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal FreePascal Programm Build - dynamisch erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Programm Build - dynamisch erzeugen

Ein Thema von thomasschaf · begonnen am 12. Mär 2012 · letzter Beitrag vom 13. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
thomasschaf
(Gast)

n/a Beiträge
 
#1

Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 16:30
Hallo,

ich möchte während der Laufzeit ein Programm dynamisch erzeugen lassen.

Einfaches Beispiel:
- Programm A enthält ein Edit-Feld (Edit1) und einen Button.
- Beim Klicken auf den Button wird ein ausführbares Programm B erzeugt, dass ein Label hat, dess Caption die von Edit1.Text ist.

Es würde mich sehr freuen, wenn mir jemand helfen könnte, auch wenn es nur ein Ansatz ist.

Übrigens soll das Programm A überall laufen, auch wo keine IDE installiert ist, d.h. es darf nicht eine eigene make.exe von freepascal/delphi/... brauchen.

Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von FaTaLGuiLLoTiNe
FaTaLGuiLLoTiNe

Registriert seit: 3. Jul 2004
Ort: NRW
55 Beiträge
 
Delphi XE Enterprise
 
#2

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 16:43
Übrigens soll das Programm A überall laufen, auch wo keine IDE installiert ist, d.h. es darf nicht eine eigene make.exe von freepascal/delphi/... brauchen.
Um diese Bedingung zu erfüllen müsste dein Programm A entweder Quelltext für eine interpretierte Sprache erzeugen (dann bräuchte das Programm B allerdings zur Laufzeit den ensprechenden Interpreter, um ausgeführt zu werden) oder du müsstest in Programm A einen vollwertigen Compiler einbauen.
Christian
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
  Mit Zitat antworten Zitat
thomasschaf
(Gast)

n/a Beiträge
 
#3

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 16:59
Könntest du dir eine von beiden Möglichkeiten als realisierbar vorstellen ?
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 17:01
Sie sind beide realisierbar. Einfacher wäre es allerdings, einfach den FPC und die LCL-Sourcen mitzuliefern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 17:04
Mal abgesehen davon, daß das sicher realisierbar ist (Delphi selbst ist ja im Grunde auch nichts anderes), stellt sich die Frage, ob man es so realisieren sollte.

Ich gehe zwar davon aus, daß dein Beispiel mit dem Label nur fiktiv ist, aber das könnte man mit einer fertig compilierten EXE, die eine Konfigurationsdatei liest, wesentlich einfacher und schneller hinkriegen.

Beschreib doch einfach mal, was du wirklich machen willst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 17:06
Schuss ins Blaue: Liefere eine Vorlage für die zu erzeugende Exe mit, kopiere sie auf Knopfdruck und bette den String mit Delphi-Referenz durchsuchenUpdateResource ein.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 17:09
Die Frage ist viel eher, was will er damit erreichen. Man kann sein jetztiges Vorhaben auch ganz einfach lösen, indem man einfach Daten/Flags hinten an die Kopie der Exe dran macht und bei jedem Start prüft, ob was da ist und darauf reagiert...
Aber in was für einem Ausmaß der das braucht und wie komplex das dann wird, ist für mich ungewiss!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.587 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 17:36
Eine echte Ressource braucht man dafür gar nicht:
http://www.delphipraxis.net/134855-t...tml#post918244
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
thomasschaf
(Gast)

n/a Beiträge
 
#9

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 17:44
Vielen Dank für die zahlreichen Antworten :)

Einen konkreten Anwendungsfall habe ich nicht, dies war eher eine theoretische Frage.
Meistens suche ich mir zuerst die Lösung, dann das Problem, es wird sicherlich eines kommen, in dem ich dies anwenden kann.

Die Idee von uligerhardt halte ich für sehr treffend.
Leider ist UpdateResource neu für mich, daher muss ich mich damit zunächst beschäftigen.
Übrigens müsste man gar keine Kopie von Programm B mitliefern, da ich Programm B als Ressource in mein Programm A einbauen kann. Beim Button-Klick wird die Ressource extrahiert und dann im Programm B mit UpdateRessource der String / die Strings ersetzt.
Desweiteren hoffe ich, dass ich aus dem String ABC auch wxyz machen kann, also unterschiedliche Zeichenlänge, was mit einem "normalen" Hexeditor nicht geht :(

Gruß,
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.587 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Programm Build - dynamisch erzeugen

  Alt 12. Mär 2012, 17:56
Desweiteren hoffe ich, dass ich aus dem String ABC auch wxyz machen kann, also unterschiedliche Zeichenlänge, was mit einem "normalen" Hexeditor nicht geht
Schau dir einfach meinen Link an, da passiert genau das.
Du kannst in der Demo in einem Memo Text eingeben und anhängen, beim nächsten Start ist der dann beim Start im Memo.

Da du mit Lazarus arbeitest, wäre UpdateResource wohl weniger sinnvoll, da es eine Windows API Funktion ist. Und Lazarus ist ja vor allem für Cross Plattform sinnvoll, was dann damit nicht mehr ginge. Meine Lösung macht das selbst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz