Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen (https://www.delphipraxis.net/165441-will-angeklickte-werte-aus-combobox-edit1-text-textfeld-anzeigen.html)

klaus9 30. Dez 2011 21:14

Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Hallo,

wie bekomme ich es hin, eine Combobox in eine Form zubringen und dann dort Werte einzufügen und anschließend möchte ich wenn ich auf die Combobox Items klicke das sich dann ein Edit1.Text Textfeld mit dem Wert befüllt ?

stahli 30. Dez 2011 21:25

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Zur Designtime: Im Objektinspektor auf Items doppelklicken und die Items im Formular eingeben.
Zur Laufzeit: ComboBox.Items.Add('Eintrag1... usw.');

In der Ereignisbehandlung ComboBox.OnChange eintragen: Edit.Text := ComboBox.Text

klaus9 30. Dez 2011 21:38

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Super Dankeschön !!!

klaus9 30. Dez 2011 21:43

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
jetzt habe ich nur noch ein kleines problem

meine datensätze in der combobox sind folgende:

"62234">Max Mustermann
"62235">Günther Muster
usw.

so werden die jetzt auch im Textfeld angezeigt, wie kann ich delphi sagen das er im text feld nur den
Namen anzeigen soll nicht die "62235"> sondern lediglich Günther Muster also nur im textfeld, in der combobox kann alles gezeigt werden ?

stahli 30. Dez 2011 21:51

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Mal zu Verständnis:

- Kommen die Daten aus einer Datenbank? Dann gäbe es u.U. auch noch die DBComboBox.
- Mit Textfeld meinst Du das Editfeld? Oder oder das Eingabefeld der Combobox?

Wenn Du das Editfeld meinstest, dann schau Dir mal die Textfunktionen "Pos" und "Copy" an.

klaus9 30. Dez 2011 21:53

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Oder besser gesagt

wenn ich hingehe und hätte zwei felder

Wenn ich Max Mustermann anklicke soll die Combobox die Mitarbeiter Nummer anzeigen und ins Textfeld übertragen.

Vielleicht ist diese variante einfacher zu lösen ?

klaus9 30. Dez 2011 21:55

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Hi,

also ich habe eine ComboBox1 und ein Edit1.Text (TEdit) Feld.

stahli 30. Dez 2011 22:01

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Du müsstest mal sagen, wie und wo die Daten herkommen. Sonst artet das in zu viel Raterei aus...

klaus9 30. Dez 2011 22:09

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
achso, sorry

habe mir die ganzen

"64553">Name 1
"67567">Name 2
"65666">Name 3
"63444">Name 4

unter Combobox1 Items reingepackt

und die Edit1.Text (Feld) habe ich mittels deiner verlinkung verbunden

jetzt erscheint in der Combobox1 der Wert aus der Item Liste wie oben und wird an das Edit1.Text Feld übertragen.

Datensätze sind also in der ComboBox hinterlegt

stahli 30. Dez 2011 22:26

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Also wenn die Daten noch an anderer Stelle getrennt vorliegen (z.B. in einer Datenbank, StringList, StringGrid o.ä.) vorliegen, könnte man den Namen anhand der Nummer ermitteln o.ä.

Wenn Du sie nur in der Form vorliegen hast, kannst Du den Text selbst zerlegen und die Teile weiterverarbeiten. Etwa so:

Delphi-Quellcode:
var
  N, V: String;
  p: Integer;
begin
  p := Pos('=', S);
  if p > 0 then
    begin
      N := Trim(Copy(S, 1, p - 1));
      V := Trim(Copy(S, p + 1, MaxInt));
    end
  else
    begin
      N := Trim(S);
      V := '';
    end;
  ...

klaus9 30. Dez 2011 22:40

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
hmm ich denke ich werde eine StringList einfügen, muß mich mal damit etwas beschäftigen wie ich da daten einfüge und wie ich diese dann mit der combobox verwende. Denke das dies, die beste möglichkeit ist.

wie kann ich denn dann Werte aus einer StringList oder TDBGrid in eine Combobox bringen ?

Bummi 30. Dez 2011 22:56

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Bei der Combobox könntest Du per
Code:
Combobox1.Items.AddObject('Max Mustermann',TObject(1234));
Combobox1.Items.AddObject('Hans Sonstwer',TObject(99999));
Daten einfügen über
Code:
Integer(Combobox1.Items.Objects(Combobox1.ItemIndex));
die Nummer für den gewählten Eintrag abfragen.

Wenn Du es datengebunden aufziehen willst solltest Du Dir die DBLookupCombox ansehen.

Datasource und Datafield bleiben in Deinem Falle leer, Du verwendest ListSource, ListField und Keyfield

stahli 30. Dez 2011 22:57

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Du musst Dich erst mal entscheiden, wie Du Deine Daten eigentlich verwalten willst.
Was brauchst Du denn für Daten? Wo kommen die her? Du tippst doch sicher nicht alles von Hand ein.

Welches Delphi hast Du? Hast Du schon mit Datenbanken gearbeitet?

Wenn wir das genauer einordnen können, können wir sicher auch bessere Tipps geben...

Mit StringListen kann man recht einfach Keys und Values verwalten:
Id1=Name1
Id2=Name2
Id3=Name3

Ein DBGrid kannst Du einsetzen, wenn Du eine Datenbank verwendest. Das dient aber dann nur der Anzeige und Bearbeitung von Daten. Die Daten selbst bezieht man direkt aus den Tabellen der Datenbank.

Schreib mal etwas mehr über Dein Projekt.

klaus9 31. Dez 2011 17:19

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Hallo,

super vielen Dank.

Jetzt habe ich es hinbekommen, werde mal die Tage ein Demo Source Code hochladen, damit andere diese nur anpaßen brauchen und dann auch Ihre Lösung zusammen haben.

Dankeschön nochmal und einen Guten Rutsch.

klaus9 15. Jan 2012 00:33

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Hallo,

jetzt habe ich noch ein Problem..

Ich habe eine reihe Comboboxen hintereinander gelegt.

Combobox1
Combobox2
Combobox3
usw.
alle haben jeweils die selben werte, die einen Text in ein Textfeld übergeben.

Nun will ich gerne wenn ich bei der Combobox2 doppel klick mache, das die sich die Werte aus Combobox1 holt.

Bastel ich mir einen Code zusammen, macht er dies auch über den befehl unter DblClick

Combobox2.text = Combobox1.text;

Aber dieses funktioniert nicht wenn ich in meinem Tool bin, dort passiert garnichts beim doppel klick.


Die Comboboxen haben folgennden Code bei onchange

Delphi-Quellcode:
 
var
  ID: Integer;
begin






  ID := ComboBox1.ItemIndex;
  if (ID >= 0) and (ID < ComboBox1.Items.Count) then
    Form1.dsp.Text := IntToStr(Integer(ComboBox1.Items.Objects[ID]))  //Edit1.Caption
  else
    Form1.dsp.Text := 'Kein Item gewählt!';   //Edit1.Caption


Also wenn dieses so nicht möglich ist, dann würde ich gerne folgendes machen.

Edit1.text = Mitarbeiter Name1
Edir2.text = Mitarbeiter Nummer1
Edit3.text = Mitarbeiter Name2
Edit4.text = Mitarbeiter Nummer2
usw

eine Combobox die im Index mit Edit1.text anzeigt aber mit Nummer in ein Edit100.text feld übergibt.

Das wäre auch eine Möglichkeit, nur wie setze ich das um ?

klaus9 15. Jan 2012 01:16

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Hallo,

habe jetzt rausgefunden woran es liegt.

Wenn ich bei mir die Combobox auf DropdownList eingestellt habe und versuche von der Combobox2 den inhalt der Combobx1 zu übernehmen, geht es nicht. Wenn ich umstelle auf csDropDown funktioniert es, die werte zu übernehmen. Weiß zwar nicht warum es nicht mit der csDropDownList funktioniert, aber klappt mit csdropdown ja auch.

Jetzt muß ich nur noch folgendes herausfinden:

Wie kann ich der Combobox sagen, die soll befüllt werden mit den texten

aus Edit1.text als Combobox Index Wert und wenn dieser angeklickt wird, soll er mir Edit2.text in Edit100.text einfügen.

stahli 15. Jan 2012 01:21

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Vielleicht ist es schon zu spät für mich ;-), aber ich kann Dir gerade nicht folgen.
Hilft Dir den Hinweis, dass man auch ItemIndex etwas zuweisen kann?
Ansonsten formuliere Deine Frage morgen nochmal anders.

