Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inhalt zweier Comboboxen verknüpfen (https://www.delphipraxis.net/79088-inhalt-zweier-comboboxen-verknuepfen.html)

freak4fun 16. Okt 2006 10:00


Inhalt zweier Comboboxen verknüpfen
 
Moin,
ich hab 2 Comboboxen. In der einen steht ein PC-Name in der anderen eine MAC-Adresse. Diese möchte ich nun verbinden. Wenn ich in der PC-Name-Combobox einen Namen auswähle, soll die entsprechende MAC-Adresse in der MAC-Adressen-Combobox ausgewählt werden und anders rum. Wie stelle ich das am besten an?

MfG
freak

ste_ett 16. Okt 2006 10:03

Re: Inhalt zweier Comboboxen verknüpfen
 
Im On Change-Event ItemIndex abfragen und entsprechend in der anderen Combo-Box setzen.

Wenn du eine bidirektionale Abhänigkeit hast, solltest du für das Umschalten einer Combobox diese Combo-Box für das "Benachrichtigen" der anderen Combo-Box sperren.

freak4fun 16. Okt 2006 10:06

Re: Inhalt zweier Comboboxen verknüpfen
 
Zitat:

Zitat von ste_ett
Wenn du eine bidirektionale Abhänigkeit hast, solltest du für das Umschalten einer Combobox diese Combo-Box für das "Benachrichtigen" der anderen Combo-Box sperren.

:shock: Und wie mach ich das? :gruebel:

MfG
freak

ste_ett 16. Okt 2006 10:20

Re: Inhalt zweier Comboboxen verknüpfen
 
Ein Sperren der anderen Combo-Box ist doch nicht nötig, da ein Ändern von "ItemIndex" kein OnChange-Event auslöst.
Also reicht ein einfaches Übergeben des Wertes von "ItemIndex" an die andere Combo-Box. :)

marabu 16. Okt 2006 10:25

Re: Inhalt zweier Comboboxen verknüpfen
 
Hallo Christian,

ich würde die Daten in einer StringList im Name-Value-Format (PC-Name=192.168.1.1) vorhalten. Über einen Schalter lässt du den Benutzer wählen welche Darstellung du im Ereignis OnDrawItem() der ComboBox (Style = csOwnerDrawFixed) präsentieren sollst: PC-Name (IP-Addr) oder IP-Addr (PC-Name).

Grüße vom marabu

freak4fun 16. Okt 2006 11:37

Re: Inhalt zweier Comboboxen verknüpfen
 
Zitat:

Zitat von marabu
Hallo Christian,

ich würde die Daten in einer StringList im Name-Value-Format (PC-Name=192.168.1.1) vorhalten. Über einen Schalter lässt du den Benutzer wählen welche Darstellung du im Ereignis OnDrawItem() der ComboBox (Style = csOwnerDrawFixed) präsentieren sollst: PC-Name (IP-Addr) oder IP-Addr (PC-Name).

Grüße vom marabu

Wie meinst du das "Über einen Schalter"? Ich hab doch 2 Comboboxen. Muss ich dann noch eine 3. dazu nehmen, aus der ich die anderen 2 fülle? :gruebel:

MfG
freak

marabu 16. Okt 2006 11:41

Re: Inhalt zweier Comboboxen verknüpfen
 
Ich wollte dich eigentlich überreden statt zweier ComboBoxen nur noch eine zu verwenden, da ich die Verteilung der eigentlich zusammengehörigen Information auf zwei Controls weder schön noch nützlich finde. Ein Menübefehl oder eine CheckBox könnte den Anzeigemodus einstellen.

Grüße

freak4fun 16. Okt 2006 11:46

Re: Inhalt zweier Comboboxen verknüpfen
 
Zitat:

Zitat von marabu
Ich wollte dich eigentlich überreden statt zweier ComboBoxen nur noch eine zu verwenden, da ich die Verteilung der eigentlich zusammengehörigen Information auf zwei Controls weder schön noch nützlich finde. Ein Menübefehl oder eine CheckBox könnte den Anzeigemodus einstellen.

Grüße

Achso. Du meinst das beide Werte in der Combobox sind, aber immer nur einer angezeigt wird. Hm... das muss ich mir erstmal durch den Kopf gehen lassen. Ich wollte ja auch anzeigen, das der PC-Name zur MAC-Adresse gehört, da man sich das ja nicht merken kann. Aber mal schauen. Danke schonmal. ;)

