Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

p80286 22. Jan 2010 14:40

Re: If - Abfrage variabel gestalten ?
 
Hallo Holger,

Ich geb zu die Idee hat was, so etwas ähnliches hätte ich manchmal auch gerne, aber bisher hat mich die Vergleichsfunktion immer abgeschreckt.
Dein Problem läuft aber doch auf ein simples (a=b) oder not(a = b) hinaus, das sollte doch über den Sender auswählbar sein?

Gruß
K-H

HolgerCW 22. Jan 2010 14:46

Re: If - Abfrage variabel gestalten ?
 
Das würde ja gehen, nur komplett sieht das so aus:

Delphi-Quellcode:
while DM_Geraete.Query1.Eof <> true do
begin

 For I := 1 to 3 do
 begin

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

   ...

  end;

 end;

 ... und hier kommt auch noch eine Menge ...

end;
Ich müsste quasi diese Schleife zweimal abbilden nur damit ich das Abfragekennzeichen ändere.

blauweiss 22. Jan 2010 14:47

Re: If - Abfrage variabel gestalten ?
 
Zitat:

Zitat von HolgerCW

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;


Hallo HolgerCW,

so würde es z.B. gehen:

Delphi-Quellcode:
  equalrequired := (Sender as TBitBtn).Name = 'BitBtn1';

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

  end;
Gruß
blauweiss

divBy0 22. Jan 2010 14:55

Re: If - Abfrage variabel gestalten ?
 
Delphi-Quellcode:
If ((I=1) AND (DM_Geraete.Query1['RW_NUMMER'] <> Null) AND (DM_Geraete.Query1['RW_VERSCHROTTUNG'] = Null) AND (Sender = BitBtn1)) OR ((I=1) AND (DM_Geraete.Query1['RW_NUMMER'] <> Null) AND (DM_Geraete.Query1['RW_VERSCHROTTUNG'] <> Null) AND (Sender = BitBtn2)) then
Ist das nicht das was du möchtest?

guinnes 22. Jan 2010 15:08

Re: If - Abfrage variabel gestalten ?
 
Nur mal so nebenbei :
Delphi-Quellcode:
while DM_Geraete.Query1.Eof <> true do
Sollte man tunlichst lassen : http://www.delphi-treff.de/tutorials...werten/page/4/

jfheins 22. Jan 2010 15:19

Re: If - Abfrage variabel gestalten ?
 
Vielleicht so in der Art:

Delphi-Quellcode:
procedure BitBitton1Click
begin
Calculate(true);
end;

procedure BitBitton2Click
begin
Calculate(false);
end;

procedure Calculate(a: Boolean)
begin
If (DM_Geraete.Query1['RW_NUMMER'] <> Null) AND ((DM_Geraete.Query1['RW_VERSCHROTTUNG'] = Null) xor a) then
begin

end;
end;

p80286 22. Jan 2010 15:25

Re: If - Abfrage variabel gestalten ?
 
So ganz nebenbei gefragt, warum stecken beide Ergebnisse in einer Query

DM_Geraete.Query1['RW_VERSCHROTTUNG'] = Null
und
DM_Geraete.Query1['RW_VERSCHROTTUNG'] <> Null

Wenn nicht gerade tausende von Datensätzen durch die Gegend geschoben werden, sind meiner Meinung nach zwei Query-Ergebnisse sinnvoller.

@divBy0
Ich glaube, da muß noch etwas an den Klammern gefeilt werden?

Gruß
K-H

HolgerCW 22. Jan 2010 15:29

Re: If - Abfrage variabel gestalten ?
 
Welcher Typ ist denn "equalrequired" ?

Gruss

Holger

divBy0 22. Jan 2010 15:31

Re: If - Abfrage variabel gestalten ?
 
Boolean.

Highttower 22. Jan 2010 15:42

Re: If - Abfrage variabel gestalten ?
 
Zitat:

Zitat von jfheins
Vielleicht so in der Art:

Delphi-Quellcode:
procedure BitBitton1Click
begin
Calculate(true);
end;

procedure BitBitton2Click
begin
Calculate(false);
end;

procedure Calculate(a: Boolean)
begin
If (DM_Geraete.Query1['RW_NUMMER'] <> Null) AND ((DM_Geraete.Query1['RW_VERSCHROTTUNG'] = Null) xor a) then
begin

end;
end;

warum binär mit xor vergleichen????

Schöner ist doch:
Delphi-Quellcode:
procedure Calculate(a: Boolean)
begin
If (DM_Geraete.Query1['RW_NUMMER'] <> Null) AND ((DM_Geraete.Query1['RW_VERSCHROTTUNG'] = Null) AND a) then
begin

end;
end;
Es geht hier doch nur um einfache Boolsche Algebra -> Komplementärgesetze

HTH

Tobi


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
Seite 2 von 3     12 3      

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