AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Unterschied zwischen "Self" und Form2 (MDI-Child-Formular)?
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied zwischen "Self" und Form2 (MDI-Child-Formular)?

Ein Thema von Kalakmul · begonnen am 6. Aug 2014 · letzter Beitrag vom 7. Aug 2014
 
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#4

AW: Unterschied zwischen "Self" und Form2 (MDI-Child-Formular)?

  Alt 6. Aug 2014, 23:44
Hallo,

naja, dass Self nichts mit der Variable zu tun hat wurde ja schon erklärt.

Zitat:
Es soll Buttons als eine Art Auswahl enthalten, von denen aus weitere Childfenster angezeigt werden können. Jedes Childfenster soll aber nur einmal angezeigt werden können.
Das könntest Du vielleicht so hinbiegen (pack folgendes in eine eigene Unit [im Folgenden mal sap.pas]):
Delphi-Quellcode:
function CreateForm (const FormClass : TCustomFormClass) : TCustomForm;
begin
  Result := FormClass.Create (Application.MainForm)
end;

function FindComponentByClass (const Component : TComponent; const ComponentClass : TComponentClass) : TComponent;
var
  i : Integer;
  c : TComponent;
begin
  Result := nil;
  for i := 0 to Component.ComponentCount - 1 do
    begin
      c := Component.Components [i];
      if c is ComponentClass then
        begin
          Result := c;
          Break
        end
    end
end;

procedure ShowMDIForm (const FormClass : TCustomFormClass);
var
  c : TComponent;
  f : TCustomForm;
begin
  c := FindComponentByClass (Application.MainForm, FormClass);
  if Assigned (c) then
    f := TForm (c)
  else
    begin
      f := CreateForm (FormClass);
      if not Assigned (f) then
        // Do whatever you want if it fails
    end;

  if f.WindowState = wsMinimized then
    f.WindowState := wsNormal
  else
    f.BringToFront
end;
In den Formularen dann jeweils ein:
Delphi-Quellcode:
procedure TFormX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree
end;
Und an den Stellen an denen ein weiteres MDIChild angezeigt werden soo
Delphi-Quellcode:
uses
  sap.pas;

procedure TFormY.ButtonClick(Sender: TObject);
begin
  ShowMDIForm (TFormX)
end;
Gruß
Volker Zeller
  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 21:05 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-2025 by Thomas Breitkreuz