MfG
freak

marabu 16. Okt 2006 12:02

Re: Inhalt zweier Comboboxen verknüpfen
 
Beide Informationen sollen angezeigt werden - die CheckBox soll lediglich das Format festlegen:

Code:
Name (Adresse)

oder

Adresse (Name)
Jetzt verständlicher?

Grüße

freak4fun 16. Okt 2006 12:14

Re: Inhalt zweier Comboboxen verknüpfen
 
Zitat:

Zitat von marabu
Beide Informationen sollen angezeigt werden - die CheckBox soll lediglich das Format festlegen:

Code:
Name (Adresse)

oder

Adresse (Name)
Jetzt verständlicher?

Grüße

:cyclops: Äh, nein. Also ja, irgendwie schon. *seufz* Dann kann ich das aber auch nicht mehr eintragen, oder? Es ist ja nicht nur Output. :mrgreen: Ich hab hab das Gefühl mit geschlossenen Augen auf einen Bgrund zu zu laufen. :wall:

MfG
freak

marabu 16. Okt 2006 12:42

Re: Inhalt zweier Comboboxen verknüpfen
 
Dass du deine ComboBoxen als Eingabefelder benutzt, habe ich nicht geahnt. Mein Vorschlag hat sich tatsächlich auf Anzeige und Auswahl konzentriert. Es gibt vielleicht noch bessere Ansätze für deine Aufgabenstellung, die ich ja leider nicht kenne. Zwei gekoppelte ComboBoxen sind aber sicher nicht das gelbe vom Ei. Magst du die relevanten use cases beschreiben?

Grüße

Namenloser 16. Okt 2006 12:50

Re: Inhalt zweier Comboboxen verknüpfen
 
Was spricht gegen eine Listview mit dem Anzeigetyp "Report"?

(Rowselect auf true, damit die ganze zeile makiert wird)

freak4fun 16. Okt 2006 12:52

Re: Inhalt zweier Comboboxen verknüpfen
 
Ich schreib ein WOL-Tool. Man muss die MAC angeben und kann den PC-Namen angeben. Wenn man die MAC wählt soll der PC-Name dazu auftauchen und anders herum. Wenn die MAC noch nicht da ist muss man die selbst eintragen und den PC-NAmen dazu. Wenn man dann auf den Button "Senden" klickt und alles stimmt, wird die MAC mit dem PC-Namen gespeichert und soll damit beim nächsten mal mit zur verfügung stehen. Das ist eigentlich auch schon alles.

MfG
freak

freak4fun 16. Okt 2006 13:05

Re: Inhalt zweier Comboboxen verknüpfen
 
Zitat:

Zitat von NamenLozer
Was spricht gegen eine Listview mit dem Anzeigetyp "Report"?

(Rowselect auf true, damit die ganze zeile makiert wird)

Es soll so einfach wie möglich sein. Die ListView halte ich für etwas überdimensioniert. :(

MfG
freak

marabu 16. Okt 2006 13:29

Re: Inhalt zweier Comboboxen verknüpfen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Manchmal sagen ein paar Zeilen Code einfach mehr. In der angehängten Demo zeige ich dir, was ich meine. Du kannst eine MAC-Adresse oder einen Maschinennamen in die ComboBox eintragen. CheckButton versucht einen Maschinennamen in eine MAC-Adresse umzuwandeln und SaveButton merkt sich eine Zuordnung von Maschinenname und MAC-Adresse.

Grüße

freak4fun 16. Okt 2006 14:04

Re: Inhalt zweier Comboboxen verknüpfen
 
Danke ... da muss ich dem Benutzer noch ein Handbuch zu schreiben, aber ich denke das geht. :mrgreen: Ich hab dann noch eine Checkbox mit drauf und davon abhängig wird das Values / Names in die Combobox geladen. Das gleiche gilt dann auch fürs Check. Danke!

MfG
freak

freak4fun 19. Okt 2006 12:18

Re: Inhalt zweier Comboboxen verknüpfen
 
Abgesehen davon, dass sich jetzt wahrscheinlich das komplette Design ändert gefällt mir an der Lösung nicht, das ein Feld für zwei Werte benutzt wird. Ich finde das verwirrt nur. :stupid:

MfG
freak


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