AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi dynamisches array mit label und textboxen zerstören ?

dynamisches array mit label und textboxen zerstören ?

Ein Thema von agm65 · begonnen am 11. Jan 2008 · letzter Beitrag vom 11. Jan 2008
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:31
moin freunde..mal eine frage: also ich erstelle mir ein array mit label und textboxen wie folgt:
Delphi-Quellcode:
  frmParams.Label1Array[i]:= tedit.create(frmParams.Panel1);
  frmParams.Text1Array[i] := tedit.Create(frmParams.Panel2);

  frmParams.Label1Array[i].parent := frmParams.Panel1;
  frmParams.Text1Array[i].parent := frmParams.Panel2;

  frmParams.Label1Array[i].text := slAll12.Names[i] ;
  frmParams.Text1Array[i].Text := slAll12.ValueFromIndex[i];
wie zerstöre ich diese jetzt damit ich sie neu erstellen kann ? also wenn ich den form schließe sollen alle zerstört werden und beim neu öffnen wieder erstellt werden. weil die anzahl immer unterschieldich ist.. danke euch !
euer Peter Porka
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:33
Hallo,

die Objekte, die Du innerhalb des Arrays erzeugt hast, musst Du auch selber wieder zerstören.
Dazu gehst Du das Array von Low bis High durch.

Anschliessend setzt Du die Länge des Arrays auf 0.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:36
Wenn du die beiden Panels zerstörst sind auch die Edits weg.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#4

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:38
hab es mit panel1.free probiert, dann bekomme ich beim wieder öffnen einen fehler.
euer Peter Porka
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:39
Zitat:
hab es mit panel1.free probiert, dann bekomme ich beim wieder öffnen einen fehler.
Was meinst du mit Wiederöffnen?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:40
Das war ja nur eine Möglichkeit. Wir kennen ja den Aufbau deines Programmes nicht. s-off hat die am wahrscheinlichsten funktionierende Lösung gegeben.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#7

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:42
ich dachte das ich die panels im formclosequery mit .free behandel wenn ich dann wieder form.show mache bekomme ich den fehler. was läuft falsch ?

das geht auch nicht:

Delphi-Quellcode:
 for i := 0 to length(frmParams.Label1Array) - 1 do
   begin
     frmParams.Label1Array[i]:= nil;
     frmParams.Text1Array[i] := nil;
   end;
  setlength(frmParams.Label1Array,0);
  setlength(frmParams.Text1Array,0);
euer Peter Porka
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#8

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:47
Du kannst zwar das Item an Index x innerhalb Deines Arrays auf 'nil' setzen -> dadurch ist das eigentliche Objekt aber noch immer existent

Edit: desweiteren solltest Du Dir angewöhnen, ein Array nicht von 0 bis Length - 1 durchzugehen, sondern von Low bis High.
Irgendwann erzeugst Du vielleicht mal ein Array[1..3] of irgendwas und schon hast Du ein Problem.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:48
Du erstellst das Formular nicht erst beim Anzeigen sondern es existiert im Speicher während deiner gesamten Anwendung und du hast es nur macnhmal sichtbar. Wenn du dein Panel zerstörst wird es nicht wieder erstellt. show holt das Formular nur aus dem usichtbaren in den sichtbaren Bereich.

Du solltest dir vielleicht generell überlegen, so ein Formular nur bei Benutzung zu erstellen (kann aber nicht sagen, ob das in dein Konzept passt.

z.B. so:
Delphi-Quellcode:
procedure showDialog;
var Formx:Tformx
begin
  Formx:=Tformx.create(nil);
  try
    Formx.feld1:=5; //Beispiel
    Formx.showmodal;
    editresult.text:=formx.irgendetwas; //Beispiel
  finally
    Formx.free;
  end;
end;
Edit: Und natürlich Formular Formx im Menu Projekt>Optionen>Formulare aus "auomatisch erzeugen" herausnehmen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#10

Re: dynamisches array mit label und textboxen zerstören ?

  Alt 11. Jan 2008, 09:53
okay ich setzte jetzt einfach die parent eigenschaft der arrays auf nil, dann gehts....

wie sieht die synatx mit der for schleife von low bis high aus ?
euer Peter Porka
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:07 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