Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   leere Menge (https://www.delphipraxis.net/62084-leere-menge.html)

ErdNussLocke 30. Jan 2006 19:34


leere Menge
 
Hi,
ich bins wieder :)
Neue Frage:
Kann man einer Variable eine leere Menge zuweisen?
also z.b.:

if Name='Daniel'
then a:=1
else a:=(leer);

Man könnte den else Teil einfach weglassen, dann würde die Variable nicht beschrieben aber auch nicht leer sein, da das vorher reingeschriebene ja noch drin steht
Danke im Vorraus
MfG
ErdNussLocke

DGL-luke 30. Jan 2006 19:44

Re: leere Menge
 
Ein Integer hat immer eine Zahl als Wert. Es gibt aber durchaus Mengen in Delphi:

Delphi-Quellcode:
type
TEnum = (1,2,3,4);
TSet = set of TEnum;

var x: TSet;
begin
  x := []; // x wird leere menge zugewiesen
end;
Für deinen Zweck kannst du entweder eine zusätzliche Boolean-Variable deklarieren, die du dann auf false setzt, wenn irgendein von dir gewünschter Fall eitritt, oder, falls du nur den positiven Zahlenbereich benutzt, -1 für "nichts".

juergen 30. Jan 2006 19:54

Re: leere Menge
 
Hallo,
so wie ich dich verstanden habe, muss die Variable als erstes (wie oftmals notwendig) intialisiert werden. (mit einem festem Wert, in diesem Fall = leer)

also in etwa so:

Delphi-Quellcode:
var
myStringVar: String;
myZahlVar : Integer;
begin
myStringVar := '';    //initialisieren der Variable
myZahlVar := 0;       //initialisieren der Variable
  If...then begin
  ...// dein Code
end;

ErdNussLocke 30. Jan 2006 20:01

Re: leere Menge
 
hmm also ich will folgendes machen:
ich lasse zufällig eine zahl unter 2 also 0 oder 1 generieren und wenn sie 1 ist dann soll der text der auf knopfdruck geschrieben wird fett geschrieben werden, also soll in die variable fsbold gespeichert werden. wenn die zahl aber 0 ist soll die variable leer sein. da ich den knopf mehrmals im programm drücke muss die variable irgendwie auf leer gesetzt werden da ja sonst immer das drin steht. hoffe ich konnt das irgendwie rüber bringen :)
hier nochmal so:

VAR
d: integer;
e: tfontstyle;

d:=random(2);
if d=1
then e:=fsbold
else e:=(leer);

geht das?
Mfg
ErdNussLocke

PS: wenn ich in die Variable '' schreiben will kommt der Fehler das keine Strings gespeichert werden können

DGL-luke 30. Jan 2006 20:04

Re: leere Menge
 
ah... mal sehen... gibt es fsregular? oder fsnone? sehr hilfreich könnte es auch sein, einfach mal in die IDE (Delphi-Editor ;) )
"e := fs" einzutippen und dann Strg + Leertaste zu drücken.

EDIT: Ansonsten könnte auch die "echte" leere Menge funktionieren:
Delphi-Quellcode:
e := [];

tomsel 30. Jan 2006 20:52

Re: leere Menge
 
Da bietet es sich doch an, e als TFontStyles zu deklarieren.

Delphi-Quellcode:
var e:TFontStyles;

begin
  e := [fsBold]; // fett
  e := []; // normale schrift
  e := [fsBold, fsUnderline]; // oder das
  e := [fsBold, fsUnderline, fsItalic, fsStrikeout]; // nicht mehr sinnvoll
...
end;

ErdNussLocke 30. Jan 2006 21:23

Re: leere Menge
 
Das mit [] geht irgendwie nicht aber wenn man Unassigned in die Variable speoichert gehts
Danke allen die ihre Hilfe angeboten haben
Mfg
ErdNussLocke

tomsel 31. Jan 2006 07:58

Re: leere Menge
 
Das mit "[]" geht natürlich nur mit Variablen eines Set-Typs, wie eben TFontStyles. Du verwendest aber eine Variant-Variable. Dieser kannst du zwar z.Bsb. fsBold zuweisen, aber nicht mehrere Fontstyles kombinieren (e := [fsBold, fsUnderline]), dam man einem Variant kein Set zuweisen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr.

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