TFrame - Inhalt ändern
Re: TFrame - Inhalt ändern
Die Erklärung von Hitman greift etwas zu kurz. Die Aspekte der Vererbung und der visiuellen Gestaltung müssten noch erwähnt werden:
http://books.google.ch/books?id=W2NoGUF ... t&resnum=9" onclick="window.open(this.href);return false;
http://books.google.ch/books?id=W2NoGUF ... t&resnum=9" onclick="window.open(this.href);return false;
-
- Beiträge: 60
- Registriert: Sa 4. Jul 2009, 09:11
- OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
- CPU-Target: 32Bit/64Bit
Re: TFrame - Inhalt ändern
Die Übersichtlichkeit ist genau das, was mir bei PageControl überhaupt nicht gefällt. Ich habe jetzt angefangen, das Programm einfach mal damit zu gestalten und bei der 2ten Page wird es schon sehr unschön. Auf jeder Page sind diverse Edits, ListBoxen, ComboBoxen und Labes (hab schon über 90 Objekte und bräuchte allein für den ersten Bereich noch ca. 3 - 4 Pages). Das Programm wird ein FrontEnd für eine recht umfangreiche MySQL-Datenbank, wodurch noch diverse Prozeduren hinzukommen würden. Ich werde mir mal den Link von theo etwas weiter ansehen, weil ich mich gerade wieder auf TFrame einschieße. Grund: Ich möchte nicht unbedingt diverse Fenster öffnen sondern das ganze schön in einem Fenster halten aber trotzdem den Code übersichtlich halten.
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: TFrame - Inhalt ändern
Ein Designvorschlag: nimm ein TreeView und erzeuge die notwendigen Steuerelemente dynamisch. In etwa so, wie die Optionen von Lazarus aussehen.
-
- 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)
Re: TFrame - Inhalt ändern
Das hatte ich mal gemacht. In Lazarus sind das glaube ich einzelne Forms. Früher war es aufjedenfall so. Bevor es den einhaltlichen "Baum" gab.
Das würde ich auch mit verschiedenen Forms lösen Wo ich das Parent entsprechend setzte. Ob das unter Lazarus klappt weiß ich nicht unter Delphi ging das. Da konnte ich ein Form in ein Panel packen und es hat sich auto. Angepasst.
Das würde ich auch mit verschiedenen Forms lösen Wo ich das Parent entsprechend setzte. Ob das unter Lazarus klappt weiß ich nicht unter Delphi ging das. Da konnte ich ein Form in ein Panel packen und es hat sich auto. Angepasst.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: TFrame - Inhalt ändern
Das geht schon, ich sehe da aber keinen Vorteil gegenüber einem TFrame ... nur ist der TFrame eben genau für sowas gedacht und daher ein Tick leichter handhabbar. Wieso bist du so abgeneigt gegen TFrame?pluto hat geschrieben:Das hatte ich mal gemacht. In Lazarus sind das glaube ich einzelne Forms. Früher war es aufjedenfall so. Bevor es den einhaltlichen "Baum" gab.
Das würde ich auch mit verschiedenen Forms lösen Wo ich das Parent entsprechend setzte. Ob das unter Lazarus klappt weiß ich nicht unter Delphi ging das. Da konnte ich ein Form in ein Panel packen und es hat sich auto. Angepasst.

