AGB  ·  Datenschutz  ·  Impressum  







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

Comboboxen dynamisch füllen

Ein Thema von RWarnecke · begonnen am 28. Mai 2006 · letzter Beitrag vom 28. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 14:39
Hallo,

ich möchte gerne Comboboxen dynamisch mit werden füllen. Diese möchte ich in meinem Programm fest definieren ohne das der User darauf zugriff hat oder Sie verändern kann. Ich möchte aber auch wiederum diese Listen einfach erweitern können ohne das ich das ganze Programm neu verteilen muss bei einem Update.

Ich habe da als erstes an Stringtables in RES-Dateien gedacht. Weiß aber nicht so richtig, wie ich das umsetzen soll. Ich bin natürlich für jeden anderen Vorschlag auch offen.

Wie würdet Ihr das Problem lösen ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 14:43
Verwende doch einfach die .LoadFromFile- oder .LoadFromStream-Methode der Liste.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 14:55
Bei LoadFromFile, kann ich ja nur ein Textfile laden. Dieses Textfile kann aber der User über einen Editor leicht ändern, was ich ja nicht will. Mit der LoadFromStream-Methode habe ich noch nicht gearbeitet. Welchen Vorteil bietet mir diese Methode ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 14:57
Der Stream kann auch aus der Ressource stammen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 14:58
Zitat von RWarnecke:
ohne das ich das ganze Programm neu verteilen muss bei einem Update.
Also wenn es nur um die ComboBoxen geht, ist mein Vorschlag vielleicht etwas übertieben, aber wenn es auch mehrere andere Elemente und häufige Veränderungen betrifft, kannst du ja mal an die Möglichkeit der Verwenung von DLLs denken.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
drschubi

Registriert seit: 18. Dez 2003
94 Beiträge
 
#6

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 14:58
Hallo Rolf, ich mach das so
Delphi-Quellcode:
procedure TForm1.fillcb;
var
  Progdir: string;
  CBList: TStringlist;
begin
  ProgDir := ExtractFilePath(ParamStr(0));
  CBList := TStringlist.create;
  with CBList do
    begin
      Sorted := True;
      Duplicates := dupIgnore;
      CBList.LoadFromFile(progdir + 'anrufer.dat');
      CBAnrufer.Items.Addstrings(CBList);
    end;
  CBList.Free
end;
CBAnrufer ist die Combobox,i ch lade die Daten aus der anrufer.dat, die eine normale editierbare Textdatei ist.

Gruß Schubi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 15:06
@drschubi: Die Lösung mit der editierbaren datei wollte er ja nicht (siehe #3)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 15:07
Zitat von drschubi:
Hallo Rolf, ich mach das so
Delphi-Quellcode:
procedure TForm1.fillcb;
var
  Progdir: string;
  CBList: TStringlist;
begin
  ProgDir := ExtractFilePath(ParamStr(0));
  CBList := TStringlist.create;
  with CBList do
    begin
      Sorted := True;
      Duplicates := dupIgnore;
      CBList.LoadFromFile(progdir + 'anrufer.dat');
      CBAnrufer.Items.Addstrings(CBList);
    end;
  CBList.Free
end;
CBAnrufer ist die Combobox,i ch lade die Daten aus der anrufer.dat, die eine normale editierbare Textdatei ist.

Gruß Schubi
Und genau so möchte ich es nicht machen. Lese bitte nochmals meinen ersten Beitrag. Die Dateien sollen nicht mit einem einfach Texteditor editierbar sein.

Zitat von faux:
Also wenn es nur um die ComboBoxen geht, ist mein Vorschlag vielleicht etwas übertieben, aber wenn es auch mehrere andere Elemente und häufige Veränderungen betrifft, kannst du ja mal an die Möglichkeit der Verwenung von DLLs denken.
Danke für den Vorschlag faux, ich werde diese Möglichkeit als letztes in Betracht ziehen, wenn es vielleicht noch eine andere Möglichkeit gibt.

EDIT :
Hier hat SirThornberry eine Function gepostet. Verstehe ich das richtig, das mit dieser Funktion direkt die RES-Datei aufgerufen wird ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
drschubi

Registriert seit: 18. Dez 2003
94 Beiträge
 
#9

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 15:14
Stimmt, habe ich wohl nicht richtig gelesen

Einen schönen Sonntag noch

Schubi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Comboboxen dynamisch füllen

  Alt 28. Mai 2006, 15:44
Dann verschlüssel die Datei doch einfach.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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