![]() |
Item/TPageControl zur Designzeit im Frame
Hallo liebe DP.
Ich habe folgendes Problem: Ich möchte mehrere Frames über PageControl in meine MainForm zur Laufzeit einbinden. Die Komponenten befinden sich allerdings schon zur Designzeit auf den Frames. Alle funktionierte schon perfekt, bis ich ein MemoFeld, eine ComboBox oder ähnliches mit properties wie .Items oder .tabs nutzen wollte. Wenn schon zur Designzeit Items oder Tabs vorhanden waren bekam ich beim kompilieren folgende Fehlermeldung: Zitat:
Wenn ich die Items erst zur Laufzeit erstellen lasse, habe ich keinerlei Probleme, nur einen riesen Aufwand, den ich wenn möglich vermeiden möchte... Ich freue mich über jede Lösung bzw. Denkanstöße ;-) mfg TheThrust |
Re: Item/TPageControl zur Designzeit im Frame
Ich meine du müsstest bevor die Frams nutzt doch noch ein FramSet platzieren... bzw. hinzufügen. Das ist sowas wie ein From.... Aber ich habe Delphi schon länger nicht mehr genutzt... Schau mal bei Delphi unter Neu ob du da was mit FrameSet findest.
|
Re: Item/TPageControl zur Designzeit im Frame
Das klingt irgentwie logisch, aber ich kann in meiner Tool-Palette kein FrameSet finden, kann es sein, dass ich noch eine extra dll brauche?
|
Re: Item/TPageControl zur Designzeit im Frame
Ich meinte ja auch nicht die Komponenten leiste sondern das Neu Menu unter Datei. Da solltest du sowas finden in dieser Richtung, wenn du Delphi benutzt. Ich weiß aber nicht genau ab wann es FramSet gibt in Delphi. Kann sein da du ein Version hast in der du kein FramSet hast.
also nochmal: MenuPunkt Datei, Neu..., und Irgendwo dort im Dialog sollte sich ein Eintrag verstecken der FramSet oder so ähnlich heißt. Wenn ich mich nicht irre. |
Re: Item/TPageControl zur Designzeit im Frame
Herzlich willkommen in der Delphi-PRAXiS, TheThrust.
FrameSet ist wohl eher ein HTML-Element. Kannst du ein Miniprojekt bereitstellen - mit einer Anleitung, wie dein Problem nachvollzogen werden kann? Freundliche Grüße |
Re: Item/TPageControl zur Designzeit im Frame
Danke :-D
Ok, ein kleines Beispiel also: Es handelt sich hierbei um ein Form mir 4 eingebundenen Frames:
Delphi-Quellcode:
Per klick auf den Eintrag "test1" im Main-menu werden die Frames den einzelnen Tab-sheets zugewiesen, nachdem per FormCreate-methode die Frames erzeugt wurden.
unit main_fr;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, fr0, fr1, fr2, fr3, Borland.Vcl.Menus, System.ComponentModel, Borland.Vcl.StdCtrls, Borland.Vcl.ComCtrls; type Tmain_form = class(TForm) MainMenu1: TMainMenu; Start1: TMenuItem; test1: TMenuItem; //Dies hier ist der Auslöser zum Einbinden der Frames Forschung1: TMenuItem; PageControl1: TPageControl; procedure test1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var main_form: Tmain_form; implementation {$R *.nfm} var fr : array[0..3] of TFrame; procedure Tmain_form.test1Click(Sender: TObject); var p : TTabSheet; i : integer; begin for i := 0 to 3 do begin p := TTabSheet.Create(PageControl1); p.PageControl := PageControl1; p.Name := 'nummer_' + IntToStr(i); p.Caption := 'caption_' + IntToStr(i); p.Show; fr[i].parent := p; fr[i].Show; end; end; procedure Tmain_form.FormCreate(Sender: TObject); begin fr[0] := fr0.TFrame1.Create(self); fr[1] := fr1.TFrame4.Create(self); fr[2] := fr2.TFrame5.Create(self); fr[3] := fr3.TFrame6.Create(self); end; end. Auf den Frames befindet sich kein code, es reicht schon ein memofeld mit dem Standard-Item "Memo1" auf eines der Frames zu setzten um den oben erwähnten Fehler zu erzeugen. Vielen Dank schon mal Im Vorraus TheThrust |
Re: Item/TPageControl zur Designzeit im Frame
Tritt der Fehler auch auf, wenn du deinen Code leicht abwandelst?
Delphi-Quellcode:
procedure Tmain_form.test1Click(Sender: TObject);
var p : TTabSheet; i : integer; begin // zuerst etwa vorhandene TabSheets entfernen! // ... for i := 0 to 3 do begin p := TTabSheet.Create(PageControl1); p.PageControl := PageControl1; // p.Name := 'nummer_' + IntToStr(i); // p.Caption := 'caption_' + IntToStr(i); // p.Show; p.Parent := PageControl1; // that's it! fr[i].parent := p; // fr[i].Show; end; PageControl1.ActivePageIndex := 0; end; |
Re: Item/TPageControl zur Designzeit im Frame
Ja, tut mir leid, keine Veränderung, immernoch die gleiche Fehlermeldung... :-(
Noch weitere Ideen, oder soll ich euch mal die Dateien uploaden oder ne echse oder so? MFG TheThrust |
Re: Item/TPageControl zur Designzeit im Frame
Moin,
wenn ich dein Projekt mit D7 öffnen kann, werde ich es mir anschauen. Freundliche Grüße |
Re: Item/TPageControl zur Designzeit im Frame
Habe das Problem jetzt anders gelöst:
Ich habe alles in Delphi 7 kopiert, nichts verändert und es läuft, weiß der Henker, wo dort der Fehler war. Aber: Ohne
Delphi-Quellcode:
funktioniert es dann doch nicht, also hätte ich auch so hier posten müssen.
p.Parent := PageControl1; // that's it!
Vielen Dank also für die Hilfe!!! :hello: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr. |
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