-
- 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)
Re: TFrame - Inhalt ändern
Weil, ich unter Delphi damit nur Probleme hatte. Z.B. Funktioniert die Events nicht richtig. Ich hatte mal auf ein Frame eine Listbox gepackt. Jedoch klappte die OnKey* Events nicht. Unter Lazarus müsste ich das mal testen. Das Beispiel mit den Einstellungs Dialog von Lazarus ist nicht schlecht. Dafür sind sie bestimmt besser, als wenn man ein "NoteBook" nutze
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 60
- Registriert: Sa 4. Jul 2009, 09:11
- OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
- CPU-Target: 32Bit/64Bit
Re: TFrame - Inhalt ändern
Hallo,
ich hab nun auch etwas gefunden, was mich ziemlich nah an mein Ziel bringt in einem kleinen Projekt ausprobiert. Ich beschreibe das hier mal ganz kurz um anderen, die vor dem gleichen Problem stehen, zu helfen und um Kritik kriegen zu können.
Form1 wird mein Hauptfenster und beinhaltet neben einem Button ein TPanel, wo dann Form2 erscheint. Dazu habe ich die unit von Form2 unter uses in unit1 eingetragen. Dazu in den private declarations noch
Um Form2 erscheinen zu lassen:
Das ganze habe ich dann noch um Form3 erweitert und es funktioniert ganz gut.
Danke an alle, die mich in die richtige Richtung gebracht haben (solange sie denn Richtig ist
).
Gruß
Latze
ich hab nun auch etwas gefunden, was mich ziemlich nah an mein Ziel bringt in einem kleinen Projekt ausprobiert. Ich beschreibe das hier mal ganz kurz um anderen, die vor dem gleichen Problem stehen, zu helfen und um Kritik kriegen zu können.
Form1 wird mein Hauptfenster und beinhaltet neben einem Button ein TPanel, wo dann Form2 erscheint. Dazu habe ich die unit von Form2 unter uses in unit1 eingetragen. Dazu in den private declarations noch
Code: Alles auswählen
FForm2 : TForm2;
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
FForm2 := TForm2.Create(Panel1);
FForm2.Parent := Panel1;
FForm2.BorderStyle := bsnone;
FForm2.Align := alClient;
FForm2.Show;
end;
Danke an alle, die mich in die richtige Richtung gebracht haben (solange sie denn Richtig ist

Gruß
Latze
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.
-
- 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)
Re: TFrame - Inhalt ändern
Vergisst du nicht Form2 auch wieder frei zugeben ? sonst wird es jedes mal neu belegt. Im Übrigen heißt das was du machst: Forms Dynamisch erzeugen. Im Übrigen habe ich genau das gemeint, als ich davon sprach: Den Parent von Form2 zu ändern. Schön das, dass auch in Lazarus geht.
Schau mal nach include Dateien, die LCL ist drauf aufgebaut. Sie helfen ebenfalls eine unit zu strukturieren.
Schau mal nach include Dateien, die LCL ist drauf aufgebaut. Sie helfen ebenfalls eine unit zu strukturieren.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 60
- Registriert: Sa 4. Jul 2009, 09:11
- OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
- CPU-Target: 32Bit/64Bit
Re: TFrame - Inhalt ändern
Hab leider keine (oder inzwischen sehr wenig?) Ahnung von objektorientierter Programmierung, darum bin ich wohl nicht dahinter gekommen, als du mir den Tip gegeben hast. Bisher konnte ich mir mit Free Pascal (vor einigen Jahren von Turbo Pascal umgestiegen) immer sehr gut helfen, da meine Programme in der Regel auf einem Server laufen (meist Linux auf der Console).
Wenn ich da jetzt das richtige gefunden habe:
Danke für die Hilfe
Latze
Wenn ich da jetzt das richtige gefunden habe:
Code: Alles auswählen
procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
release;
form2 := nil;
end;
Latze
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: TFrame - Inhalt ändern
Vorsicht ... oben weist du die private FForm2 variable zu, unten gibst du aber "Form2" frei ... das ist NICHT das selbe 

-
- 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)
Re: TFrame - Inhalt ändern
Du musst nach der Verwendung einfach nur From2.Destroy aufrufen oder FreeAndNil(Form2).
Damit gibt du die Instanz wieder frei. Am besten packst du "FForm2 : TForm2" als Lokale Variable Definition.
Dann gibt es keine Probleme. Es sei denn du greifst noch von einer anderen Stelle auf fForm2 drauf zu.
Damit gibt du die Instanz wieder frei. Am besten packst du "FForm2 : TForm2" als Lokale Variable Definition.
Dann gibt es keine Probleme. Es sei denn du greifst noch von einer anderen Stelle auf fForm2 drauf zu.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 60
- Registriert: Sa 4. Jul 2009, 09:11
- OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
- CPU-Target: 32Bit/64Bit
Re: TFrame - Inhalt ändern
Man soll es nicht glauben, ich hab es kapiert
Danke dafür.

Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: TFrame - Inhalt ändern
Da hier im Thread auf das richtige Freigeben der Fenster hingewiesen wurde, möchte ich Dir nahe legen, die Unit heaptrc einzubinden, mit der genau dies überprüft werden kann (in den Compiler-Optionen).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 60
- Registriert: Sa 4. Jul 2009, 09:11
- OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
- CPU-Target: 32Bit/64Bit
Re: TFrame - Inhalt ändern
Danke für den Tip
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.