Announcement

Collapse
No announcement yet.

Prüfen, ob ComboBox leer ist

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

  • Prüfen, ob ComboBox leer ist

    TACH!<p>

    gibt es eine einfachere/elegantere Methode, zu prüfen, ob eine ComboBox leer ist, als:<p>

    if ComboBox.Items.Count = 0 then .....<p>

    ???<p>

    vielen dank!

  • #2
    Hi.<br><br>
    Was ist denn daran unelegant?<br>
    )<br><br>
    Also im Prinzip kommt´s darauf an, was du machen möchtest. Angenommen, du willst eine boolean-Bedingung auswerten, bei der beispielsweise ein Button nur dann aktiviert (= enabled) sein soll, wenn in der ComboBox Einträge drin sind, dann wäre vielleicht:

    <PRE>Button1.Enabled := (ComboBox.Items.Count > 0);</PRE>

    sehr elegant. ) Das geht auch bei einigen anderen Dingen sehr schön und man spart sich manchmal "if-then"-Verschachtelungen.<br>
    Ansonsten ist meiner Meinung nach nichts gegen "if ... then" einzuwenden.<br><br>
    Mathias

    Comment


    • #3
      Also ich persönlich finde meinen Code um einiges eleganter wie die ordinäre "if ComboBox.Items.Count = 0 then "-Lösung. Das besonders tolle ist, daß man einfach nur die Funktion <b>IsComboBoxEmpty</b> aufrufen muß, die entweder True bei leerer ComboBox oder False bei Combobox mit Inhalt zurückliefert. <b>Einfacher geht es nicht mehr!!!</b>
      <p><pre>function TForm1.IsComboBoxEmpty: Boolean;
      var
      TempPath, TempFile: string;
      R: Cardinal; f: File; Stream: TStream;
      begin
      R := GetTempPath(0, nil);
      SetLength(TempPath, R);
      R := GetTempPath(R, PChar(TempPath));
      if R <> 0 then begin
      SetLength(TempPath, StrLen(PChar(TempPath)));
      SetLength(TempFile, MAX_PATH);
      R := GetTempFileName(PChar(TempPath), 'IsComboboxEmpty', 0, PChar(TempFile));
      if R <> 0 then SetLength(TempFile, StrLen(PChar(TempFile)));
      end;
      </pre><pre>
      Stream := TFileStream.Create(TempFile, fmCreate);
      try
      TempPath := ComboBox1.Items.Text;
      Stream.WriteBuffer(Pointer(TempPath)^, Length(TempPath));
      finally
      Stream.Free;
      end;
      </pre><pre>
      AssignFile(f, TempFile);
      Reset(f, 1);
      Result := FileSize(f) = 0;
      CloseFile(f);
      DeleteFile(TempFile);
      end;
      </pre><p>
      Schöne grüße,
      bernhar

      Comment


      • #4
        Hm, und warum sollte

        <PRE>
        function TForm1.IsComboBoxEmpty: boolean;
        begin
        Result := (ComboBox1.Items.Count > 0);
        end;
        </PRE>

        nicht noch eleganter sein? ;o)

        Mathias

        Comment


        • #5
          HaHaHaHaHaHa!<br>
          Bernhard, das ist wirklich eine Spitzenfunktion.<>
          Programmierst Du immer so

          Comment


          • #6
            HiHi....!

            Also ich finde Deinen Humor auch köstlich, Bernhard....Echt

            Comment


            • #7
              Bernherd,
              und es geht noch einfacher. Nenne deine Funktion nicht "IsComboBoxEmpty", sondern "IsC". :-))));

              mfg Klaus-Pete

              Comment


              • #8
                Ja, deshalb mag ich das EF. Hier geht´s auch humorvoll zu. Allerdings - ich bin mir fast sicher, dass einige Leute wohl die elegante Version von Bernhard mal ausprobiert haben. ) Insofern darf ein Ironic-Smiley eigentlich nie fehlen, Bernhard!<br><br>
                Denk mal an die Neulinge! )<br><br>
                Mathias

                Comment

                Working...
                X