![]() |
Re: Controls wärend der Laufzeit ENTFERNEN.
Du kannst einfach über alle Komponenten in deiner ScrollBox (rückwärts) iterieren und die gefundenen Edit- und Label-Komponenten freigeben. Wenn sich da keine anderen Komponenten befinden, geht das sogar ohne Typprüfung. Auf jeden Fall wird so das mehrfache Durchgehen der Liste via FindComponent vermieden. Dass auch Free() nicht ganz ohne Kosten ist, versteht sich von selbst.
|
Re: Controls wärend der Laufzeit ENTFERNEN.
Zitat:
Kunden haben in der Regel nicht viel Ahnung von Softwareentwicklung, darum kommen sie ja zu "uns". Du schreibst einem Maurer auch nicht vor, wie er den Mörtel zu verarbeiten hat - denn er sollte es am besten wissen. Also falls die Daten über ein (tief liegendes) Maximum reichen, musst du wohl deinem Kunden klar machen, das diese Lösung so nicht praktikabel ist. Man kann auch ohne all zu großen Aufwand Listen erstellen, die sich optisch kaum von einer "Label-Edit"-Lösung unterscheiden, aber extrem viel mehr Performance haben ... [edit] Falls du Align nutzt, mache auf jeden Fall DisableAlign und EnableAlign! :wink: [/edit] |
Re: Controls wärend der Laufzeit ENTFERNEN.
Zitat:
Könntest du/ihr mir sagen wie ich das machen kann?? kann ich sowas wie On all Objects in ScrollBox do .free ^^ ich weiß... warscheinlich zu einfach :D Zitat:
Also der Kunde ist ein interner Mitarbeiter und MÖCHTE ES SO HABEN ohne wenn und aber. Und da ich in der Ausbildung bin hab ich nichts zu melden und muss es halt so machen.... Ach ja... ist alles nicht so einfach ^^ Bin ja froh das ihr mir helft. MFG Andre |
Re: Controls wärend der Laufzeit ENTFERNEN.
Zitat:
Delphi-Quellcode:
With ScrollBox123 do
While ControlCount > 0 do Controls[0].Free; Zitat:
(Oder eben nur so viele Controls erzeugen, wie sichtbar sind und dynamisch beim scrollen laden ...) |
Re: Controls wärend der Laufzeit ENTFERNEN.
Zitat:
DANKÖÖÖÖÖÖÖÖSCHÖÖÖNNN Es funktioniert!!!!! :dp: :dancer2: :hello: Ich danke euch allen....:D |
Re: Controls wärend der Laufzeit ENTFERNEN.
Zitat:
wenn du die erste gelöscht hast gibt es die letze schon nicht mehr. machs so
Delphi-Quellcode:
if pruefung = true then
begin for i:= AnzahlSpalten-1 downto 1 do begin TEdit(Scrollbox1.FindComponent('Edit'+ IntToStr(i))).Free; TLabel(Scrollbox1.FindComponent('Label'+ IntToStr(i))).Free; end; end; |
Re: Controls wärend der Laufzeit ENTFERNEN.
Zitat:
|
Re: Controls wärend der Laufzeit ENTFERNEN.
Eine andere Idee wäre es gewesen, im Hintergrund eine ObjectList zu benutzen.
Beim Erzeugen Deiner Controls packst Du einfach eine Referenz in diese Liste und beim Freigeben musst Du dann nur einmal durch diese Liste durchrennen und alle Controls freigeben, die da drin stecken. Somit ersparst Du Dir auch das FindComponent. |
Re: Controls wärend der Laufzeit ENTFERNEN.
Zitat:
Zitat:
|
Re: Controls wärend der Laufzeit ENTFERNEN.
also jungs... es funktioniert alles mit:
Delphi-Quellcode:
und zwar ist es so das alle Componenten die gelöscht werden sollen sich soweso in ScrollBox123 befinden.
With ScrollBox123 do
While ControlCount > 0 do Controls[0].Free; Von daher klappt es super... Zitat:
Würde jedem empfehlen der viele Componenten, dass er einfach nen panel macht und da die dinger drauf setzt die entfernt werden sollen und dann halt mit dem Code oben die Objects löscht. Zitat:
Also nochmal ICH DANKE EUCH ALLEN!!!! MFG Andre @Mod Thema kann geschlossen werden von meiner Seite aus. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 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