AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStrings Speicher

Ein Thema von Quake · begonnen am 23. Mär 2006 · letzter Beitrag vom 24. Mär 2006
Antwort Antwort
Seite 1 von 3  1 23      
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#1

TStrings Speicher

  Alt 23. Mär 2006, 07:55
Moin moin.

Ist das so richtig? Wenn ich in einem Form zwei ComboBoxen habe und in beiden Dropdownlisten den selben Inhalt haben möcht und dazu diese Zeile im Code Verwende
ComboBox2.Items=ComboBox1.Items dass die Liste dann nur einmal im Speicher liegt?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TStrings Speicher

  Alt 23. Mär 2006, 07:57
Zitat von Quake:
Moin moin.

Ist das so richtig? Wenn ich in einem Form zwei ComboBoxen habe und in beiden Dropdownlisten den selben Inhalt haben möcht und dazu diese Zeile im Code Verwende
ComboBox2.Items=ComboBox1.Items dass die Liste dann nur einmal im Speicher liegt?
Nein. Jede ComboBox muss/wird eine eigene Liste im Speicher halten. Das obige Konstrukt greift auf das Property Items zu und in der Setter-Methode wird die Stringliste kopiert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:07
Wie kann ich das dann anstellen, dass die Liste nur einmal im Speicher gehalten wird? Irgendwie nur einen Pointer zuweisen?
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:14
Hallo,
Zitat von Quake:
Wie kann ich das dann anstellen, dass die Liste nur einmal im Speicher gehalten wird? Irgendwie nur einen Pointer zuweisen?
Da wirst Du keinen Erfolg haben. Die Controls werden immer eigene Listen haben.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:15
Zitat von Quake:
Wie kann ich das dann anstellen, dass die Liste nur einmal im Speicher gehalten wird? Irgendwie nur einen Pointer zuweisen?
Geht nicht, solange du die Default-ComboBox verwendest. Was würde wohl passieren wenn Du ComboBox1 freigeben würde? ComboBox1 würde seine eigene Liste freigeben und beim nächsten Zugriff von ComboBox2 würde es krachen da ja ComboBox2 versucht auf die freigegeben Liste zuzugreifen.

Was stört dich daran ein paar Zeilen Synchronisationscode zu schreiben? Du könntest Versuchen per Ownerdraw den Inhalt der einen ComboBox in der anderen zu zeichen, aber ob das einfacher ist?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:23
Das was mich stört ist die Speicherplatzverschwendung.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:28
Also das was du da mehr an Speicher brauchst, ist im Vergleich zu deiner restlichen Anwendung wohl vernachlässigbar.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:39
Du weist ja nicht wie groß meine Stringliste ist . Sie kann bei mir schon ein paar 1000 Einträge haben.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:49
Hallo,
Zitat von Quake:
Du weist ja nicht wie groß meine Stringliste ist :wink: . Sie kann bei mir schon ein paar 1000 Einträge haben.
Nun ja. Bei 5000 Strings @ 20 Zeichen (plus 4 Byte Größe) sind das gerade einmal 120.000 Bytes (5000 * (20 + 4)), sprich 117 KB. Das sollte zu verschmerzen sein.

Gruß
xaromz
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: TStrings Speicher

  Alt 23. Mär 2006, 08:57
Naja, bei 1GB Arbeitsspeicher wird es wenig ins Gewicht fallen. Aber wenn alle Programme so programmiert sind ist das schon schlecht. Aber gut, ich will hier keine Grundsatzdiskusion anfangen. Ich werd es dann wohl so machen müssen.

Vielen Dank an alle
Martin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 04:04 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