Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zur Laufzeit etwas in eine Menge hinzufügen


Christian V. - Fr 06.04.07 11:24
Titel: Zur Laufzeit etwas in eine Menge hinzufügen
Hallo,
Kann ich zur Laufzeit bestimmte Werte(Zahlen) zu einer Menge(Set of) hinzufügen?


Narses - Fr 06.04.07 11:25

Moin!

Ja! ;)

cu
Narses


Christian V. - Fr 06.04.07 11:39

Danke für deine Hilfreiche Antwort.
Und wie mach ich das nun? Hab mich shcon mit der Boardsuche bemüht, hab aber nichts konkretes gefunden.


BenBE - Fr 06.04.07 11:51

user profile iconinvulnerabilis hat folgendes geschrieben:
Danke für deine Hilfreiche Antwort.

user profile iconNarses hat nur deine Frage beantwortet. Seine Antwort war also vollkommen korrekt.

user profile iconinvulnerabilis hat folgendes geschrieben:
Und wie mach ich das nun?

Neue Frage, neuer Thread :mahn: :mrgreen:

Ganz einfach: Mit + und dem hinzuzufügenden Element. Ansonsten DOH Abschnitt Object Pascal Reference ODER Set of + F1.


Narses - Fr 06.04.07 11:51

Moin!

Zeig doch mal die Deklaration deiner Menge (notwendig) und was du bisher probiert hast (optional).

cu
Narses


ub60 - Fr 06.04.07 12:40

Nur mal schnell gehackt:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var CharSet : Set of Char;

procedure TForm1.Button1Click(Sender: TObject);
var s : String;
    c : Char;
begin
  CharSet:=CharSet+['e'];
  CharSet:=CharSet+['h','k'];
  s:='';
  for c:='a' to 'm' do
    if c in CharSet
      then s:=s+c;
  Edit1.Text:=s;    
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Charset:=['a','b','c','d'];
end;


Das sollte gehen.

ub60


Christian V. - Fr 06.04.07 13:28

Danke für die zahlreichen Antworten. hat geklappt:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
type
use= set of 1..81;
var
used:use;
c:char;
i:integer;
begin
used:=[];
  for i:= 1 to 81 do begin
    if field[i].text<> '' then begin
      if field[i].text[1in ['1'..'9']  then begin

         used:=used+[i];
      end
      else ShowMessage('Bitte überprüfen sie ihre eingabe, Feld '+IntToStr(i)+' beinhaltet keine Zahl im Bereich 1 bis 9');
    end;
  end;
end;


//Edit: Bin gerade an einem neuen Sudoku Lösungsprogramm.