AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem: In einer Prozedur ein Frame auf eine Form zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: In einer Prozedur ein Frame auf eine Form zuweisen

Ein Thema von Paul Schmidt · begonnen am 15. Feb 2006 · letzter Beitrag vom 16. Feb 2006
 
Paul Schmidt

Registriert seit: 7. Feb 2006
22 Beiträge
 
#1

Problem: In einer Prozedur ein Frame auf eine Form zuweisen

  Alt 15. Feb 2006, 22:42
Seid gegrüßt!

Also, folgendes Problem:

Ich habe in meiner Anwendung zur Designzeit 1 Form und mehrere Frames erstellt.

Einer der Frames ist folgendermaßen deklariert:

Delphi-Quellcode:
TframeOptions = class(TFrame)
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    constructor Create(Sender: TComponent);
    destructor Destroy;
  end;

...

constructor TframeOptions.Create(Sender: TComponent);
begin
  inherited Create(Sender);
  //tue was...
end;

destructor TframeOptions.Destroy
begin
  inherited;
end;
auf diesen sollen natürlich noch Buttons usw.

Nun möchte ich durch einen Klick auf einen Button im Hauptformular ein neues Fenster zur Laufzeit erstellen und darauf ein entsprechendes Frame legen. Dafür möchte ich eine function benutzen, der ich nur das Frame übergeben möchte, welches ich anzeigen lassen will.

Ich habe mir da folgendes überlegt:

Delphi-Quellcode:
type TFrameClass = Class of TFrame;

function TformMain.ShowWindow(pFrame: TFrame; pFrameClass: TFrameClass): TForm;
begin
  Result := TForm.Create(Self);
  Result.Hide;
  pFrame := pFrameClass.Create(Result); //hier wird der constructor von TframeOptions NICHT aufgerufen **
  Result.Height := pFrame.Height;
  Result.Width := pFrame.Width;
  pFrame.Parent := Result;
  pFrame.Align := alClient;
  Result.Show;
end;

procedure TformMain.Button1Click(Sender: TObject);
var
  t: TframeOptions;
begin
  //t := TframeOptions.Create(Self); //hier wird der constructor von TframeOptions aufgerufen ****
  ShowWindow(t, TframeOptions);
end;

Fenster erstellen und Frame darauf legen funktioniert auch. Allerdings wird in der function ShowWindow der Constructor von TframeOptions nicht ausgeführt(siehe **), was er aber, wenn ich testweise den Frame ausserhalb erstelle (****).
Da ich aber beim Erstellen des Frames etwas ausführen möchte, muß der Constructor ausgeführt werden.

Kann mir da mal jemand helfen und mir vllt. mal erklären, wo ich da falsch denke?

Schönen Gruß,
Paule
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz