Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ComboBox ReadOnly und mit Defaultwert (https://www.delphipraxis.net/122688-combobox-readonly-und-mit-defaultwert.html)

Ares 20. Okt 2008 16:41


ComboBox ReadOnly und mit Defaultwert
 
Hallo!

Der Nutzer soll aus einer ComboBox einen Wert auswählen aber keinen Wert eingeben können. Das lässt sich ja leicht bewerkstelligen indem man ComboBox.Style := csDropDownList setzt, dann können die Werte nicht mehr verändert werden. Soweit so gut.

Die ComboBox soll aber auch einen "Defaultwert" haben, der angezeigt wird wenn der Nutzer noch keine Wert ausgewählt wird. Alsoz.B. etwas wie "Bitte einen Eintrag auswählen".

Bei ComboBox.Style := csDropDown ist da kein Problem, ich setzte einfach ComboBox.ItemIndex := -1 und ComboBox.Text := 'Bitte einen Eintrag auswählen'. Dieser Defaulttext wird bei csDropDownList aber leider ignoriert. Ich kann die Anforderungen Defaultext und ReadOnly also nicht kombinieren?

Weiß jemand eine Lösung hierfür?

Besten Dank!
Ares

Helmi 20. Okt 2008 16:50

Re: ComboBox ReadOnly und mit Defaultwert
 
Hallo,

ich stand auch mal vor diesem Problem

ich hab das damals so gelöst:
Delphi-Quellcode:
    with ComboBox_Client do
    begin
      //ComboBox leeren
      Clear;

      //Einträge der Stringliste in ComboBox übertragen
      Items.AddStrings(ClientListe);

      //Eintrag an erster Stelle hinzufügen
      Items.Insert(0, 'k e i n e r');

      //1. Eintrag anwählen
      ItemIndex := 0;
    end;
ClientListe ist eine StringList die dann in der ComboBox angezeigt
wird. Der Benutzer kann dann aus diesen Punkten wählen
der String "k e i n e r" ist immer als erstes zu sehen und steht
an erster Stelle.

Du musst nur aufpassen, wenn du den aktuellen ItemIndex irgendwo
abfrägst, du musst immer einen dazurechnen

[Edit]
Bei meiner ComboBox ist Style := csOwnerDrawFixed
[/Edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 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 by Thomas Breitkreuz