Autor Beitrag
Quivadis
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314

UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
BeitragVerfasst: Di 05.07.05 10:35 
Hallo Freunde,

ich will immer noch aus einen Programm ein Frame machen.
Im experiemten habe ich herausgefunden das es irgendwie funktionieren muss, so wie ich es mir vorgestellt habe.
Bei meinen Experimenten bin ich aber auf ein Problem gestossen wo mir im Moment keine Lösung einfällt.

Ich möchte einen Frame erzeugen, welcher sich immer automatisch an die Grösse des Fenster auf welches er gezogen wurde anpasst. Der Frame soll, wenn er auf das Fenster gezogen wurde, nicht mehr verändert werden müssen, sprich ich möchte nicht mir aleign=client usw. arbeiten. Ich dachte mehr das man die grösse des drunter liegenden Fensters mit height und width setzen kann.
Wie kann ich aber das Fenster ansprechen? Ist doch immer ein anderes, oder bin ich komplett auf dem Holzweg?

Danke für eure Hilfe

Quivadis

_________________
Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Di 05.07.05 11:54 
hi,

ganz davon ab, dass es schlechter stil ist, wenn ein child seinen parent verändert, sollte das über die parent-eigenschaft des frames gehen.

viele grüße
alex
Quivadis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314

UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
BeitragVerfasst: Di 05.07.05 14:21 
Danke Dir @iKilledKenny,

könntest du mir das Bitte mal anhand eines Beispieles erläutern wie das programmiert wird (parent). So als Gedankenanstoss. Komme dann vielleicht alleine weiter.

Ob schlechter still hin oder her, es muss funktionieren. Wenn es funktioniert kann ich das ja nochmal sauber programmieren. Brauche was zum Chefe zeigen. Fehler machen sich da etwas schlecht.

In meinen Projekt hagelt es nur so an Fehlern (einfach mal frame erzeugt und alles daran kopiert , deswegen muss ich das warscheinlich nochmal neu als Frame programmieren. Hoffe bekomme das mit deiner Hilfe auf die Reihe.

_________________
Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Di 05.07.05 15:16 
also wenn du von deinem programm aus den frame erzeugst, musst du diesem ja einen parent setzen. ansonsten würdest du ihn ja nie sehen können. dein frame sollte nun von TCustomFrame abgeleitet werden, damit du die methode "SetParent" überschreiben kannst. das könnte dann z.b. so aussehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
TMyFrame.SetParent (AParent : TWinControl);

begin
  inherited SetParent (AParent);
  AParent.Width := self.Width;
  AParent.Height := self.Height;
  self.Top := 0;
  self.Left := 0;
end;


der code würde die "hauptform" so groß machen wie deinen frame und diesen dann nach (0,0) positionieren, damit er auch ganz angezeigt wird.

code ist nicht getestet, müsste aber so gehen...

grüße
alex
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Di 05.07.05 15:28 
Also du willst den Frame nachdem er druafgezogen wurde nicht mehr verändern müssen? dann setz das Align=alClient doch gleich im Objektinspektor, wenn du deinen Frame erzeugst (dann hat es der Frame überall, wo er eingefüt wird als "standardeinstellung")! Oder hab ich das nu falsch verstanden?


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Quivadis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314

UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
BeitragVerfasst: Di 05.07.05 16:52 
ich will das der Frame sich an die grössenänderung des Fensters anpasst, auf der er liegt. Ich brauche aber die Koordianten zum weiteren berechenen der grösse. auf dem frame liegne bilder die gezommt werden müssen in einem bestimmtem verhältniss und abmessungen.

Danke alle für eure Antworten, werde das morgen auf arbeit mal alles testen.

Sage euch dann bescheid wie ich es gemacht habe

_________________
Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.
Quivadis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314

UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
BeitragVerfasst: Mi 06.07.05 14:16 
so hier, wie versprochen, meine Lösung:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Procedure TFrame1.FrameResize(Sender: TObject);
begin

  Panel1.Height := Parent.ClientHeight;
  Panel1.Width  := Parent.ClientWidth;
end;


jetzt muss ich nur noch den ganzen anderen Kram irgendwie umschreiben.

_________________
Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.