Announcement

Collapse
No announcement yet.

*Schnell* ComboBox erst nach Passworteingabe freigeben...

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

  • *Schnell* ComboBox erst nach Passworteingabe freigeben...

    Ich habe folgendes Problem...
    Ich habe auf meinem Formular eine Combobox. Diese enthält Daten an die nicht jeder darf. Nun folgende Frage.

    Wie kann ich die ComboBox sperren. Ich möchte sie nicht enabled := False setzen. Ich möchte nur, dass wenn ein unauthorifizierter User auf die ComboBox klickt, jene einfach nicht aufklappt.

    Wie kann ich dieses Problem lösen?

    mfg Pierre Goldenbogen

  • #2
    Hä? Was soll den ein nicht authorisierter Benutzer sein? Der der klickt ist der aktuell angemeldete Benutzer. Entweder ist das ganze Formular sensitiv oder gar das ganze Programm. Wenn nur eine einzelne Control sensitiv ist, dann hast du das Programm falsch entworfen

    Comment


    • #3
      Hallo, Pierre,<br>
      <i>Ich möchte sie nicht enabled := False setzen. Ich möchte nur, dass wenn ein unauthorifizierter User auf die ComboBox klickt, jene einfach nicht aufklappt. </i><br>
      Wenn der Benutzer die Combo schon nicht benutzen darf, dann zeig ihm das doch wenigstens, indem du sie disabled *darstellst*.
      <p>Wenn sie partout enabled sein muss, kannst du ja sowas probieren: Klatsch einen Timer mit Interval = 1 und Enabled = false auf die Form, und codiere folgende Events:<pre>
      type
      THack = class(TControl)
      end;

      procedure TForm1.ComboBox1DropDown(Sender: TObject);
      begin
      Timer1.Enabled := True;
      end;

      procedure TForm1.Timer1Timer(Sender: TObject);
      begin
      Timer1.Enabled := false;
      THack(ComboBox1).SendCancelMode(nil);
      end;
      </pre>
      Ist allerdings eine sehr unsaubere Lösung -- man sieht z.B. kurz die aufgeklappte Combo und ein sehr schneller Benutzer kann vielleicht mit Cursortasten das selektierte Element ändern. Wenn du magst, kannst du ja den Timer rauskicken und durch das Senden und Auffangen einer privaten Windows-Message ersetzen. Das wäre IMHO ein kleines(!) bisschen sauberer und sicherer.
      <p>Uli

      Comment


      • #4
        ComboBox.Style := [csSimple, csDropdownlist

        Comment

        Working...
        X