Hallo,
Ich habe in meinem Programm mehrere Forms.
Lazarus legt pro Form eine Unit (und noch andere Dateien) an.
Der Übersichtlichkeit halber hätte ich gerne weniger units.
Ich habe nun schon verschiedene Versuche gemacht, den Inhalt der .pas, .lrs und .lfm - Dateien 'zusammenzufahren'.
Leider hat das alles nicht geklappt.
Gibt eine Möglichkeit für mehrere forms nur eine unit zu verwenden?
Gruss
Eberhard
Ist für jede form eine unit erforderlich?
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Ich sehe keinen Grund warum es nicht gehn sollte.
Persönlich sind mir übersichtlichkeitshalber mehr Units zwar wilkommener aber jedem das seine. Was hast du denn probiert ?
Der Designer dürfte damit allerdings nicht zurecht kommen.
Du müsstest die Formulare also bauen und dann zusammenführen.
Persönlich sind mir übersichtlichkeitshalber mehr Units zwar wilkommener aber jedem das seine. Was hast du denn probiert ?
Der Designer dürfte damit allerdings nicht zurecht kommen.
Du müsstest die Formulare also bauen und dann zusammenführen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 65
- Registriert: Sa 27. Okt 2007, 13:27
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Seebergen
Hallo Eb!
Hab ich das jetzt richtig verstanden? Du möchtst alles am liebsten in einer Datei?
Wenn Du mit dem Formulardesigner arbeiten möchtest musst du schon alles schön einzeln lassen, sonst kommt der Formulardesigner durcheinander.
Aber wenn du nur ein FPC-Programm erzeugst dann hast Du alles in einer Datei (ProgrammName.lpr). Die ProgrammName.lpi Datei musst Du schon so lassen wie sie ist, da stehen wichtige Projectinfo's u.s.w. drin. Allerdings musst Du dann, wie Christian immer sagt: "Das Formular zu Fuss erstellen."
Also überleg Dir das nochmal mit alles in einer Datei. Manchmal ist das Chaos auch zu was gut.
Oh Schitt, Christian war schon da.
Hab ich das jetzt richtig verstanden? Du möchtst alles am liebsten in einer Datei?

Wenn Du mit dem Formulardesigner arbeiten möchtest musst du schon alles schön einzeln lassen, sonst kommt der Formulardesigner durcheinander.

Aber wenn du nur ein FPC-Programm erzeugst dann hast Du alles in einer Datei (ProgrammName.lpr). Die ProgrammName.lpi Datei musst Du schon so lassen wie sie ist, da stehen wichtige Projectinfo's u.s.w. drin. Allerdings musst Du dann, wie Christian immer sagt: "Das Formular zu Fuss erstellen."

Also überleg Dir das nochmal mit alles in einer Datei. Manchmal ist das Chaos auch zu was gut.
Oh Schitt, Christian war schon da.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich glaube du könntest auch auf res Dateien zuzurück greifen. Aber den From Desinger kannst du dann trozdem nicht mehr nutzen.
Du kannst mehrer Klassen in einer Unit rein tuen, aber du kannst so viel wie ich weiß nicht mehrer LFM Datein zusammen fügen. Währe aber mal eine tolle erweiterung.
Du kannst mehrer Klassen in einer Unit rein tuen, aber du kannst so viel wie ich weiß nicht mehrer LFM Datein zusammen fügen. Währe aber mal eine tolle erweiterung.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 240
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Hallo Zusammen,
Erstmal vielen Dank für eure Antworten.
Was ich probiert habe war folgendes:
Ich habe den Inhalt von unit2.lfm ans Ende von unit1.lfm reingeschrieben.
dasselbe habe ich mit der lrs-Datei gemacht.
Bei unit1.pas habe ich es folgendermassen gemacht:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
type
TForm2 = class(TForm)
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
Form2: TForm2;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;
initialization
{$I unit1.lrs}
end.
---------
Beim Ausführen kommt dann der Fehler: External SIGSEV
Ich denke ich kann damit leben, dass mein Programm dann eben viele Units hat.
Wenn es eine einfache Lösung gegeben hätte, wäre es für mich übersichtlicher gewesen,
aber wenn nicht, ist es auch OK.
Nochmals danke für eure schnellen Antworten - das ist echt ein tolles Forum hier.
Gruß und ein schönes Wochenende
Eberhard
Erstmal vielen Dank für eure Antworten.
Was ich probiert habe war folgendes:
Ich habe den Inhalt von unit2.lfm ans Ende von unit1.lfm reingeschrieben.
dasselbe habe ich mit der lrs-Datei gemacht.
Bei unit1.pas habe ich es folgendermassen gemacht:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
type
TForm2 = class(TForm)
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
Form2: TForm2;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;
initialization
{$I unit1.lrs}
end.
---------
Beim Ausführen kommt dann der Fehler: External SIGSEV
Ich denke ich kann damit leben, dass mein Programm dann eben viele Units hat.
Wenn es eine einfache Lösung gegeben hätte, wäre es für mich übersichtlicher gewesen,
aber wenn nicht, ist es auch OK.
Nochmals danke für eure schnellen Antworten - das ist echt ein tolles Forum hier.
Gruß und ein schönes Wochenende
Eberhard