Einzelnen Beitrag anzeigen

tomate007

Registriert seit: 1. Apr 2007
46 Beiträge
 
#7

Re: Controls wärend der Laufzeit ENTFERNEN.

  Alt 12. Nov 2007, 13:21
Also die müssen meiner Meinung nach neu erzeugt werden da die Situation so aussieht:

Alle Felder und Labels werden dynamisch aus einer CSV erzeugt.
Diese CSV wird durch ein anderes Programm wärend der Laufzeit geändert.
d.h. der Inhalt aus der ersten Zelle der CSV wird in Edit1 geschrieben und die überschrift dazu in Label1.
dies kann aber sich alles wärend der Laufzeit ändern, sodass ich wenn der User auf Aktuallisieren klickt nicht weiß ob die Caption von Label 1 immernoch die Überschrift der Spalte 1 ist und ich weiß auch nicht ob der Inhalt von Edit1 immernoch der gleiche Inhalt ist wie Zelle 1 der CSV.

Desweiteren weiß ich vorher nicht ob die CSV nicht vllt nach dem Aktuallisieren Leer ist, oder ob da noch Spalten zugekommen ist.

Da ich soviele Sachen nicht weiß, dachte ich mir das ein destroy und nachher wieder erzeugen besser wäre als tausende von Prüfungen und anschließend die dazugekommenden zu erzeugen.

Bin natürlich offen für alle Ideen, also wenn einer was besseres weiß als .free und dann wieder erzeugen immer her damit.

Dazu kommt noch das .free sehr sehr langsam ist. Also das .free mach ich gerade so:
Delphi-Quellcode:
     if pruefung = true then begin
     for i:= 1 to AnzahlSpalten-1 do begin
     TEdit(Scrollbox1.FindComponent('Edit'+ IntToStr(i))).Free;
     TLabel(Scrollbox1.FindComponent('Label'+ IntToStr(i))).Free;
     end;
     end;
dabei ist pruefung eine variable des typ boolean welche auf true gesetzt wird wenn 1mal felder erzeugt wurden.
AnzahlSpalten ist die Anzahl der Spalten der CSV wovon ich vorher (bevor die CSV durch ein anderes Programm verändert worden ist) die Objects erzeugt habe. Mit AnzahlSpalten weiß ich also wieviele Objects ich zu löschen habe.

mit FindComponents suche ich mir die dann raus da ich ja die Objects nicht mit Edit[i] oder Label[i] ansprechen kann oder??

nun klappt alles, aber ich habe bei der .free Methode eine CPU-Auslastung von 100 % also geht alles zu langsam. Gibt es eine bessere Möglichkeit???

So .... nun seit ihr wieder gefragt ^^

Danke schonmal

MFG
Andre
  Mit Zitat antworten Zitat