Delphi-PRAXiS
Seite 6 von 6   « Erste     456   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi .exe datei im Programm erstellen (https://www.delphipraxis.net/145631-exe-datei-im-programm-erstellen.html)

implementation 5. Jan 2010 19:10

Re: .exe datei im Programm erstellen
 
Oh ja, du machst etwas grundlegendes verkehrt.
Geh erst einmal von einem ganz einfachen Konsolen-Programm aus:
Delphi-Quellcode:
program Echo;

uses crt;

var
  s: string;

begin
  ReadLn(s);
  WriteLn(s);
  Delay(2000);
end.
Auf Formularanwendungen kannst du später noch zurückkommen.
Erst einmal müssen sich solche einfachen Progs kompilieren lassen.

[EDIT]
Das war Programm.pas/Programm.dpr/Programm.lpr/Programm.pp/Programm.p oder wie auch immer du die Datei nennst.
Das aufrufende Programm kann natürlich auch eine Formularanwendung sein.

himitsu 5. Jan 2010 19:12

Re: .exe datei im Programm erstellen
 
dann versuche es mal mit dem Projekt und .dpr statt dem .pas in den Parametern

In Delphi machst duauch aus der DPR die EXE und nicht aus einzelnen PAS.

implementation 5. Jan 2010 19:14

Re: .exe datei im Programm erstellen
 
Die Dateiendung ist egal. Hauptsache es handelt sich um ein Programm und KEINE Unit.
Aus Units macht FPC bloß Objektdateien und PPU's (ähnlich wie DCU's).

-Phantom- 5. Jan 2010 19:26

Re: .exe datei im Programm erstellen
 
Geht alles nicht...
@implementation
Kannste mir mal sagen wie du vor gehst?

implementation 5. Jan 2010 19:33

Re: .exe datei im Programm erstellen
 
1. Schritt:
Du erstellst C:\Programm.pas (dafür kannst du Delphi benutzen, oder einen einfachen Texteditor oder Notepad++ oder was du willst).
Als einfache Konsolenanwendung. Ganz ohne Forms.
Mit folgendem Inhalt:
Delphi-Quellcode:
program Programm;

uses crt;

var s: string;

begin
  ReadLn(s);
  WriteLn(s);
  Delay(2000);
end.
2. Schritt:
Du erstellst ein normales Delphi-Programm.
Darin rufst du mit ShellExecute den FPC auf (Parameter: "C:\Programm.pas").

-Phantom- 5. Jan 2010 19:40

Re: .exe datei im Programm erstellen
 
Oke geht ... geht das nun auch mit Formularen? Nein!
wie mache ich das nun mit Formularen?

implementation 5. Jan 2010 19:48

Re: .exe datei im Programm erstellen
 
Wenn die Zielanwendung nun Formulare enthalten soll, dann gibt es 3 Möglichkeiten:
  • Du kannst in das Zielprogramm die LCL einbinden.
  • Du kannst dich mit Luckie's Win32API-Tutorials vertraut machen und die Zielprogramme nonVCL schreiben.
  • Du kannst dich mit Luckie's Win32API-Tutorials vertraut machen und deinen eigenen VCL-Ersatz schreiben.

[EDIT]
Theoretisch könntest du auch meine NWL benutzen, aber die befindet sich noch im Pre-Alpha-Stadium.

-Phantom- 5. Jan 2010 19:50

Re: .exe datei im Programm erstellen
 
Zitat:

Du kannst in das Zielprogramm die LCL einbinden.
Schon und gut aber wie?

implementation 5. Jan 2010 19:52

Re: .exe datei im Programm erstellen
 
1. Du besorgst dir die LCL.
2. Du bindest die Units ins Zielprogramm ein.
3. Du erstellst im Zielprogramm dynamisch die Forms.

implementation 6. Jan 2010 17:39

Re: .exe datei im Programm erstellen
 
Ich habe mal ein Testprojekt für die LCL geschrieben.
Es gibt leider ein paar Fehler beim Linken:
Code:
Free Pascal Compiler version 2.2.4 [2009/04/10] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Win32 for i386
Compiling C:\Users\Marvin\Desktop\lcltest.pas
Linking C:\Users\Marvin\Desktop\lcltest.exe
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterCustomImageList
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterMenuItem
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterMenu
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterMainMenu
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterPopupMenu
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterDragImageList
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterControl
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterWinControl
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterGraphicControl
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterCustomControl
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterScrollingWinControl
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterScrollBox
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterCustomFrame
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterCustomForm
lcltest.pas(13,1) Error: Undefined symbol: WSRegisterHintWindow
lcltest.pas(13,1) Fatal: There were 15 errors compiling module, stopping
Fatal: Compilation aborted
Weiß jemand was darüber?
Sonst muss Phantom doch die NWL nehmen :mrgreen: *eigenwerbungmach*


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 6 von 6   « Erste     456   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz