AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Arry of Boolean = funkzt nicht

Ein Thema von Master_BB · begonnen am 13. Aug 2004 · letzter Beitrag vom 13. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#1

Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 14:35
hya,
ich habe derzeit ein objekt erstellt welches viele daten zu einem programm,
das kopiert werden soll, sammelt. So eine Variable bzw property ist ProgPathList : TStringList.
So nun brauch ich eine sammelvariable die zu jedem eintag in der Stringlist
einen Boolischen wert speichert.

nun wollte ich eine property anlegen die so aussieht
property PathChecked : Array of boolean ...
und da kommt ein fehler das sich dynamische arrays mit boolischen variablen nicht so recht vertragen.

kann mir jemand sagen wie ich das anders hinkrieg das zu jedem String der Stringliste
ein boolischer wert gespeichert werden kann.

Greetz
Master_BB
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 14:43
Missbrauch einfach die sl.objects[i] als boolean! mit ein bissche gecaste sollte das kein problem sein. zb: sl.addObject('stringDing',pointer(true));
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#3

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 14:44
z.B. so: StringList.Objects[x] := TObject(True); Spart eine zweite Liste.
Gruß, teebee
  Mit Zitat antworten Zitat
Snoop007

Registriert seit: 14. Jan 2003
331 Beiträge
 
Delphi 6 Personal
 
#4

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 14:50
oder aber

Code:
type
 TMyBoolArray = array of Boolean;
 TMyClass = class
 public
 property PathChecked : TMyBoolArray;
für eine dynamisch grosse liste allerdings solltes du dann bei write die liste um ein element erweitern

das ganze machst du dann mit Setlength(<array>,<grösse>)
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#5

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 15:24
hey danke snoop7,
jedoch warum muß ich die liste erhöhen?
Es ist doch ein dynamisch großer array, sprich unendlich lang wie die Stringliste.
oder seh ich das falsch?
  Mit Zitat antworten Zitat
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 15:44
Hi.

Das siehst du falsch. Das dynamisch bezieht sich darauf, dass man die Größe verändern kann, man muss es aber auch machen. Nach der einfachen Deklaration hat das Array erstmal gar keinen Speicherplatz - wenn du etwas drinnen ablegen willst, must du die Länge definieren. Und dazu brauchst du halt setlength().

cu
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#7

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 15:55
hm irgentwie krieg ich immer fehler wenn ich mit dem array arbeite.
ich glaub der bereich des arrays haut noch nicht hin.
in der write procedure des PathChecked hab ich das jetzt so gemacht

Set Length(FPathChecked, Succ(Length(PathChecked)));
FPathChecked := Value;

aber irgentwie hauts noch net hin obwohl ich doch jedes mal nach dem code her den array um 1s erhöhe.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 16:17
Du musst dein Value einem Element des Arrays zuweisen, nicht dem Array selbst.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#9

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 16:43
ich kriegs nicht gebacken
kann nicht einer mal meines korriegiert posten? brauch diese funktion sonst komm ich nicht weiter.

Delphi-Quellcode:
type TBla = class
  private
    FPathChecked : TBoolArray;
    procedure SetPathChecked(const Value: TBoolArray);
  public
    property PathChecked : TBoolArray read FPathChecked write SetPathChecked;
  end;


procedure TPathItem.SetPathChecked(const Value: TBoolArray);
begin
  SetLength(FPathChecked, Succ(Length(PathChecked)));
  FPathChecked := Value;
end;
greetz
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Arry of Boolean = funkzt nicht

  Alt 13. Aug 2004, 16:44
Moin auch!

Ja, das ist doch eine StringListe. Pack das doch einfach in den String rein. An das Ende ein | (Pipe) und dann ein * für True. Da kannst du auch 0 und 1 ran hängen. Ist egal. Beim Auslesen die Zeile mit Copy(String,Pos('|',String) + 1,1) auslesen und wenn ein Stern zurück kommt, war das Ding True. Du kannst dir auch mehere Pipe-Symbole aneinander hängen. Ein paar lockere Funktionen Scheiben:

Delphi-Quellcode:
Function PipeStrCount( aSt : String):Integer;
Function PipeStrItem( aSt : String; aNr : Integer):String;
Function PipeStrLongest( aSt : String):Integer;
Procedure PipeStrSetStr( Var aSt : String; aNeu : String; aNr : Integer);
Nur mal zur Inspiration. Dann kannste zweidimensional ohne Ende speichern.

Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 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