AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MDI: Child erstellen

Ein Thema von rebugger · begonnen am 12. Apr 2004 · letzter Beitrag vom 12. Apr 2004
Antwort Antwort
rebugger

Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
 
Delphi 7 Professional
 
#1

MDI: Child erstellen

  Alt 12. Apr 2004, 20:50
Habe irgendwie einen Denkfehler:
Delphi-Quellcode:
var
  iNew_num : Integer;
  iNew_child : TfrmChild;
begin
  if MDIChildCount > 0 then
    iNew_num := (MDIChildren[MDIChildCount - 1].Tag + 1)
  else
    iNew_num := 1;

  iNew_child := TfrmChild.Create(nil);
  with iNew_child do
  begin
    Tag := iNew_num;
    Name := 'CodePage' + IntToStr(iNew_num);
    Caption := 'unbenannt' + IntToStr(iNew_num);
  end;
end;
Beim ersten Aufruf hat iNew_num den Wert 1, beim 2. Aufruf den Wert 2, aber dem dritten Aufruf gibts Probleme, da schon wieder 2 rauskommt.

Mein Fehler muss hier irgendwodrin liegen:
Delphi-Quellcode:
  if MDIChildCount > 0 then
    iNew_num := (MDIChildren[MDIChildCount - 1].Tag + 1)
  else
    iNew_num := 1;
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#2

Re: MDI: Child erstellen

  Alt 12. Apr 2004, 21:03
Hallo rebugger,
ich habe den Fehler zwar noch nicht gefunden aber du könntest es ja auch so schreiben.
Delphi-Quellcode:
if MDIChildCount > 0 then
    iNew_num := MDIChildCount+1
else
    iNew_num := 1;
Tschüß Markus
  Mit Zitat antworten Zitat
rebugger

Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
 
Delphi 7 Professional
 
#3

Re: MDI: Child erstellen

  Alt 12. Apr 2004, 21:07
Das kann aber Probleme geben:
Ich erstelle 3 Fenster (1,2,3) und Lösche das 1. (also nur noch 2,3) und will dann ein neues erstellen würde er es als 2+1 (also 3) nehmen.

Also muss er immer die Zahl des letzten + 1 nehmen.
  Mit Zitat antworten Zitat
rebugger

Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
 
Delphi 7 Professional
 
#4

Re: MDI: Child erstellen

  Alt 12. Apr 2004, 21:12
Fehler gefunden: er setzt das aktive Fenster immer als MDIChildren[0]

Lösung:
Delphi-Quellcode:
  if MDIChildCount = 1 then
    iNew_num := ActiveMDIChild.Tag + 1
  else if MDIChildCount > 0 then
  begin
    if ActiveMDIChild.Tag = MDIChildCount then
      iNew_num := MDIChildCount + 1
    else
      iNew_num := (MDIChildren[MDIChildCount - 1].Tag + 1);
  end
  else
    iNew_num := 1;
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#5

Re: MDI: Child erstellen

  Alt 12. Apr 2004, 21:33
Hallo rebugger,
der folgende Code funktioniert bei mir...frage mich aber nicht warum
Delphi-Quellcode:
  if MDIChildCount > 0 then
    iNew_num := (MDIChildren[1-MDIChildCount].Tag + 1)
  else
    iNew_num := 1;
Tschüß Markus
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:14 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