klaus9 15. Jan 2012 01:30

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Huhu,

ja versuche es mal ;-) etwas besser zu formuliern.

Habe eine Anwendung


Combobox1

Edit1 = Name
Edit2 = Nummer

Edit3 = Zielfeld

In Combobox1 steht Edit1.text als Auswahl, wenn ich darauf klicke soll Edit2 Feld im Edit3 Feld angezeigt werden.


Edit2 nach Edit3 zu schieben geht ja über den befehl

Delphi-Quellcode:
Edit3.text := Edit2.text
wie bekomme ich jetzt die Combobox dazu den befehl auszuführen

Coffeecoder 15. Jan 2012 08:28

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Zitat:

Zitat von klaus9 (Beitrag 1146014)

wie bekomme ich jetzt die Combobox dazu den befehl auszuführen

Hi erstmal,

Ich würde einen Button machen und in der OnClick-Methode dieses implementieren: ShellExecute(Combobox.items[Combobox.itemindex])

Ist es sowas was du suchst?

Sir Rufo 15. Jan 2012 08:32

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Na ob das jetzt besser formuliert ist ...

anyway, wenn du auf ein Klick-Ereignis der ComboBox reagieren willst, dann nimm doch von der ComboBox das OnClick-Event.

EDIT:

Ich weiß nicht ob du es schon weißt, aber man kann die ganzen Controls auch mit einem beliebigen Namen versehen.
Eine großartige Erfindung, denn dann muss man keine gedanklichen Verrenkungen machen um zu wissen, was wo stehen sollte.
Delphi-Quellcode:
Mitarbeiter1_Name : TEdit;
Mitarbeiter1_Nummer : TEdit;
Mitarbeiter_Auswahl : TComboBox;

