MainForm zur Laufzeit ändern

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: MainForm zur Laufzeit ändern

Beitrag von charlytango »

ich hab mir dein Programm heruntergeladen und hab versucht es anzusehen.

Leider geht es nicht wirklich, denn 4 Dateien fehlen im zip. Du scheinst das Projekt auf unterschiedliche Pfade verteilt zu haben und hast nur einen Teil davon im ZIP geschickt.

Genau für solche Fälle hat Lazarus eine Export-Routine (Menü: Project - Publish Project) die ein Projekt samt allen nötigen Dateien (die über die Lazarus Kontrolle hat) exportiert. ggfs bleiben INI-Dateien oder Datenbankdateien über und müssen in dem Export-Dialog per Dateiendeung hinzugefügt werden. Dann hast du schonmal ein Projekt das beim Export auch kompilierbar ist.

Es läßt sich aber auch aus dem LPR File herauslesen dass du deine drei Formulare automatisch erzeugen läßt und in der LPR-Datei noch zusätzlicher Code steht. Hier wird nach Dateien gesucht, aber nicht darauf reagiert wenn keine gefunden werden. Da Dateien fehlen kann ich nciht nachsehen ob das anderswo passiert.

Vermutlich ist das Geschmackssache, aber ich versuche die LPR-Datei so schlank wie möglich (und damit so übersichtlich wie möglich zu halten)
IMHO

In kleineren Projekten sieht das in etwa so aus

Code: Alles auswählen

begin
  Application.Scaled:=True;
  RequireDerivedFormResource := True;
  Application.Initialize;
  
  //Prozedur in der alles was  fürs Programm nötig ist initialisiert wird
  // Public Variablen, DB-Anbindungen, Logging, etc etc.
  MyGlobalInit;  

  //nur ein Hauptformular wird automatisch erzeugt
  //alles andere geht von dem Hauptformular aus
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
Dann hast du die Kontrolle darüber wann welches Formular wie erzeugt wird.

Unklar ist mir auch warum du die Buttons und anderen Controls als Schreib-Fleißaufgabe (QR4OBS) im Source erstellst? Dazu hat Lazarus eine guten Designer. Aber auch wieder Geschmackssache.

Soll nur ein Tipp sein wie es gehen könnte.

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: MainForm zur Laufzeit ändern

Beitrag von Maik81SE »

charlytango hat geschrieben:
Mo 23. Okt 2023, 19:08
ich hab mir dein Programm heruntergeladen und hab versucht es anzusehen.

Leider geht es nicht wirklich, denn 4 Dateien fehlen im zip. Du scheinst das Projekt auf unterschiedliche Pfade verteilt zu haben und hast nur einen Teil davon im ZIP geschickt.
Dafür lohnt sich der Blick in dieses Thema viewtopic.php?p=137516#p137516 und der Download des ZIP user - function bzw hier nochmal das gesammelte Werk.
QR.zip
QR inkl. Übergreifender Units
(87.99 KiB) 60-mal heruntergeladen
charlytango hat geschrieben:
Mo 23. Okt 2023, 19:08
Genau für solche Fälle hat Lazarus eine Export-Routine (Menü: Project - Publish Project) die ein Projekt samt allen nötigen Dateien (die über die Lazarus Kontrolle hat) exportiert. ggfs bleiben INI-Dateien oder Datenbankdateien über und müssen in dem Export-Dialog per Dateiendeung hinzugefügt werden. Dann hast du schonmal ein Projekt das beim Export auch kompilierbar ist.
Dafür ist dieser Menüpunkt also, ich ging wohl fälschlicherweise davon aus, das ein online Export gemeint ist.
EDIT
Nachteil, man muß das Zip im Nachgang noichmal manuell anfassen, da Daten rein gezogen werden, selbst wenn diese nicht zu dem Project gehören.

Nominell sollte das Programm in der Summe 3 bis 4 mal so groß sein, aber der Übersichtshalber, splitte ich das ganze in Programm Modulen auf, welche von der Kontrolle Anwendung gestartet wird.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Antworten