Autor Beitrag
dany
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Fr 25.07.03 13:32 
Hi,

ich möchte in einen Formular, 2 weitere plazieren. In den 2 weiteren Formularen befinden sich Edit, Combo usw. . Diese Formulare sehen aber absolut gleich aus. Ich möchte eines dieser Formulare fertig machen, dann zu einer Klasse erheben und jetzt aus dem Hauptformular zweimal initalisieren ( mit zwei unterschiedlichen Namen versteht sich ). Wie gehe ich da am besten vor. Sollte ich ertsmal eines so fertigmachen und dann zur Klasse erheben? Wie geht es am schnellsten und einfachsten?

dany
ShadowThief
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 278



BeitragVerfasst: Fr 25.07.03 13:53 
wie erhebt man ein fertig gemachtes formular zu einer klasse?
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Fr 25.07.03 14:01 
Titel: hmm,
warum machst du das Hauptfenster nicht einfach zu einem MDI Fenster, also Formstyle fsMDIFOrm

und die anderen Fenster zu MDI Childs. Ich denke das ist was du tun willst. Naja und von den Childs kannste soviele Instanzen erstellen wie Speicher in deiner Kiste ist.

_________________
mfg. Joel
dany Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Fr 25.07.03 14:02 
Titel: zu bedenken
es darf erst zur Laufzeit erzeugt werden. Das Hauptformular wird MDI. die beiden Child-MDI. Die Namen der Objekte werden erst jetzt festgelegt durch den Namen der bei der Initialisierung übergeben wird. Ist nicht ganz so einfach.
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Fr 25.07.03 14:05 
Titel: hmm,
wo ist denn das Problem ?
Einfach in Projekt/Options die AutoCreateForms bearbeiten und dann die CHilds so aufrufen
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TmdiMain.Oeffne_MDIAUSWAHL;

var Header : String;

begin
  wincount:=wincount+1;
  Header:='Auswahl'+IntToStr(wincount);  //Hier die Caption zusammenbauen
  if CheckWindowFromMain(Header) then
  Begin
    m_mdiAuswahl:=TmdiAuswahl.create(Self);
    m_mdiAuswahl.Caption:=Header;
    m_mdiAuswahl.show;
  end;
End;


und
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
function TmdiMain.CheckWindowFromMain(sCaption:String):Boolean;

var bStatus : boolean;
    i       : integer;

Begin
  bStatus:=TRUE;
  Begin
    for i := screen.Formcount - 1 downto 0 do
    if trim(screen.Forms[i].Caption) = trim(sCaption) then
    begin
      // ... dann hole es nach vorne
      screen.Forms[i].BringToFront;
      screen.Forms[i].Repaint;
      bStatus:=FALSE;
    end;
  end;
  CheckWindowFromMain:=bStatus;
end;

holt das richtigige in den Vordergrund wenn es schon da ist.

_________________
mfg. Joel