Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi boolean ohne variable? (https://www.delphipraxis.net/36031-boolean-ohne-variable.html)

Sharky 15. Dez 2004 15:44

Re: boolean ohne variable?
 
Es gibt schon Fälle wo es nett ist:
Delphi-Quellcode:
type
  TmyColor = record
      case boolean of
      true : (Color : TColor);
      false : (ColorR : Byte;
               ColorG : Byte;
               ColorB : Byte;)
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  myColor : TmyColor;
begin
  myColor.Color := clLime;
  Label1.Caption := 'Rotanteil : ' + IntToStr(mycolor.ColorR);
  Label2.Caption := 'Grünanteil : ' + IntToStr(mycolor.ColorG);
  Label3.Caption := 'Blauanteil : ' + IntToStr(mycolor.ColorB);
end;
Und schon kann ich ganz elegant auf die einzelnene Anteile einer Farbe zuweisen :stupid:

maximov 15. Dez 2004 16:11

Re: boolean ohne variable?
 
Oder eine matrix, die man über feldnamen oder array-adressierung ansprechen will:
Delphi-Quellcode:
TD3DMatrix = packed record
    case Integer of
      0 : (_00, _01, _02, _03,
           _10, _11, _12, _13,
           _20, _21, _22, _23,
           _30, _31, _32, _33 : Single);
      1 : (m : array [0..3, 0..3] of Single);
  end;
Also, nix da 'finger weg' ...wenn man weiß was man tut.

Hansa 15. Dez 2004 20:39

Re: boolean ohne variable?
 
Zitat:

Zitat von maximov
...wenn man weiß was man tut.

Eben drum. :mrgreen:

NicoDE 15. Dez 2004 20:52

Re: boolean ohne variable?
 
Zitat:

Zitat von glkgereon
nochmal ne frage...also so:

Delphi-Quellcode:
type
  TTest = record
    Variable:Typ;
    case Typ of //bezieht sich auf die zuletzt genannte Variable des Typs 'Typ'
      Wert1: (a:Typa, b:Typb);//Fall 1
      Wert2: (x:Typx, y:Typy);//Fall 2
  end;
ist das so korrekt?
mit kommentaren, ends und allem?

Fast, Semikolon statt Kommata:
Delphi-Quellcode:
type
  TTest = record
    case Variable: Typ of // Gleich hier, statt davor (verdeutlicht besser die Bedeutung von 'Variable')
      Wert1: (
        a: Typa; // Semilkolon
        b: Typb);
      Wert2: (
        x: Typx;
        y: Typy);
  { end; }  // unnötig, da variante Member ohnehin nur am Ende erlaubt
  end;

StefanDP 15. Dez 2004 21:02

Re: boolean ohne variable?
 
man könnte es auch einsetzen, um geziehlt bitmanipulation zu betrieben:
Delphi-Quellcode:
type
  TFlags = record
    case boolean of
    TRUE: (Flags: Byte);
    FALSE: (F1, F2, F3, F4, F5, F6, F7: Boolean;)
  end;
:mrgreen:
damit kann man beliebigs bits im byte ändern, aber auch das ganze byte mit einem wisch aus/einlesen

stefan

NicoDE 15. Dez 2004 21:07

Re: boolean ohne variable?
 
Zitat:

Zitat von StefanDP
man könnte es auch einsetzen, um geziehlt bitmanipulation zu betrieben

Nope (Boolean = ByteBool), dafür würde man eher Sets verwenden.
(Bitte erst Testen, bevor man wilde Behauptungen aufstellt...)

Chewie 15. Dez 2004 21:16

Re: boolean ohne variable?
 
Na ja, bei FreePascal könnte es so gehen (wenn ich mich richtig erinnere).

Da gibts sowas wie
Delphi-Quellcode:
type TPackedBool = packed Array[0..7] of Boolean;
Hab aber leider den FPC grad nicht zur Hand, kanns also nicht testen,
Ist außerdem eh ein andres Thema ;)

NicoDE 15. Dez 2004 21:41

Re: boolean ohne variable?
 
Zitat:

Zitat von Chewie
bei FreePascal könnte es so gehen

Nope.

Pseudemys Nelsoni 15. Dez 2004 21:53

Re: boolean ohne variable?
 
Zitat:

Zitat von Hansa
2. sie bringen keinen Vorteil.

Zitat:

Zitat von maximov
...wenn man weiß was man tut.

Zitat:

Zitat von Hansa
Eben drum. :mrgreen:





da hast dich aber schnell rausgeredet :P :mrgreen:

Hansa 15. Dez 2004 22:01

Re: boolean ohne variable?
 
Zitat:

Zitat von Pseudemys Nelsoni
...da hast dich aber schnell rausgeredet :P :mrgreen:

nix rausreden. :mrgreen: Keine Angst, ich habe die Varianten schon getestet und sehe nur keinen Vorteil darin, eine Variable 2mal zu deklarieren und dann noch verschieden. Was soll das für ein Programm werden ?

Bzw., wer soll das verstehen ? Sagen wir mal nach 1 Jahr ? :shock:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr.
Seite 3 von 4     123 4      

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