klaus9 15. Jan 2012 11:10

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

danke ich glaub ich habe mein Problem jetzt so halbwegs im hinbekommen.

Als Anhang mal ein Beispiel Code, der einmal eine Combobox befüllt per Button und Laden und Speichern kann.

Jetzt habe ich nur ein großes Problem, wenn ich bei dem Code auf speichern gehe, speicher er mir nur den Namen nicht die Nummer

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items.AddObject('Bitte wählen', TObject(0));
ComboBox1.ItemIndex := 0;
ComboBox1.Items.AddObject('test1', TObject(1));
ComboBox1.Items.AddObject('test2', TObject(2));
end;
würde gerne beide werte "Test1" und Tobject"1" usw. speichern..

das funktioniert leider nicht so gut.. sonst müßte ich meine combobox Probleme erstmal im griff haben

DeddyH 15. Jan 2012 11:13

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
TComboBox.Items ist vom Typ TStrings. Ein SaveToFile speichert daher auch nur die enthaltenen Strings und nicht die Objekte. Letzteres wäre auch ziemlich sinnlos, da das intern Pointer sind, die ja jedesmal andere Adressen bekommen. Deshalb wirst Du Dir eine eigene Speicherroutine schreiben müssen.

mkinzler 15. Jan 2012 11:16

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Du speicherst ja auch nur den Text

stahli 15. Jan 2012 11:21

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Suche mal Hinweise zu "Objekte serialisieren".

Du solltest überlegen, ob Du nicht eine Datenbank verwenden kannst.
Man kann zwar auch Daten aus Objekten speichern, muss das aber von aufwendig von Hand machen.
Und das Wiederherherstellen der "gespeicherten Objekte" wird noch schwieriger (vor allem, wenn die Anzahl der Objekte variieren kann).

Wenn Du 5 Objekte speichern willst und GENAU DIESE 5 OBJERKTE später wieder laden willst, dann bietet sich ein TIniFile dazu an.

Wenn Du aber beliebig viele Objekte aus einer Liste (z.B. viele Kunden) speichern und später wieder herstellen willst, dann nutze besser eine andere Lösung.

DeddyH 15. Jan 2012 11:25

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Verstehe ich nicht. Mit TIniFile geht das auch variabel, solange man sich auf primitive Datentypen beschränkt.

mkinzler 15. Jan 2012 11:25

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Ist aber umständlicher

klaus9 15. Jan 2012 11:36

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
oh jee, so fit bin ich leider nicht in delphi :-(

hmm also ich habe eine Liste mit Mitarbeitern und Nummern.

Wir stellen nur ab und an mal neue Mitarbeiter ein, gekündigte bleiben in der Liste erstmal stehen.

hatte auch überlegt das ganze mal über eine ValueList zu machen nur die werte bekomme ich leider nicht in eine combobox..

naja und so richtig fit in delphi bin ich auch nicht..

klaus9 15. Jan 2012 11:38

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Also

der Name vom Mitarbeiter und auch die nummer bleiben immer fest, werden nicht geändert.

sprich Name1 = 1
Name2 = 2

klaus9 15. Jan 2012 11:40

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
gibt es irgendwo anleitungen wie man eine speicherroutine schreiben müßte

mkinzler 15. Jan 2012 11:48

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
http://www.delphipraxis.net/153260-o...alisieren.html
http://stackoverflow.com/questions/3...ti-and-not-cus

Btw. Bitte versuche nich zu Pushen. Wenn dir noch etwas einfällt, nachdem du gepostet hast und noch keiner geantwortet hat, kannst du deinen letzten Beitrag innerhalb von 24-Stunden bearbeiten/ergänzen.

klaus9 15. Jan 2012 21:23

AW: Will angeklickte Werte aus Combobox in Edit1.Text Textfeld anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

alles klar wußte ich nicht.. werd mich ab sofort dran halten..

So also ich habe jetzt mal auf euren Rat hin mal für die Datenbank variante entschieden..

Habe wie im aktuellen code folgendes zusammengebastelt..

Jetzt steh ich aber vor dem nächsten combobox Problem :-( ARGGHH.. bin echt froh wenn das mal alles steht..

Wie kann ich nun der DBCOMBOBOX1 sagen, er soll mir als Index den Inhalt des DBGRID Feld "Mitarbeiter" auflisten und bei auswahl dann das GRID Feld "Nummer" in ein Edit1.Text Feld ausgeben..

Wenn ich das hinbekomme wäre ich super glücklich..

vielleicht hat jemand eine Idee..

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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