AGB  ·  Datenschutz  ·  Impressum  







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

Items in ComboBox schreiben

Ein Thema von ByTheTime · begonnen am 8. Nov 2011 · letzter Beitrag vom 10. Nov 2011
Antwort Antwort
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Items in ComboBox schreiben

  Alt 8. Nov 2011, 21:19
Hallo,
In meiner Anwendung gibt es eine Art "Itemmanager", mit dem der Anwender seine eigenen "Inhalte" einfügen kann, um sie nicht immer wieder neu einzutippen. Der soll eigentlich so funktionieren:

In meiner ComboBox gibt es Kategorien: "--- Kategorie 1 ---", "--- Kategorie 2 ---". Im OneExit der ComboBox habe ich eine if-Abfrage rein, die erkennt wenn das angwählte Element eine der Kategorien ist, dann leert sie die ComboBox (nur so zur Info ).

Jetzt zu meiner Frage:
Ich habe mir vorgestellt, das es 1 Editfeld und eine ComboBox gibt. Der Anwender schreibt den Itemnamen in das Editfeld und wählt in der ComboBox die Kategorie aus. Aber wie füge ich das Element hinzu? ICh hätte folgendes gemacht:
Delphi-Quellcode:
// Achtung, habe ich nicht getestet, war nur 'ne Überlegung, werde es gleich ausprobieren!
ComboBox1.Items.Add(ComboBox1.Items.IndexOf(ComboBoxKategorie) + 1];
Aber jetzt die Probleme:
1. Was wenn dort schon etwas steht? Wie richte ich am besten eine Schleife ein, die den Vorgang solange wiederholt, bis dort nichts mehr steht?
2. Gibt es auch eine .SaveToFile-Funktion, iwie muss ich die Items ja auch speichern...


Danke

Lukas
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Items in ComboBox schreiben

  Alt 8. Nov 2011, 21:30
// Achtung, habe ich nicht getestet, war nur 'ne Überlegung, werde es gleich ausprobieren!
Und warum probierst du es nicht vor dem Beitrag schreiben aus?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Items in ComboBox schreiben

  Alt 8. Nov 2011, 22:48
Grundsätzlich sollte man sich folgendes merken:

Eine GUI-Komponente ist ein denkbar schlechter Ort zum Verwalten von Daten.
Diese sollten ausschließlich gemäß ihrer Bestimmung verwendet werden.

Ein Problem hast du ja selber schon angeführt: Wie speichert man das denn jetzt?

Legt man die Verwaltung der Daten so an, dass diese zum Anzeigen ganz toll sind, steht man sich spätestens beim nächsten Schritt (verarbeiten, speichern) schon wieder auf den Füßen.

Also die Daten so speichern, dass die Verarbeitung optimal erfolgen kann.

Für die Funktionen Anzeige und Speichern erstellt man sich einfach Klassen, die das erledigen.

z.B. für das Anzeigen in einer ComboBox
Delphi-Quellcode:
type
  TMyDataToComboBox = class( TComponent )
  private
    fComboBox : TComboBox;
    fValues : TMyValueList;
    procedure SetComboBox( Value : TComboBox );
    procedure SetValues( Value : TMyValueList );
    function GetValue : TMyValue;
    procedure SetValue( Value : TMyValue );
  public
    property Value : TMyValue read GetValue write SetValue;
  published
    property ComboBox : TComboBox read fComboBox write SetComboBox;
    property Values : TMyValueList read fValues write SetValues;
  end;
Die Methoden SetComboBox und SetValues müssen dafür sorgen, dass die ComboBox mit den Werten gefüllt wird.
Die Methode SetValue ermittelt den Index des Wertes und setzt den ItemIndex der ComboBox
GetValue macht das eben andersherum und ermittelt über den ItemIndex der ComboBox den zugehörigen Wert und liefert diesen Wert zurück.

Der Lohn der Mühe:
Delphi-Quellcode:
procedure TForm1.Create( AOwner : TComponent );
begin
  inherited;
 
  MyDataPresenter := TMyDataToComboBox.Create( Self );
  MyDataPresenter.ComboBox := ComboBox1;
  MyDataPresenter.Values := MyValues;
  MyDataPresenter.Value := MyValue;
  
end;
und schon sollten alle Werte in der ComboBox stehen und diese auch auf den aktuellen Wert verweisen.
Um die ComboBox jetzt zu aktualisieren reicht dann:
Delphi-Quellcode:
MyValues.Add( MyNewValue );
MyDataPresenter.Values := MyValues;
MyDataPresenter.Value := MyNewValue;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#4

AW: Items in ComboBox schreiben

  Alt 10. Nov 2011, 21:13
Jop danke, funktioniert...
Lukas
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:34 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