Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi if-Funktion will nicht (https://www.delphipraxis.net/61541-if-funktion-will-nicht.html)

Avax2k 22. Jan 2006 22:03


if-Funktion will nicht
 
Hallo..hab folgendes Problem

Delphi-Quellcode:
if Label7.Caption = 'ID' then
  begin
Button1.Enabled := TRUE;
  end else
if Label7.Caption = 'kein Eintrag' then
  begin
Button1.Enabled := TRUE;
  end else
Button1.Enabled := FALSE;
ich weiss nicht wieso diese funktion nicht funktioniert..sollte eigentlich gehen..sollte nur ein leichtsinnsfehler drin sein..sorry bei Verbringen des ganzen tages vor dem Rechner kann sowas schon passieren..

sorry...hoffe jemand findet den Fehler

nochmal kurz was ich machen will:
wenn im Label 'ID' oder 'kein Eintrag' steht soll der Button "inaktiv" werden wenn alles andere drin steht dann soll er funktionieren.

sorry NACHTRAG..statt inaktiv --> aktiv..sorry nochmals :(

marabu 22. Jan 2006 22:05

Re: if-Funktion will nicht
 
Du hast TRUE und FALSE verwechselt.

Grüße vom marabu

3_of_8 22. Jan 2006 22:06

Re: if-Funktion will nicht
 
Wie wärs damit:

button1.enabled:=not((label7.caption='ID')or(label 7.caption='kein Eintrag'));

Das ist schön elegant.

Nebenbei, deine Lösung macht genau das Gegenteil von dem, was du willst, das ist klar zu erkennen. Wenn da ID oder kein Eintrag drin steht, wird der Button enabled.

Helmi 22. Jan 2006 22:09

Re: if-Funktion will nicht
 
Hallo,

Du kannst es aber auch so machen:
Delphi-Quellcode:
var
  S: String;

begin
  S := Label7.Caption;
  Button1.Enabled := not ((S = 'ID') or (S = 'kein Eintrag'));
Es ist nicht notwendig eine Variable "S" zu erzeugen. Nur ich lade gerne sowas auf eine Variable - ich finde, dass es sich so leichter und einfacher programmieren lässt - aber das ist geschmackssache

3_of_8 22. Jan 2006 22:11

Re: if-Funktion will nicht
 
Das ist nicht einmal so schlecht. Denn label7.caption ist eine Property, Properties sind Funktionen, Funktionen belasten den Prozessor sinnlos, wenn man sie zwei mal aufruft, obwohl man den Wert auch auslagern könnte.

Luckie 22. Jan 2006 22:16

Re: if-Funktion will nicht
 
Äh, mittlerweile haben die Prozessoren eine Taktrate, wo das wohl weniger ins Gewicht fällt. Und wie argumentierst du, wenn ich dir sagen würde, dass die Variable unnötig Platz im Speicher belegt, wenn ich doch jedesmal die Funktion aufrufen könnte? Ob man hier nun die Funktion einmal aufruft und das Ergebnis in einer Variable ablegt oder ob man die Funktion zweimal aufruft bleibt sich letztendlich gleich.

Avax2k 22. Jan 2006 22:18

Re: if-Funktion will nicht
 
mein Delphi scheint kaputt zu sein denn bei mir funktioniert der Code nicht.

ich versuch es mal mit einem Neustart..vielleicht geht es dann..

denn jetzt bleibt der Button immer Inaktiv, egal ob jetzt 'ID' oder 'kein Eintrag' oder sonstwas drin steht :(

Helmi 22. Jan 2006 22:19

Re: if-Funktion will nicht
 
Zitat:

Zitat von Luckie
Äh, mittlerweile haben die Prozessoren eine Taktrate, wo das wohl weniger ins Gewicht fällt. Und wie argumentierst du, wenn ich dir sagen würde, dass die Variable unnötig Platz im Speicher belegt, wenn ich doch jedesmal die Funktion aufrufen könnte? Ob man hier nun die Funktion einmal aufruft und das Ergebnis in einer Variable ablegt oder ob man die Funktion zweimal aufruft bleibt sich letztendlich gleich.

Auch wenns jetzt offtopic wird - meine Meinung ist, dass es einfacher zu lesen ist, bzw. übersichtlicher wird, wenn man das auf eine Variable schreibt. Gut - bei dem oberen Beispiel wärs jetzt eigentlich egal, aber bei größeren Anweisungen tu ich mich leichter.

3_of_8 22. Jan 2006 22:19

Re: if-Funktion will nicht
 
Wenn man die Variable doch danach gleich wieder freigibt, sind das ein baar Byte, die für <1 ms den Speicher belegen. Dürfte kein allzu großes Problem sein.

Klar, bei zwei Aufrufen ist das sch..., äh, ziemlich egal, aber bei ein paar Aufrufen mehr... So ne Million oder was weiß ich... OK, warum sollte man 1 Million mal die Caption eines Labels abrufen...

Christian Seehase 22. Jan 2006 22:31

Re: if-Funktion will nicht
 
Moin Avax2k,

hast Du beachtet, dass Gross-/Kleinschreibung bei dem Vergleich wichtig ist?
Vielleicht solltest Du für die Strings Konstanten anlegen, die Du dann auch zum Füllen der Captions benutzt, dann kannst Du sicher sein, dass Du nicht auf einen Tippfehler aufläufst.

@3_of_8:
properties sind keine Funktionen, es kann sein, dass sie über Methoden (Getter/Setter) angesprochen werden, aber das ist nicht zwingend.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz