AGB  ·  Datenschutz  ·  Impressum  







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

Combobox Teil 2

Ein Thema von LA_18 · begonnen am 11. Feb 2007 · letzter Beitrag vom 11. Feb 2007
Antwort Antwort
LA_18

Registriert seit: 10. Feb 2007
27 Beiträge
 
#1

Combobox Teil 2

  Alt 11. Feb 2007, 12:14
Also nun unter neuen Thread meine 2. Frage !!

Meine Frage: Wenn ich 2 Comboboxen hab, mit dem gleichen Inhalt, wie kann ich es programmieren, das wenn ich in der 1. box etwas ausgewählt hab, dass das in der 2 box dann nicht mehr zur auswahl steht !

Ihr habt ja nun schon beschrieben, ich muss es irgendwie löschen, aber wie programmiere ich denn den ganzen ablauf bei Delphi dass das funktioniert !!

Helft mir mal bitte, is meine letzte Frage !! Danke schon mal im Vorraus !! MfG ^^
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Combobox Teil 2

  Alt 11. Feb 2007, 12:22
Es gibt keinen Befehl, der dies kann, du mußt wie schon erwähnt, den ausgewählen Eintrag der 1. ComboBox (ComboBox1.Text) in der 2. suchen (.IndexOf()) und dann Löschen (.Delete).
Zitat:
Helft mir mal bitte, is meine letzte Frage !!
Du kannst so viele Fragen stellen, wie du willst, aber immer eine auf einmal.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Combobox Teil 2

  Alt 11. Feb 2007, 12:24
Nun der Inhalt der Combobox ist ein Objekt TStrings...

Mit Strings[ItemIndex] findest du den Aktuell selektieren Eintrag heraus.
Wenn ItemIndex -1 ist ist nichts ausgewählt.

um in einem anderen TStrings die ID rauszufinden:
Strings2.IndexOf('ABC') und um etwas zu löschen
Strings.Delete(MeineID) Das ganze jetzt noch im OnChange aufrufen und richtig zusammenbauen und schon gehts


PS: Kleiner Tipp:
So sollte immer, wenn die Erste Combobox geändert wird die Zweite wieder voll gefüllt werden.
Sonst wird nach und nach ein Item nach dem anderen rausgelöscht....
Strings.Assign(Strings2);
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Combobox Teil 2

  Alt 11. Feb 2007, 12:27
Hallo, das ist gar nicht so einfach. Wenn du direkt die Strings vergleichst isses zwar n bisschen langsamer, funktioniert aber zuverlässig:

Delphi-Quellcode:
var
  CBText: string; //da muss die komplette Liste rein
  CBs: array[0..1] of TComboBox; //da müssen beide Comboboxes rein, jeweisl mit entsprechend gesetztem Tag

procedure TForm1.CbCloseUp(Sender: TObject);
var
  ThisCB, OtherCB: TComboBox;
begin
  ThisCB := Sender as TComboBox;
  OtherCB := CBs[(ThisCB.Tag + 1) mod 2];

  OtherCB.Items.Delete(ThisCB.Text); //könnte auch Remove sein... halt das, wo man einen String reinpackt.
end;
//roterkasten
hier mal n kompletter Code
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

aussagekräftiger Titel

  Alt 11. Feb 2007, 13:45
Bitte gib deinem Thread einen aussagekräftigen Titel. Unter "Combobox Teil 2" kann sich wohl nieman detwas so ricgtig vorstellen. Danke.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
LA_18

Registriert seit: 10. Feb 2007
27 Beiträge
 
#6

Re: Combobox Teil 2

  Alt 11. Feb 2007, 17:51
Ich weiß nicht, wo ich das bsp hinschreiben soll...

muss ich da auf die combobox gehen ??
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Combobox Teil 2

  Alt 11. Feb 2007, 18:01
Das unter dem "var" muss entweder als globale Variable definiert werden (dahin, wo auch "Form1: TForm1" steht) oder als private member in die Form (dahin, wo "{Private-Deklarationen}" steht).
Die Prozedur muss als Ereignisbehandlung für die OnCloseUp oder OnChange (dann aber zusätzlich auf ItemIndex > -1 prüfen) Ereignisse beider Comboboxen eingestellt werden. Dafür am besten zu einer COmbobox gehen, im OI (F11) auf "Ereignisse", auf "OnCloseUp" doppeklicken und den Programmcode reinkopieren, bei der zweiten Combobox das selbe Ereignis diesmal auswählen.

Wobei mein Code noch nciht perfekt ist:

Delphi-Quellcode:
var
  CBText: string; //da muss die komplette Liste rein
  CBs: array[0..1] of TComboBox; //da müssen beide Comboboxes rein, jeweisl mit entsprechend gesetztem Tag

procedure TForm1.CbCloseUp(Sender: TObject);
var
  ThisCB, OtherCB: TComboBox;
begin
  ThisCB := Sender as TComboBox;
  OtherCB := CBs[(ThisCB.Tag + 1) mod 2];

  ThisCB.Items.Text := CBText;
  OtherCB.Text := CBText;

  OtherCB.Items.Delete(ThisCB.Text); //könnte auch Remove sein... halt das, wo man einen String reinpackt.
end;
Ohne die zwei zusätzlichen Zeilen werden die Auswhlmöglichkeiten nämlcih immer weniger
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
LA_18

Registriert seit: 10. Feb 2007
27 Beiträge
 
#8

Re: Combobox Teil 2

  Alt 11. Feb 2007, 18:14
oki doki.. ich probier es mal aus !! Fette Grüße und Danke
  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 00:48 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