AGB  ·  Datenschutz  ·  Impressum  







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

Combobox items, anderen strings zuweisen

Ein Thema von sun4623 · begonnen am 17. Mär 2010 · letzter Beitrag vom 17. Mär 2010
Antwort Antwort
sun4623

Registriert seit: 6. Jan 2010
40 Beiträge
 
#1

Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 06:08
Hallo und Guten Morgen

ich habe hier eine Combobox mit einträgen wie: (highscore , dreamcast , games) Diese Combobox wird in verschiedenen Prozeduren (1,2,3) benützt, jedoch sind die strings von Prozedur2 und prozedur3 anders wie die einträge der Combobox. Z.b. muss ich in Prozedur2 nicht den standart Combobox.text Dreamcast sondern DCast,oder anstelle von highscore hscore nehmen . Ich kann mich noch an ein paar code schnippsel erinnern in denen das ""problem"" recht simpel gelöst wurde. In der verwendeten Prozedur wurden die einträge der combobox ,einfach den passenden strings zugeteilt. Wie ging das nochmal?


Prozedur2;
....
....
combobox.item.... :=Dcast;
combobox.item.... :=hscore;
....
ShowMessage(Dcast);
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 06:37
Morgen!

Schau dir mal den Thread an, da könnte was bei sein.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
sun4623

Registriert seit: 6. Jan 2010
40 Beiträge
 
#3

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 07:32
Hallo

Danke. Aber Nein ,dass war glaube ich nicht das was ich gesucht hatte... WEnn ich z.b. in der Combobox die auswahl "Dreamcast" gewählt habe möchte ich das in einer Prozedur der string Dcast verwendet wird.
Anhand dieses Beispiels soll mit jedem eintrag der Combobox bzw jeder selektion verfahren werdem. Wie mache ich das?

LG
sun
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 07:47
Ich weiß zwar noch nicht genau, was du meinst, aber folgender Befehl gibt den aktuell selektierten Eintrag zurück:

Delphi-Quellcode:
  if cbBox.ItemIndex <> -1 Then // -1 = Kein Eintrag ausgewählt -> nichts machen, sonst fliegt uns alles um die Ohren :)
   ShowMessage(cbBox.Items[cbBox.ItemIndex]);


[EDIT: Ein Haufen Rechtsschreibfehler behoben, den Rest dürft Ihr behalten]
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 07:50
Zitat von sun4623:
Z.b. muss ich in Prozedur2 nicht den standart Combobox.text Dreamcast sondern DCast,oder anstelle von highscore hscore nehmen .
Das klingt mir nach einer weniger gut durchdachten Programmstruktur.

Wäre es nicht sinnvoller, intern die gleichen Namen oder Konstanten zu verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 07:57
Zitat von Matze:
Das klingt mir nach einer weniger gut durchdachten Programmstruktur.
... das war auch mein Gedanke. Ich denke aber, ich habe jetzt verstanden, was der TE möchte. Ich würde es zwar etwas komplexer und sauberer Lösen (Programmstruktur müsste aber vermutlich ganz anders konzipiert sein), aber folgende Lösung wäre ein Ansatz:

Delphi-Quellcode:
 VAR
   arrayProz1, arrayProz2 : array[1..3] of String;

 [...]

 arrayProz1[1] := 'String1_Proz1';
 arrayProz1[2] := 'String2_Proz1';
 arrayProz1[3] := 'String3_Proz1';

 arrayProz2[1] := 'String1_Proz2';
 arrayProz2[2] := 'String2_Proz2';
 arrayProz2[3] := 'String3_Proz2';

 [...]

 // In Prozedure 1
 ShowMessage(arrayProz1[cbBox.ItemIndex]);

 // In Procedure 2
 ShowMessage(arrayProz2[cbBox.ItemIndex]);

 [...]
... wie gesagt, nicht besonders sauber, aber ein Ansatz!

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 08:06
Ich würde mir ja eine Klasse bauen und diese per ComboBox.Items.AddObject() in die Combobox bringen. So kann man dann seine Daten schön zusammenhalten.

