Petite interogation sur les icones... [DELPHI OU API] - Programmation
Marsh Posté le 23-05-2002 à 14:25:59
http://groups.google.com/groups?hl [...] 26rnum%3D3
Marsh Posté le 23-05-2002 à 14:54:48
La procedure, c'est cool, mais par contre je n'arrive pas à la mettre en oeuvre...
J'ai des erreurs, et je n'arrive pas à comprendre d'où elle viennent... nottement :
Declaration forward ou external non satisfaite
Qu'est-ce que ça signifie ?
Marsh Posté le 23-05-2002 à 14:57:20
Que la procédure est pas déclarée dans la partie interface alors qu'elle l'est dans la partie implentation, ou le contraire
Marsh Posté le 23-05-2002 à 15:02:37
Bon, j'avais déjà résolu le pb, mais par contre, il me dit aussi :
- Identificateur non déclaré LVM-SETTEXTBKCOLOR
- Identificateur non déclaré LVM-SETTEXTCOLOR
Je ne sais pas comment déclarer ces choses... A moins qu'il faille les transtyper...
Marsh Posté le 23-05-2002 à 15:20:28
Faut mettre commctrl dans les uses, vu que c'est un truc de la listview et que la listview est déclarée là.
(et c'est des _ pas des -)
[jfdsdjhfuetppo]--Message édité par antp le 23-05-2002 à 15:20:43--[/jfdsdjhfuetppo]
Marsh Posté le 23-05-2002 à 15:24:13
Bien joué...
Je n'ai plus qu'une erreur de compilation :
- Variable requise
c'est pour la ligne
EnumChildWindows(h, @EnumChildProc, 0);
En tout cas merci de l'aide que tu m'apporte, c'est trop sympa
Marsh Posté le 23-05-2002 à 15:25:27
EnumChildProc est défini comment ?
Balance tout le code ça ira plus vite
[jfdsdjhfuetppo]--Message édité par antp le 23-05-2002 à 15:25:44--[/jfdsdjhfuetppo]
Marsh Posté le 23-05-2002 à 15:29:00
function EnumChildProc(AHandle: hWnd): BOOL; stdcall;
procedure ApplyColor();
function TfrmMain.EnumChildProc(AHandle: hWnd): BOOL; stdcall;
// callback for EnumChildWindows.
var
tmpS: string;
theClassName: string;
clrText: Integer;
begin
Result := True;
SetLength(theClassName, 256);
GetClassName(AHandle, PChar(theClassName), 255);
tmpS := PChar(theClassName);
if Pos('SysListView32', tmpS) > 0 then
begin // ColorToRGB(clNone)
clrText := -1; // Desired background color
SendMessage(AHandle, LVM_SETTEXTBKCOLOR, 0, clrText);
clrText := $FFFFFF; // Desired text color (BGR)
SendMessage(AHandle, LVM_SETTEXTCOLOR, 0, clrText);
end;
end;
procedure TfrmMain.ApplyColor();
const
WM_REFRESH_DESKTOP = $A065;
var
WndClass: array[0..50] of char;
h: THandle;
begin
WndClass := 'Progman';
h := FindWindow(@WndClass[0], 'Program Manager';
EnumChildWindows(h, @EnumChildProc, 0);
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
end;
Marsh Posté le 23-05-2002 à 15:35:38
function TfrmMain.EnumChildProc(AHandle: hWnd): BOOL; stdcall;
nan tu peux pas, tu dois faire juste
function EnumChildProc(AHandle: hWnd): BOOL; stdcall;
Marsh Posté le 23-05-2002 à 15:48:19
Quand j'enlève le 'TfrmMain', le bug 'Variable requise' ne disparait pas, mais en plus le bug 'Declaration foward ou external non satisfaite' réapparait...
Je ne comprend vraiment pas comment s'articule tout ça.
Marsh Posté le 23-05-2002 à 15:53:07
C'est bon, j'aitrouvé de quoi ça venait : je déclarait la fonction, du coup tout partait en latte...
Maintenant, j'aimerai bien savoir comment récuppérer la couleur du texte et du background, pour pouvoir contrôler par période l'état... Avec un GetMessage ? Autre chose ?
Marsh Posté le 23-05-2002 à 16:03:34
ça je sais pas... Mais via un autre type de message ou un Get quelque chose ça doit être faisable.
http://groups.google.com
Marsh Posté le 23-05-2002 à 14:00:13
Comment mettre le fond du texte des icones en transparent ? Ceci afin de ne plus se soucier de la couleur du fond d'écran lorsqu'on change de papier pein, et de ne plus avoir de paté moche autour du texte des icones ...