Announcement

Collapse
No announcement yet.

Combobox mit Hint

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Combobox mit Hint

    hallo,

    ich möchte in einem programm eine combobox einsetzen, die jeweils nur einen buchstaben anzeigt und dementsprechend auch nur einen buchstaben breit ist.
    frage: gibt es einen komponente oder eine andere möglichkeit, die jeweiligen abkürzungen mit einem hint oder ähnliches zu versehen, wo dann der gesamte text angezeigt wir.
    für eine antwort besten dank

  • #2
    Hallo<BR>
    Ich weiß nicht ob es das ist was du benötigst.<BR>
    Bei OnCHange der ComboBox wird ein Hint angezeigt, der den Text der Box, und einen eigenen String enthält.<BR>
    Das gleiche bei OnKeyDown. Leider gibt es kein Maus Ereigniss für Comboboxe.<BR>
    <BR>
    procedure TForm1.ComboBox1Change(Sender: TObject);<BR>
    begin<BR>
    ComboBox1.Hint := ComboBox1.Text + ' ist der Hint';<BR>
    end;<BR>

    procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);<BR>
    begin<BR>
    if Key = VK_DOWN then<BR>
    ComboBox1.Hint := ComboBox1.Text + ' ist der Hint';<BR>

    end;<BR>

    Gruß<BR>
    Matthia

    Comment


    • #3
      hallo Matthias,

      besten dank für deine antwort.
      ich werde deinen vorschlag prüfen.

      mfg
      bernhar

      Comment


      • #4
        hallo Matthias

        besten dank für deine information. leider ist es nicht ganz das was ich brauche. aber schon ein guter schritt nach vorne.

        Frage: wenn ich in einer combobox mehrere begriffe vorgegebenhabe und diese begriffe nur durch den ersten oder die beiden ersten buchstaben innerhalb der combobox darstellen kann (z.B. B für Bier usw.), habe ich das problem, dass der anwender dann zu jedem der begriffe den vollen text benötigt.
        gibt es hierzu eine komponente oder eine andere lösung.
        für eine antwort besten dank.
        gruß
        bernhar

        Comment


        • #5
          Hi Bernhard,<BR>
          Wo hast du, oder wie willst du die Texte für die Hints denn ablegen?<BR> Gebe mir mal ne kurze Info.<BR>
          Gruß Matthias<BR&gt

          Comment


          • #6
            Hallo,

            du kannst mit Combobox1.items.addObject nicht nur den (abgekürzten) Text, sondern auch einen ausführlicheren Text mit jedem Item speichern. Der kann dann beim Anklicken abgerufen und z.B. als Hint dargestellt werden.

            Zum Thema AddObject gibt es z.B. diesen Thread:

            http://www.entwickler-forum.de\webx?50@@.ee88d6d

            Gruß Ul

            Comment


            • #7
              Hallo Bernhard,

              erst einmal Danke für Deine Frage. Sie hat mich nämlich (wieder?) darüber stolpern lassen, dass die TComboBox kein MouseMove kennt.
              In dem MouseMove könnte man sonst nämlich schön:<br>
              <br>
              ComboBox1.Hint := ComboBox1.Text;<br>
              <br>
              schreiben, und der Text würde vollständig als Hint angezeigt werden (ShowHint natürlich auf True)<br>
              Glücklicherweise lässt sich das aber relativ leicht nachrüsten:<br>
              Komponente/neue Komponente dann als Basis TComboBox.<br>
              Ergebnis nach hinzufügen des Ereignisses:<br>
              <br>
              <pre>
              type
              TComboBoxMo = class(TComboBox)
              private
              protected
              procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
              public
              published
              property OnMouseMove;
              end;

              procedure Register;

              implementation

              procedure Register;
              begin
              RegisterComponents('Beispiele', [TComboBoxMo]);
              end;

              procedure TComboBoxMo.MouseMove(Shift: TShiftState; X, Y: Integer);
              begin
              inherited;
              end;

              </pre>
              <br>
              Nach dem Compilieren und Hinzufügen zur Komponentenpalette, hat man dann eine ComboBox, die OnMouseMove kennt.<br>
              Mein erster ernsthafter Versuch einer Komponente, der ohne ein Posting von Jens Schuhmann hier im Forum wohl nicht so leicht geklappt hätte . Er hatte nämlich mal die Funktion von inherited erklärt. (Danke Jens)<br>
              <br>
              Ciao<br>
              Chri

              Comment


              • #8
                Sorry, Vertipper:<br>
                <br>
                Jens Schumann (ohne H)<br&gt

                Comment


                • #9
                  Hallo Matthias,

                  die Daten für den Hint sollten in einer eingenen INI oder in einer eigenen Datei abgelegt werden.

                  Gruß
                  Bernhar

                  Comment

                  Working...
                  X