AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox.Items.AddObject?

Ein Thema von Delphi-Coder · begonnen am 20. Jan 2003 · letzter Beitrag vom 26. Aug 2017
Antwort Antwort
Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#1

ComboBox.Items.AddObject?

  Alt 20. Jan 2003, 11:13
Hallo,
ich brauch mal wieder eure Hilfe! Ich möchte eine ComboBox mit AddObject füllen!
Das Programm holt sich aus einer DB Namen,Vornamen und PersonenID von bestimmten Personen! Nach dem Anwählen soll er die PersonenID in eine andere DB schreiben. Die PersonenID soll aber nicht in der ComboBox stehen.
Wie kann ich die Namen,Vorname (als String) und die PersonenID (als Objekt) mit AddObject in die ComboBox einfügen? Und wie kann ich das Objekt des gewählten Eintrages wieder auslesen?

Ok, vielen Dank!

Bis denne!
Delphi-Coder
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 20. Jan 2003, 12:03
Hallo Delphi-Coder,

falls die ID ein Integer Wert ist, kann man sich einen Trick zu nutze machen, der darauf basiert, dass ein TObject nicht anderes als eine Adresse ist.

Delphi-Quellcode:
...
    cb1.Items.AddObject(Table1Vorname.AsString
                      +' '
                      +Table1Nachname.AsString,
                      TObject(ID));
   { ID des ersten Eintrages anzeigen }
   ShowMessage(IntToStr(Integer(cb1.Items.Objects[0])));
Du castest die ID einfach als TObject. Und beim Auslesen kehrst du die Umwandlung um. Wenn du lieber eine saubere Lösung hättest , sag bescheid, die kann ich auch liefern.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 20. Jan 2003, 12:10
Danke für die schnelle Hilfe! Diese Lösung reicht mir schon! Ich werd's gleich mal probieren...

Delphi-Coder

EDIT: Hat alles funktioniert... Danke
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
317 Beiträge
 
Delphi 12 Athens
 
#4

AW: ComboBox.Items.AddObject?

  Alt 25. Aug 2017, 14:20
Warum geht das eigentlich mit Integer und nicht mit Int64? Hier mal ein Beispiel - als Ergebnis kommt immer ein 32bit-Integer (max. 10 Stellen) raus...

Delphi-Quellcode:
var S,R: Int64;
begin
S:=123456789012345;
ListBox1.Items.Clear;
ListBox1.Items.AddObject('Testeintrag', TObject(S));
R:=Int64(ListBox1.Items.Objects[0]);
showmessage(R.ToString);
end;

Geändert von Papaschlumpf73 (25. Aug 2017 um 14:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock
Online

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ComboBox.Items.AddObject?

  Alt 25. Aug 2017, 14:30
Weil man davon ausgeht, nicht mehr als maxInt Einträge zu benötigen, und somit nur halb so viel Speicherplatz benötigt als mit Int64 vielen Einträgen...

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

Registriert seit: 3. Mär 2014
Ort: Berlin
317 Beiträge
 
Delphi 12 Athens
 
#6

AW: ComboBox.Items.AddObject?

  Alt 25. Aug 2017, 14:34
Schade, ich habe nur ca. 100 Einträge. Die Referenz-ID aus einem anderen System sind jedoch Int64. Zu blöd…
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: ComboBox.Items.AddObject?

  Alt 25. Aug 2017, 15:29
Du könntest dir natürlich auch eine Klasse bauen die den Wert enthält. Eventuell kannst du da ja noch ein paar zusätzliche Werte mit reinpacken. Ansonsten wäre eine klasse wohl etwas overkill.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.016 Beiträge
 
Delphi 12 Athens
 
#8

AW: ComboBox.Items.AddObject?

  Alt 25. Aug 2017, 15:37
Warum geht das eigentlich mit Integer und nicht mit Int64?
Geht schon - wenn du das Projekt auf Zielplattform 64-Bit-Windows compilierst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ComboBox.Items.AddObject?

  Alt 25. Aug 2017, 19:07
Oder du machst das, wie es in der VCL eigentlich vorgesehn ist?

Bau dir ein Datenobjekt, pack da deine ID rein und häng dieses Objekt an das Item.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
317 Beiträge
 
Delphi 12 Athens
 
#10

AW: ComboBox.Items.AddObject?

  Alt 26. Aug 2017, 15:51
Danke für die Tipps...
  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 12:05 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