Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi If - Abfrage variabel gestalten ? (https://www.delphipraxis.net/146558-if-abfrage-variabel-gestalten.html)

HolgerCW 22. Jan 2010 13:36


If - Abfrage variabel gestalten ?
 
Hallo zusammen,

Ich möchte das Gleichheitszeichen gegen eine Variabel austauschen. Nur wie mache ich das ?
Delphi-Quellcode:
If Test = 1 then
begin

 ...

end;
quasi irgendwie so:

Delphi-Quellcode:
Variabel := '=';

If Test Variabel 1 then
begin

 ...

end;
Gruss

Holger

guinnes 22. Jan 2010 13:44

Re: If - Abfrage variabel gestalten ?
 
Was mir dazu einfällt : Prozeduraler Parameter :
Delphi-Quellcode:
TVergleich : Function(A,B : Integer) : Boolean;

Function Groesser(A,B : Integer) : Boolean;
begin
  Result := A > B;
end;

Function Kleiner(A,B : Integer) : Boolean;
begin
  Result := A < B;
end;


....

var
  VergleichFunc : TVergleich;
begin
  VergleichFunc := Groesser;
  if VergleichFunc(a,b) then
  begin

divBy0 22. Jan 2010 13:46

Re: If - Abfrage variabel gestalten ?
 
Keine Ahnung ob das funktioniert.

Alternativ wäre sowas möglich:

Delphi-Quellcode:
case AbfrageTyp of
  0: if Test = 1 then ...
  1: if Test <> 1 then ...
  2: if Test > 1 then ...
  3: if Test < 1 then ...
end;

p80286 22. Jan 2010 13:50

Re: If - Abfrage variabel gestalten ?
 
Hallo Holger,

auf den ersten Blick ist Deine Anforderung nicht sehr intelligent, aber ich vermute Du hast Dir etwas dabei gedacht, darum kein Verweis auf case/</>......

Dunkel kann ich mich erinnern das zu TP-Zeiten schon einmal jemand dieses Ansinnen hatte und das wurde dann mit einer Vergleichsfunktion gelöst. etwa so:
Delphi-Quellcode:
 if VERGLEICHE(a,b).....

function VERGLEICHE (Wert1,Wert2);
begin
  if regewetter then
   if wert1=wert2 then result:=true;
  if Schnee then
   if wert1<>Wert2 then result:=true;
......
end;
Gruß
K-H

divBy0 22. Jan 2010 13:56

Re: If - Abfrage variabel gestalten ?
 
Zitat:

Zitat von p80286
Delphi-Quellcode:
 if VERGLEICHE(a,b).....

function VERGLEICHE (Wert1,Wert2);
begin
  if regewetter then
   if wert1=wert2 then result:=true;
  if Schnee then
   if wert1<>Wert2 then result:=true;
......
end;

Schöner ist dann aber:

Delphi-Quellcode:
 if VERGLEICHE(a,b).....

function VERGLEICHE (Wert1,Wert2);
begin
  if regewetter then
   result := wert1=wert2;
  if Schnee then
   result := wert1<>Wert2;
......
end;

p80286 22. Jan 2010 14:01

Re: If - Abfrage variabel gestalten ?
 
@Divby0
geschenkt! Noch wissen wir ja nicht was er wirklich will.

Gruß
K-H

divBy0 22. Jan 2010 14:04

Re: If - Abfrage variabel gestalten ?
 
Jo stimmt. :cheers:

s-off 22. Jan 2010 14:11

Re: If - Abfrage variabel gestalten ?
 
Zitat:

Zitat von p80286
geschenkt! Noch wissen wir ja nicht was er wirklich will.

Guter Stil hat nichts mit einer inhaltlichen Anforderung zu tun. Und da muss ich divBy0 recht geben, dass
Delphi-Quellcode:
result := wert1=wert2;
stilgerechter ist als
Delphi-Quellcode:
if wert1=wert2 then result:=true;
Da das allgemeingültig ist, sehe ich das trotz des OT hier gut aufgehoben.

Im Endeffekt wird wohl alles auf so eine Vergleichsfunktion hinauslaufen.

HolgerCW 22. Jan 2010 14:13

Re: If - Abfrage variabel gestalten ?
 
Zur Erklärung.

Ein und die selbe Procedure wird von zwei Buttons aus gestartet.

Wenn Sie von Button1 aus aktiviert wird, soll nach "=" abgefragt werden und wenn aus Button2 gestartet wird soll nach "<>" abgefragt werden. Es handelt sich um das zweite Abfragekennzeichen bei 'RW_VERSCHROTTUNG'.

Die Abfrage sieht so aus:

Delphi-Quellcode:
If (DM_Geraete.Query1['RW_NUMMER'] <> Null) AND (DM_Geraete.Query1['RW_VERSCHROTTUNG'] = Null) then
begin

end;
Ich dachte mir das ich vor der Abfrage einfach folgendes mache:

Delphi-Quellcode:
With Sender as TBitBtn do
begin

  If Name = 'BitBtn1' then Kennzeichen := '=';
 
  If Name = 'BitBtn2' then Kennzeichen := '<>';

end;

If (DM_Geraete.Query1['RW_NUMMER'] <> Null) AND (DM_Geraete.Query1['RW_VERSCHROTTUNG'] Kennzeichen Null) then
begin

end;
Nur geht das nicht.

Gruss

Holger

divBy0 22. Jan 2010 14:39

Re: If - Abfrage variabel gestalten ?
 
Das ist aber kein Problem. Definiere ein lokale Variable und schreibe für den einen Button eine 1 und für den anderen eine 2 und übergibt dies deiner Prozedur oder du übergibts der Prozedur gleich den Sender und wertest intern aus.

Delphi-Quellcode:
If Sender = BitBtn1 then...

If Sender = BitBtn2 then...

Edit: Natürlich ohne ''.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.
Seite 1 von 3  1 23      

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