Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi SetSysColors gibt Fehler wieder (https://www.delphipraxis.net/645-setsyscolors-gibt-fehler-wieder.html)

Sebastian Nintemann 17. Aug 2002 21:55


SetSysColors gibt Fehler wieder
 
Hallo, mittels SetSysColors kann ich die Windows-Farben verändern.
Die angegebenen Farben werden auch verändert, ich kriege aber immer einen Fehlecode zurück.

Code:
[b]var[/b]
  A: [b]Array[/b][1..3] [b]of[/b] integer;
  B: [b]Array[/b][1..3] [b]of[/b] TColor;
[b]begin[/b]
  A[1] := COLOR_SCROLLBAR;
  A[2] := COLOR_MENU;
  A[3] := COlOR_BACKGROUND;

  B[1] := clBLue;
  B[2] := clYellow;
  B[3] := clGreen;

  [b]if[/b] SetSysColors(3,A,B) [b]then[/b] Caption := SysErrorMessage(GetLastError);
[b]end[/b];
verändert die angegebenen Farben, ich krieg aber immer den Fehler 'Der Parameter stimmt nicht'.
Weiß einer warum?

RomanK 17. Aug 2002 22:35

Also bei mir tuts, Win XP!
Was für ein OS hast du den???
Und was wird bei Scrollbar verändert ich merk nix???

Sebastian Nintemann 18. Aug 2002 01:23

Hallo!
Ich hab WinMe drauf.
Also mit der Scrollbarfarbe ists etwas merkwürdig, ich sehe zwar keine blaue Farbe auf irgendeiner Scrollbar, die Farbvariable wird aber anscheinend richtig verändert, denn

1. Ergibt einlesen mit GetSysColor(COLOR_SCROLLBAR) die eingestellte Farbe, und
2. Zeigt der Anzeige-Dialog von Windows die Scrollbar blau an. - fragt sich blos warum sich dir Programme nicht dran halten :?: :shock:

Gruß Sebastian

Sebastian Nintemann 18. Aug 2002 09:32

:roll:
hmm...

1. Ich schaffe es nicht SetSysColors auzurufen ohne dass sie selbst sich als fehlgeschlagen ansieht. Es funktioniert aber!

2. COLOR_SCROLLBAR ist rätselhaft. Im PSDK steht kein Hinweis das COLOR_SCROLLBAR eine Sonderrolle spielt. Verändere ich sie, wird nirgeds die neue Farbe angezeigt, außer im Vorschau-Fenster von dem Windows-Anzeige-Dialog, in diesem selbst gibt es keine Möglichkeit die Scrollbarfarbe zu ändern, nur die größe... :?: :roll:

Gruß Sebastian

RomanK 18. Aug 2002 10:41

Also ich hab die Procedure an einem Button und bei ersten mal geht es meist bzw. es tritt ein Fehler auf aber alles wird verändert, und bei zweiten mal geht alles wie am Schnürchen!

Vielleicht gibt Lasterror einen Fehler davor aus der garnicht durch das Verändern der Farben verursacht wurde!

RomanK 18. Aug 2002 10:45

Wenn ich in eine Normale Anwendung ins OnCreat
Code:
caption := SysErrormessage(GetLastError);
einbinde zeigt er auch einen Fehler an!!!
Hier: Das Handle ist ungültig
Und wenn ichs bei ButtonOnClick dann kommt: Das Fenster hat keine Bildlaufleiste
aber nach dem zweiten Klick, wenn ich das Fenster bewegt habe: Der Vorgang wurde erfolgreich beendet

d3g 18. Aug 2002 11:47

Hi Grotesquery,

ich habs noch nicht ausprobiert, aber ich würe sagen, dass du ein array[0..2] und nicht [1..3] nehmen musst, weil unter C++ die Arrays so erstellt werden.

MfG,
d3g

Sebastian Nintemann 18. Aug 2002 15:36

Hallo!

Das sdk sagt:
Zitat:

If the function succeeds, the return value is a nonzero value.
Ich schreibe:
Zitat:

if SetSysColors(...) then caption := SysErrorMessage(GetLastError);

*vor den kopf hau*

Es muss natürlich ein not nach das if, ein nonzero-Wert ist natürlich immer true. :oops:

Oder sehe ich da jetzt was falsch?
Ich verstehe jetzt nicht wieso es ohne das not bei FuckRacism ohne Fehlermeldung geklappt hat...

Gruß Sebastian

RomanK 18. Aug 2002 15:53

Ist mir auch aufgefallen aber ich dachte das SetSysColors gar keinen Fehler bzw. nicht nicht True ist

Sebastian Nintemann 18. Aug 2002 15:58

Nicht nicht true? lol

Also das scheint jetzt (bei mir jedenfalls) zu funktionieren. Bekommst du denn auch mal false zurück? Ich hab jetzt mal versucht die Funktion fehlschlagen zu lassen, keine Chance, ich krieg immer 1 (true) zurück.

Und da wäre ja noch das merkwürdige verhalten von der Scrollbarfarbe...

Gruß Sebastian


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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