![]() |
Variablenübergabe bei ComboBoxes
ich will ja nicht nerven, aber wo ihr mir doch so schnell und gut geholfen habt, probier ichs gleich nochmal, schauts a mal was ich hier hab:
Code:
ich hab also ne sql abfrage und schreibe dann immer schön alle einträge aus T_Text, wo ID_Text_Typ=ID_Text_Typ ist, in meine ComboBox
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM T_Text WHERE (ID_Text_Typ=' + IntToStr(ID_Text_Typ) + ')'); Query1.Open; ComboBox2.Items.Clear; while not Query1.Eof do begin ID_Text := StrToInt(Query1.FieldByName('ID_Text').AsString); ID_User := StrToInt(Query1.FieldByName('ID_User').AsString); ComboBox2.Items.AddObject(Query1.FieldByName('Name').AsString, TObject(ID_Text)); Query1.Next; end; Query1.Close; da ich noch im anschluss eine weitere funktion ComboBoxchange (onChange-Funktion) habe in der ich ID_Text benötige hab ich das schonmal SELBSTSTÄNDIG mit dem addobject hingekriegt darüberhinaus bräuchte ich in der folgenden funktion allerdings noch ID_User, die Variable hab ich oben schonmal definiert, weiss nur leider nicht wie ich die auch noch übergeben und dann in der nächsten funktion abfragen könnte :/ gibts vielleicht ne andere möglichkeit unbegrenzt viele variablen mit ner combobox zu übergeben, ohne die direkt in die items zu integrieren? :coder: |
Hallo FlatG,
du nervst doch nicht :mrgreen: . Also wenn ich dich richtig verstehe, willst du mehrere Einträge in eine ComboBox eintragen. Items ist ein Objekt der Klasse TStrings. Diese kann pro Eintrag genau einen String und ein beliebiges von TObject abgeleitetes Objekt übernehmen. Wenn du also mehrere Werte übernehmen willst, kannst du eine von 2 möglichen Lösungen wählen: 1. Zu baust den String so zusammen, dass du ihn hinterher wieder auseinander dividieren kannst. (Z.B. durch CommaSeparatedValues [eine Liste von Einträgen, die durch ein Trennzeichen z.B. ";" getrennt wird). Jeder String sieht dann eventuell so aus: Eintrag1;Eintrag2;Eintrag3 2. Du definierst eine neue Klasse: TMyObjects:
Code:
Wenn du durch die Query läufst erzeugst du ein neues Objekt dieser Klasse:
TMyObjects = class(TObject)
Eintrag1 : String; Eintrag2 : Integer; Eintrag3 : String; Eintrag4 : Boolean; end;
Delphi-Quellcode:
Übrigens: bei der ersten Lösung sind alle Ergebnisse sofort in der ComboBox sichtbar, bei der zweiten sind ist das Objekt unsichtbar.
NextEntry := TMyObjects.Create(Self);
NextEntry.Eintrag1 := ... ... NextEntry.Eintrag4 := ... { jetzt in die Combobox packen } ComboBox2.Items.AddObject(Query1.FieldByName('Name').AsString, NextEntry); |
jo danke tschön, habs dank deiner hilfe jetzt tiptop hingekriegt :dancer:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 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