AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zur Laufzeit Comboboxen hinzufügen

Ein Thema von KomischerKautz · begonnen am 14. Feb 2020 · letzter Beitrag vom 21. Feb 2020
Antwort Antwort
Seite 3 von 4     123 4   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#21

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 15. Feb 2020, 16:19
Jetzt noch das Erstellen in eine separate Methode aufrufen, die von der Schaltfläche aufgerufen wird mit der Position usw. als Parameter und man kann den Code universell einsetzten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 15. Feb 2020, 16:56
Dann aber bitte die Liste noch als Feld es Formulars deklarieren, in dessen FormCreate erzeugen und im FormDestroy wieder freigeben, sonst bekommt man ganz schnell Kummer, wenn das Formular dynamisch erzeugt und freigegeben wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#23

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 15. Feb 2020, 17:11
Das gehört eigentlich nicht mehr dazu. Vielleicht will ja jemand die Comboboxen anders verwalten. In einem statischen Array oder in einer Objektliste oder...Aber das ist der Basiscode, den man auf alle Fälle benötigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 17. Feb 2020, 08:27
Delphi-Quellcode:
  cb := TComboBox.Create(cbPnl);
  cb.Parent := Self;
Sollte genau andersrum sein, Wein und Delphi verträgt sich nicht
Also
Delphi-Quellcode:
  cb := TComboBox.Create(Self);
  cb.Parent := cbPnl;
Self steht in diesem Fall für's aktuelle Formular, wenn man den Schnippsel als methode verfrachtet sollte "Self" mit 'nem Formular-Bezeichner ausgetauscht werden und als Parent halt ein Control oder Formular angeben.

Joar, die cbList in Formular Klasse mit rein, das macht Sinn, mein Fehler! (keine Ironie)

Ich hätte gerne noch 'ne mini Erklärung warum Liste.Create/.Free eher in FormCreate/Destroy rein sollte.
initialization/finalization ist doch eigentlich 'ne super stelle dafür, finde ich.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.275 Beiträge
 
Delphi 12 Athens
 
#25

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 17. Feb 2020, 08:37
Zitat:
cbList in Formular Klasse mit rein, das macht Sinn
Zitat:
warum Liste.Create/.Free eher in FormCreate/Destroy rein sollte
...deswegen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 17. Feb 2020, 08:39
Wenn das Formular und die Liste unterschiedliche Lebenszyklen haben, dann hat man recht schnell tote Referenzen in der Liste. Sobald der Parent/Owner der ComboBoxen freigegeben wird, gibt dieser auch die ComboBoxen frei. Diese stehen aber weiterhin in der Liste. Da macht es doch eher Sinn, die Lebenszyklen der Liste und des Formulars anzugleichen, außerdem braucht man dann auch keine globale Variable mehr.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 17. Feb 2020, 08:45
Super erläuterung und klar Formular Feld an Lebensdauer des Formulars binden macht Sinn.
Danke Euch!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#28

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 17. Feb 2020, 13:08
Eine TComponentList könnte man auch verwenden.
Wird eine Komponente (TComponent) freigegeben, dann wird sie autoamtisch aus der Liste entfernt.

TComponent haben ein Notify-System, um sich gegenseitig über ihre Freigabe zu informieren, z.B. Property auf nil zu setzen oder sich aus den Listen der Components und Controls ihrer Parents zu entfernen.

Und in den NextGen-Compilern (Android, iOS) gibt es Weak-Referenzen, die werden automatisch auf nil gesetzt, wenn man die Komponente freigibt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Feb 2020 um 16:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 17. Feb 2020, 15:39
...in eine separate Methode aufrufen...
da hab ich mir auch shon ein paar gedanken gemacht aber weiß momentan noch nicht so genau wie man es am elegantesten löst.
ich würde mir eine separate unit erzeugen mit einer type dynCreate = record deklaration und darin funktionen wie "ComboBox" definieren, aber wie ich die verschiedensten möglichkeiten einer verwaltung implementiere, da bin ich ratlos.
für den TE sollte das bereits vorhandene ausreichen denk ich mal.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#30

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 18. Feb 2020, 11:58
Eine TComponentList könnte man auch verwenden.
Wird eine Komponente (TComponent) freigegeben, dann wird sie autoamtisch aus der Liste entfernt.

TComponent haben ein Notify-System, um sich gegenseitig über ihre Freigabe zu informieren, z.B. Property auf nil zu setzen oder sich aus den Listen der Components und Controls ihrer Parents zu entfernen.
.....
Wie könnte so ein Notify-System aussehen? Ich bin schon paar paar Mal in fremde Sourcen darüber gestolpert, aber so richtig kapiert habe das nicht. Ich wäre sehr interesiert wie man das mit einer Liste mit Notify realisiert
  Mit Zitat antworten Zitat
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 12:11 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