Ist für jede form eine unit erforderlich?

Für Fragen rund um die Ide und zum Debugger
Antworten
Eb
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

Ist für jede form eine unit erforderlich?

Beitrag von Eb »

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

Christian
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:

Beitrag von Christian »

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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

ulhau
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

Beitrag von ulhau »

Hallo Eb!

Hab ich das jetzt richtig verstanden? Du möchtst alles am liebsten in einer Datei? :shock:

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

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." :roll:

Also überleg Dir das nochmal mit alles in einer Datei. Manchmal ist das Chaos auch zu was gut.

Oh Schitt, Christian war schon da.

pluto
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)

Beitrag von pluto »

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.
MFG
Michael Springwald

Christian
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:

Beitrag von Christian »

Das mi den res Dateien ist quatsch. Als Windows resourcen wären nur Dialoge möglich, auf anderen Plattformen werden erst gar keine resoucen unterstützt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Eb
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

Beitrag von Eb »

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

Antworten