![]() |
Stringlist in Array übertragen
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 :hi: |
Re: Stringlist in Array übertragen
hi stan,
eigentlich kann man doch nen string in nen integer verwandeln und nen integer in nen farbwert, oder? bye |
Re: Stringlist in Array übertragen
:wall: Das ist mir jetzt peinlich...Grade hab ich in der OH nachgesehen...und da sticht mir ins Auge:
Zitat:
Tut mir leid, wegen dem überflüssigen Thread. :oops: Man liest sich, Stanlay :oops: |
Re: Stringlist in Array übertragen
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') |
Re: Stringlist in Array übertragen
kein thread ist umsonst außer wenn er sich wiederholt :mrgreen:
|
Re: Stringlist in Array übertragen
Genau so hatte ich das gedacht :thumb: Mir was nur gerade nicht mehr bewusst, dass es ja noch die Strings Eingenhschaft gibt...peinlich, peinlich :oops:
Danke auf jeden Fall, Man liest sich, Stanlay :hi: |
Re: Stringlist in Array übertragen
:wall: Hi! ich bins nochmal...steh mal wieder auf dem schlauch.
Delphi-Quellcode:
Hab diese Prozedur erstellt, weil ich mehrere Arrays mit Farben füllen muss...
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; 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...:cry:) Man liest sich, Stanlay :hi: |
Re: Stringlist in Array übertragen
Delphi-Quellcode:
Hab mal einiges berichtigt/geändert:
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;
|
Re: Stringlist in Array übertragen
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? |
Re: Stringlist in Array übertragen
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz