AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi [FMX] Combobox per Code mit Daten füllen

[FMX] Combobox per Code mit Daten füllen

Ein Thema von Devil1925 · begonnen am 7. Feb 2017 · letzter Beitrag vom 17. Feb 2017
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 7. Feb 2017, 09:06
Delphi-Quellcode:
for i := 0 to sl.Count-1 do
  self.combobox.Items.Add(sl[i]);
Etwas wie ComboBox.Items.AddStrings(SL); gibt es im FMX nicht?

Aber bei
Die Query für die Daten wird ebenfalls dynamisch erstellt.
könnte man auch direkt an eine DB-Verbindung nachdenken (wenn die Query bestehen bleibt die Daten die ganze Zeit geladen bleiben), also per LiveBinding die ComboBox an die Query binden.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 7. Feb 2017, 09:36
zum Thema Livebindings: kann man die so ohne weiteres Setzen im Code? weil ich ja nicht im vorraus schon weis wie viele Comboboxen ich habe und dementsprechend wie viele Querys ich generiere.
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#3

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 7. Feb 2017, 10:55
Sind LiveBindings mittlerweile alltagstauglich? Ich hörte noch im letzten Jahr gegenteiliges. Vergleiche dazu http://www.delphipraxis.net/190729-w...ebindings.html und den daran angeschlossenen G+ Thread.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 7. Feb 2017, 11:26
Moin...
Zitat:
Sind LiveBindings mittlerweile alltagstauglich?
[meine Meinung]
Ich habe es mal probiert... Ich hatte mir erhofft das der QT übersichtlicher wird und das Verdrahten der visuellen Controls ein einfacher sein müßte...
Versuch:
Visuelle Controls an eine generische Liste mit Objekten hängen: Im Ergebnis habe ich mehr Code Zeilen gehabt und die Übersicht hat gelitten. Der klassische Weg war deutlich einfacher. Schade drum...
[/meine Meinung]
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 7. Feb 2017, 12:41
[QUOTE=himitsu;1360986]
Delphi-Quellcode:
for i := 0 to sl.Count-1 do
  self.combobox.Items.Add(sl[i]);
Etwas wie ComboBox.Items.AddStrings(SL); gibt es im FMX nicht?

Natürlich. Vermutete nur dass die Schleife für den Anwendungsfall passender ist.
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 7. Feb 2017, 13:03
Also mir ist bisher halt nur der Weg für die direkte verbindung von Query (TUniQuery) und einer Combobox (TComboBox) über die Livebindings bekannt, welche im Designer erstellt werden. Wenn mir da jemand erklären könnte wie man die Codetechnisch erzeugen kann / mir dafür ein gutes Tutorial empfehlen kann, wäre ich diesem jemand sehr Dankbar!

Alternativ lasse ich mich auch gerne belehren über alternative sinnvolle möglichkeiten die Daten aus einer UniQuery in eine ComboBox einzufügen. Wie ich das mit einer Stringlist machen soll habe ich noch nicht verstanden, ich wäre jetzt mit einer Schleife die Query durchgegangen und hätte jeden eintrag einzeln in der Combobox angelegt. Allerdings erscheint mir das eher weniger sinnvoll. (Oder irre ich mich da?)
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.
  Mit Zitat antworten Zitat
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 15. Feb 2017, 08:06
Mein Bisheriger Versuch sieht folgendermaßen aus und funktioniert leider nicht, kann mir da jemand verraten, wo ich da meinen Fatalen Fehler mache?

(Ich vermute irgendwo in der zuweisung Link zu Combobox)

Delphi-Quellcode:
procedure TForm14.Button2Click(Sender: TObject);
var BS:TBindSourceDB;
    CB:TCombobox;
    Link:TLinkListControlToField;
    Query:TUniQuery;
begin
  Query := TUniQuery.Create(Self);
  Query.Connection := Conn;
  Query.SQL.Text := 'Select * from Lieferan';
  Query.Open;


  BS := TBindSourceDB.Create(Self);
  BS.DataSet := Query;

  CB := TCombobox.Create(Rectangle1);
  CB.Parent := Rectangle1;

  Link := TLinkListControlToField.Create(Self);
  Link.AutoActivate := True;
  Link.Category := 'Schnelle Bindung';
  Link.Control := CB;
  Link.DataSource := BS;
  Link.FieldName := 'Name1';

  BS.DataSet.Open;
end;
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.
  Mit Zitat antworten Zitat
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 15. Feb 2017, 15:13
irgendwer eine Idee / einen Stoß in die richtige Richtung oder ähnliches? oder ist es wirklich das Sinnvollste die Query Datensatz für Datensatz zu durchlaufen?
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#9

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 15. Feb 2017, 16:21
Wenn du die Verbindung mit LiveBindings-Editor machst legt der LB-Editor die entsprechenden Komponenten richtig an.
Die kannst du dir mal anschauen im Dfm.Modul in der Text-Ansicht, und das dann womöglich zur Laufzeit von Hand selber schreiben, wenn es das ist was du meinst ?

Ansonsten die ComboBox wirklich von Hand, ohne LiveBindings beschreiben.
Mit durchlaufen von Dataset.First, Dataset.Next, etc.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: [FMX] Combobox per Code mit Daten füllen

  Alt 16. Feb 2017, 08:05
Danke an alle, die mir input gegeben habe! Ich habe nun eine Funktionierende Lösung!

Delphi-Quellcode:
procedure TForm14.FillList(DataSet:TUniQuery; Control:TControl; FieldName:String);
var
    BindSourceDB : TBindSourceDB;
    BindingsList : TBindingsList;
    LinkListControlToField : TLinkListControlToField;
begin

    BindSourceDB := TBindSourceDB.Create(nil);
    BindSourceDB.DataSet := DataSet;
    BindSourceDB.DataSource.Enabled := true;
    BindSourceDB.DataSet.Active := true;

    BindingsList := TBindingsList.Create(BindSourceDB);

    LinkListControlToField := TLinkListControlToField.Create(BindingsList);
    LinkListControlToField.Control := Control;
    LinkListControlToField.DataSource := BindSourceDB;
    LinkListControlToField.FieldName := FieldName;
    LinkListControlToField.Active := true;
end;
gefunden habe ich die gerade hier.
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.

Geändert von Devil1925 (16. Feb 2017 um 08:08 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

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 05:35 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