![]() |
MDI: Child erstellen
Habe irgendwie einen Denkfehler:
Delphi-Quellcode:
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.
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; Mein Fehler muss hier irgendwodrin liegen:
Delphi-Quellcode:
if MDIChildCount > 0 then
iNew_num := (MDIChildren[MDIChildCount - 1].Tag + 1) else iNew_num := 1; |
Re: MDI: Child erstellen
Hallo rebugger,
ich habe den Fehler zwar noch nicht gefunden aber du könntest es ja auch so schreiben.
Delphi-Quellcode:
Tschüß Markus
if MDIChildCount > 0 then
iNew_num := MDIChildCount+1 else iNew_num := 1; |
Re: MDI: Child erstellen
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. |
Re: MDI: Child erstellen
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; |
Re: MDI: Child erstellen
Hallo rebugger,
der folgende Code funktioniert bei mir...frage mich aber nicht warum :gruebel:
Delphi-Quellcode:
Tschüß Markus
if MDIChildCount > 0 then
iNew_num := (MDIChildren[1-MDIChildCount].Tag + 1) else iNew_num := 1; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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