Einzelnen Beitrag anzeigen

Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TColor <-> String

  Alt 15. Jan 2021, 14:22
Delphi-Quellcode:
/// VCL
    result := StrToInt('$' + value[2] + value[3]) + StrToInt('$' + value[4] + value[5]) shl 8 + StrToInt('$' + value[6] + value[7]) shl 16;
1. Problem: Ergibt ja bei deinem Vorgabewert 255 als Ergebnis (Result).
Wenn du nun nicht $FF0000 nimmst (255 für Rot), sondern $00FF00 kommt 65280 raus (eigentlich ja 255 für Grün).
Du musst da dein shl weg lassen, dann passt dies wieder.

2. Problem: Lässt du nun die shl weg, sieht man das er deine Werte addiert, ich denke aber du willst bei $FFFF00 nicht 510 als Ergebnis (sagt nichts aus), sondern 2552550.
Dafür musst du die einzelnen Teile in inttostr() Klammern.

3. Problem: Diese Ausgabe ist dann, dadurch das das Ergebnis jeweils 1, 2 oder 3 Stellen (Z.B.: $00FF00 = 02550) haben kann nicht gut zum Auswerten. Daher empfehle ich dir eine Ausgabe als Array oder Record, wie du es bei FMX getan hast oder du sagst mal was du damit überhaupt bezweckst.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (15. Jan 2021 um 14:36 Uhr)
  Mit Zitat antworten Zitat