Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Fehler: IF: Kein Teil eienr Menge (Bedingung) (https://www.delphipraxis.net/157921-fehler-if-kein-teil-eienr-menge-bedingung.html)

sx2008 30. Jan 2011 02:09

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Delphi-Quellcode:
function CharIsHexDigit(c:char):Boolean;
begin
  Result := c in ['0'..'9','A'..'F','a'..'f'];
end;

function IsHexColor(const s : string):boolean;
var
  i : integer;
begin
  Result := (Length(s) >= 7{Mindestlänge}) and (s[1]='$');
  if not Result then
    exit;
  for i := 2 to length(s) do
  begin
    if not CharIsHexDigit(s[i]) then
    begin
      result := False;
      Exit;
    end;
  end;
end;

scrat1979 30. Jan 2011 07:31

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Vielleicht hilft Dir die Funktion val weiter...

Bummi 30. Jan 2011 08:32

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Warum nimmst Du nicht die Funtion StringToColor, gekapselt mit Try Except?

Sir Rufo 30. Jan 2011 11:32

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Du schreibst
Delphi-Quellcode:
If ( not Ord( Foo ) in [..] ) then
es muss aber wie folgt lauten
Delphi-Quellcode:
if not ( Ord( Foo ) in [..] ) then
.
Das
Delphi-Quellcode:
not
muss aus der Klammer raus

SvenLittkowski 30. Jan 2011 23:15

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
sx2008 und alle anderen: vielen Dank, Ihr habt mir ein sehr großes Stück weitergeholfen!

Es gibt nun noch ein anderes Problem, welches ich lösen muß. Beim Schließen des Programmes werden in der INI-Datei die vom user festgesetzten Farben gespeichert. Mir fällt aber auf, daß einige Farben nicht als beispielsweise "$00FFDDAA" gespeichert werden, sondern beispielsweise als "clBlue". Dies gibt Probleme. Wie kann ich den Farbwert von cl-definierten Farben als $-Werte speichern?

Bummi 30. Jan 2011 23:19

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
wenn Du meinen Vorschlag auf #13 verwendest
(StringToColor) hast Du die Farbe in einer TColor Variablen diese kannst Du dann per
'$'+IntToHex(c,8) ausgeben.

SvenLittkowski 30. Jan 2011 23:47

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Ein letztes Problem in Sachen Farbe und Farbverarbeitung vorerst:

Code:
var
 TheColor1, TheColor2: String;
 TColor1, TColor2:     TColor;

(1723) TheColor1:=ColorToString(Label1.Font.Color);
(1724) TheColor2:=ColorToString(Label1.Color);
(1725) IdentToColor(TheColor1,TColor1);
(1726) IdentToColor(TheColor2,TColor2);
gibt mir diesen Fehler:

Zitat:

Zitat von Delphi 7
[Error] Box1.pas(1725): Types of actual and formal var parameters must be identical
[Error] Box1.pas(1726): Types of actual and formal var parameters must be identical


Hmmm... Woran liegt's?

Jakunar 31. Jan 2011 01:50

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Das Problem dabei ist, dass die Funktion als folgende deklariert ist:
Code:
function IdentToColor(const Ident: string; var Color: Longint): Boolean;
Ich weiss gerade nicht was fuer Typ TColor explizit ist, ist aber auch egal, denn die Funktion verlangt ausdruecklich den Referenztyp Longintund erlaubt nicht den Typ TColor!

Hab's eben schnell mit TColor getestet und bekam den gleichen Fehler, aber mit LongInt hats funktioniert!
Code:
var
  TColor1: LongInt;
  TheColor1: String;
begin
  IdentToColor(TheColor1, TColor1)
Gruss Jakunar

Bummi 31. Jan 2011 06:05

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Ich weiß nicht ob D7 hier noch ein Problem hat, aber:
Zitat:

Anmerkung: Falls der String-Bezeichner einer Farbe sowohl einen Hexadezimalwert als auch eine Farbkonstante darstellen kann, verwenden Sie die Funktion StringToColor.

ansonsten geht auch
Delphi-Quellcode:
IdentToColor(TheColor1, Integer(TColor1));

SvenLittkowski 31. Jan 2011 16:59

AW: Fehler: IF: Kein Teil eienr Menge (Bedingung)
 
Ahhh, DAS hat schon mal weitergeholfen. Vielen Dank an Euch.

Ich muß nun zusehen, wie ich TColor in LongInt umwandle. Wenn ich dafür eine Lösung finde, alleine oder zusammen), dann sollte dies endlich alles funktionieren. Ich schaue moch mal im Internet nach einer Lösung um. Aber wenn hier jemand eine Idee hat, dann würde ich mich sehr freuen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 Uhr.
Seite 2 von 4     12 34      

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