AGB  ·  Datenschutz  ·  Impressum  







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

Stringlist in Array übertragen

Ein Thema von Stanlay Hanks · begonnen am 17. Nov 2003 · letzter Beitrag vom 18. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#1

Stringlist in Array übertragen

  Alt 17. Nov 2003, 16:11
Hallo zusammen! Wiedermal hab ich ein Problem, dass für viele wahrscheinlich ganz leicht zu lösen sein dürfte, aber ich brings mal wieder nicht auf die Reihe. Hab auch schon in der DP gesucht...

Also. Ich möchte gerne ein Array of TColor haben. Das Problem ist nur, ich hab die Daten, die da rein sollen, in einer Stringlist. Hintergrund ist Folgender: Ich möchte eine Komponente ableiten, die Farbverläufe mit unbegrenzt vielen Farben unterstützen soll und habe dazu eine Funktion, die eben ein Array of TColor benötigt. Da es mir zuviel Arbeit ist, extra einen Eigenschaftseditor für eine Farbenauswahl zu machen, möchte ich eben, dass die Farben Zeile für Zeile in eine Stringlist geschrieben werden und zur Laufzeit in ein Array of TColor kommen...Aber wie kann ich so eine Stringlist in ein Array übertragen?

Danke schon mal, man liest sich, Stanlay
  Mit Zitat antworten Zitat
Baal

Registriert seit: 28. Aug 2003
53 Beiträge
 
Delphi XE2 Starter
 
#2

Re: Stringlist in Array übertragen

  Alt 17. Nov 2003, 16:19
hi stan,

eigentlich kann man doch nen string in nen integer verwandeln und nen
integer in nen farbwert, oder?

bye
wo ein wille ist, ist auch ein Delphi...
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Stringlist in Array übertragen

  Alt 17. Nov 2003, 16:19
Das ist mir jetzt peinlich...Grade hab ich in der OH nachgesehen...und da sticht mir ins Auge:

Zitat:
Die Array-Eigenschaft Strings enthält die Strings in der Liste, deren Indizierung bei 0 beginnt. Weil Strings die Standardeigenschaft für Stringlisten ist, können Sie beim Zugriff auf die Liste den Bezeichner Strings weglassen. Damit ist

StringList1.Strings[0] := 'Dies ist der erste String.';

ist äquivalent zu

StringList1[0] := 'Dies ist der erste String.';
Dann is das ganze natärlich kein Problem mehr...

Tut mir leid, wegen dem überflüssigen Thread.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#4

Re: Stringlist in Array übertragen

  Alt 17. Nov 2003, 16:42
StringList zu Array_of_Color:
Delphi-Quellcode:
Var I: Integer;
  Farben: TStringList;
  FarbenA: Array of TColor

Farben := ('clBlack', 'clRed', '$4D56F4')

SetLength(FarbenA, Farben.Count);
For I := 0 to Farben.Count - 1 do
  FarbenA[I] := StringToColor(Farben[I]);

FarbenA := ($000000, $0000FF, $4D56F4)

Array_of_Color zu StringList
Delphi-Quellcode:
Var I: Integer;
  Farben: TStringList;
  FarbenA: Array of TColor

FarbenA := ($000000, $0000FF, $4D56F4)

SetLength(Farben, FarbenA.Count);
For I := 0 to Farben.Count - 1 do
  ColorToIdent(FarbenA[I], Farben[I]);

Farben := ('clBlack', 'clRed', '$4D56F4')
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Baal

Registriert seit: 28. Aug 2003
53 Beiträge
 
Delphi XE2 Starter
 
#5

Re: Stringlist in Array übertragen

  Alt 17. Nov 2003, 16:44
kein thread ist umsonst außer wenn er sich wiederholt
wo ein wille ist, ist auch ein Delphi...
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Stringlist in Array übertragen

  Alt 17. Nov 2003, 16:59
Genau so hatte ich das gedacht Mir was nur gerade nicht mehr bewusst, dass es ja noch die Strings Eingenhschaft gibt...peinlich, peinlich

Danke auf jeden Fall, Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Stringlist in Array übertragen

  Alt 18. Nov 2003, 16:31
Hi! ich bins nochmal...steh mal wieder auf dem schlauch.

Delphi-Quellcode:
procedure TExtpansionPanel.FillArray(ClrArr: array of TColor;
  StrLst: TStrings);
var ni : Integer;
begin
  SetLength(ClrArr,StrLst.Count);

  For ni := 0 to StrLst.Count -1 do
    ClrArr[ni] := StringToColor(StrLst[ni]);

end;
Hab diese Prozedur erstellt, weil ich mehrere Arrays mit Farben füllen muss...
Aber jetzt sagt er mir bei SetLength : inkompatible Typen...Versteh ich nicht. Ich hab doch im ProzedurKopf ClrArr als Array of TColor deklariert und StrLst.Count ist doch ein Integer...
Wäre toll, wenn mir wer helfen könnte (Bin so kurz vor dem Ziel...)

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#8

Re: Stringlist in Array übertragen

  Alt 18. Nov 2003, 17:03
Delphi-Quellcode:
Type TClrArr = Array of TColor;

Procedure TForm1.FillArray(StrLst: TStringList; Var ClrArr: TClrArr);
  Var ni: Integer;

  Begin
    SetLength(ClrArr, StrLst.Count);
    For ni := 0 to StrLst.Count - 1 do
      ClrArr[ni] := StringToColor(StrLst[ni]);
  End;

Procedure TForm1.FormCreate(Sender: TObject);
  Var ClrArr: TClrArr;
    StrLst: TStringList;

  Begin
    StrLst := TStringList.Create;
    StrLst.Add('clRed');
    StrLst.Add('clBlue');

    FillArray(StrLst, ClrArr);

    Label1.Color := ClrArr[0];
    Label1.Font.Color := ClrArr[1];
  End;
Hab mal einiges berichtigt/geändert:
  • Prozedur(Input, Output);
  • ClrArr als Var-Paramerter deklariert (siehe OH)
  • TStrings zu TStringList
  • "Array of TColor" als globalen Typ deklariert
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#9

Re: Stringlist in Array übertragen

  Alt 18. Nov 2003, 17:12
Hi! Vielen Danke für die Antwort! Wie ich sehe, kann mal wohl kein Array direkt in einer Prozedur deklarieren...Danke für die Aufklährung!

Aber nun hätte ich noch ne Frage: Wo genau müsste ich denn die Type Deklaration hinschreiben?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#10

Re: Stringlist in Array übertragen

  Alt 18. Nov 2003, 18:16
Idealerweis dort wo du auch deine Komponente deklarierst.

Add:
Bei einer solchen komplexen Typendaklaration (Array of ... / Record...) in einer Prozedur-/Funktionsdaklaration meckert Delphi oft, das die Typendaklarationen nicht identisch sind.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 00:06 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