[edit] so etwas war oben ja schon verlinkt [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sun4623

Registriert seit: 6. Jan 2010
40 Beiträge
 
#8

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 11:03
Hallo
Danke für all eure antworten.
Damit ihr euch ein besseres Bild von der Situation machen könnt: Es geht um das ausfüllen eines Formulars auf der Website. (Verstößt nicht gegen die AGB, da abgesprochen)
In der Combobox gibt es einträge wie: Kategorie: (Shooter , Rennspiel, Action/Adventure)
So nun gibt es auf der Seite und ihrem Formular ebenso eine Combobox, meine delphi.Combobox soll nun einen Wert übergeben.

Sprich: WebBrowser1.OleObject.document.forms.item(0).eleme nts.item('genre').value:=kategorie.text;

Jedoch geht dies nicht da das Webformular bzw. die Combobox der seite z.b.anstelle von Shooter (Wert/TXT in meiner Com.Box) nur den wert "FPS"nimmt. Die Seite und ihre Combobox hat also andere Werte wie meine. Außerdem geht es nicht nur um die eine Seite, es sollen noch 2 Andere Seiten und deren Formulare ausgefüllt werden ,diese haben wiederrum andere Werte in ihrer Combobox wie meine.

Ich weis ich drücke mich etwas unklar und komisch aus. Bin noch nicht allzulange dabei.

Ich hoffe ihr könnt mir helfen.

Liebe Grüße
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 11:16
Hier ein Beispiel mit der angesprochenen eigenen Klasse (auf der Form befindet sich nur eine ComboBox):
Delphi-Quellcode:
type
  //eigene Klasse mit 2 Stringattributen
  TComboItem = class
  private
    FDisplayText,
    FInternalText: string;
  public
    //Anzeigetext
    property DisplayText: string read FDisplayText write FDisplayText;
    //intern genutzter Text
    property InternalText: string read FInternalText write FInternalText;
  end;

procedure TfrmTest.ComboBox1Change(Sender: TObject);
var MyItem: TComboItem;
begin
  //internen Text des ausgewählten Items anzeigen
  if ComboBox1.ItemIndex > -1 then
    begin
      MyItem := ComboBox1.Items.Objects[ComboBox1.ItemIndex] as TComboItem;
      ShowMessage(MyItem.InternalText);
    end;
end;

procedure TfrmTest.FormCreate(Sender: TObject);
var MyItem: TComboItem;
begin
  //Einfügen von 2 Instanzen der Klasse zur Combobox
  MyItem := TComboItem.Create;
  MyItem.DisplayText := 'Sichtbarer Text';
  MyItem.InternalText := 'Intern genutzter Text';
  ComboBox1.Items.AddObject(MyItem.DisplayText, MyItem);
  MyItem := TComboItem.Create;
  MyItem.DisplayText := 'Wuppdi';
  MyItem.InternalText := 'Hinter den 7 Bergen';
  ComboBox1.Items.AddObject(MyItem.DisplayText, MyItem);
  ComboBox1.ItemIndex := 0;
end;

procedure TfrmTest.FormDestroy(Sender: TObject);
var i: integer;
begin
  //Instanzen freigeben
  for i := ComboBox1.Items.Count - 1 downto 0 do
    ComboBox1.Items.Objects[i].Free;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sun4623

Registriert seit: 6. Jan 2010
40 Beiträge
 
#10

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 12:55
Hallo

Vielen lieben Dank an dich erstmal. Das scheint mir jedoch etwas, recht komplex für einen Anfänger wie mir. Verwirrt mich wirklich etwas. Wie nutze ich das dann mit dieser code zeile und 20 Combobox einträgen? Ich habe mich jetzt erstmal für den code-schnippsel von dem guten "scrat1979" entschieden.
Nochmal ein Danke an euch beiden.

@scrat1979 und co: Warum unsauber? Können bei solchen "un-sauberen" codes derart schneller fehler auftreten? Es heißt doch normalerweise: Desto weniger c0de, desto sauberer oder?

LG
  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 05:11 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