Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Letztes TabSheet(PageControl) bleibt beim löschen stehen ! (https://www.delphipraxis.net/9939-letztes-tabsheet-pagecontrol-bleibt-beim-loeschen-stehen.html)

Teclis 8. Okt 2003 11:30


Letztes TabSheet(PageControl) bleibt beim löschen stehen !
 
Moinsen....
ich habe folgendes Problem: Ich habe ein PageControl auf dem ich zur Laufzeit TTabsheets mit jeweils einem Memo erzeuge. Nun will ich alle löschen und bis auf das letzte werden auch alle gelöscht ! Aber warum das letzte nicht ?

Mit dieser Schleife habe ich es probiert :

Delphi-Quellcode:
for i:=0 to PageControl1.PageCount do begin
 NewMemo[i].Free;
 Pagecontrol1.Pages[i].Free;
 end;
In freudiger Erwartung auf Kommentare...

Teclis :bouncing4:

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]

Honie 8. Okt 2003 11:41

Re: Letztes TabSheet(PageControl) bleibt beim löschen stehen
 
Auf jeden Fall muss es Pagecount-1 heissen, da Pages ein 0-basiertes Array ist und
somit von 0 bis Pagecount-1 indiziert werden kann.

Sharky 8. Okt 2003 11:49

Re: Letztes TabSheet(PageControl) bleibt beim löschen stehen
 
Hai Teclis,

ich habe zum Test mal diesen Code geschrieben:

http://www.sharkys-home.de/smiles/finger.gif
Delphi-Quellcode:
var
 MyMemos : Array [0..10] Of TMemo;
 MyPages : Array [0..10] Of TTabSheet;

procedure TForm1.Button1Click(Sender: TObject);
var
 ndx : Integer;
begin
 for ndx := 0 to 10 do
  begin
   MyPages[ndx] := TTabSheet.Create(self);
   MyPages[ndx].PageControl := PageControl1;
   MyMemos[ndx] := TMemo.Create(self);
   MyMemos[ndx].Parent := MyPages[ndx];
   MyMemos[ndx].Visible := True;
   MyMemos[ndx].Align := alClient;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 ndx : Integer;
begin
 for ndx :=0 to PageControl1.PageCount-1 do
  begin
  MyMemos[ndx].Free;
  MyPages[ndx].Free;
  end;
end;
Er macht das ohne Probleme.

sakura 8. Okt 2003 11:53

Re: Letztes TabSheet(PageControl) bleibt beim löschen stehen
 
Und hier mein Vorschlag:

Code:
[color=#f50000]for i:=Pred(PageControl1.PageCount) downto 0 [/color]do begin
  NewMemo[i].Free;
  Pagecontrol1.Pages[i].Free;
end;
Das hatten wir schon oft, beim Löschen aus Listen müssen diese RÜCKWÄRTS durchlaufen werden, da sich während des Löschens der Index der folgenden Seiten ändert ;-)

...:cat:...

Teclis 8. Okt 2003 12:09

Re: Letztes TabSheet(PageControl) bleibt beim löschen stehen
 
Hallo Zusammen...
danke ....jetzt funzt es !!! :mrgreen:

Thx for help,
Teclis :bouncing4:

Sharky 8. Okt 2003 12:13

Re: Letztes TabSheet(PageControl) bleibt beim löschen stehen
 
Zitat:

Zitat von sakura
Das hatten wir schon oft, beim Löschen aus Listen müssen diese RÜCKWÄRTS durchlaufen werden, da sich während des Löschens der Index der folgenden Seiten ändert

:wall: :wall:

Er greift ja über den Seitenindex zu und nicht über sein Array. Habe ich total überlesen :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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