dans la procedure :TfrmDeadForm.RefreshButton(uToRefresh: TImage; nImageIndex: Integer);
tu déclares URect qui n'est jamais utilisé
à ce propos sais tu que tu peux affecter les valeurs à un TRect en une fois ?
URect := Rect(0, 0, 32, 32);
Sinon à la place d'utiliser des TImages pour en faire des boutons n'est pas la bonne méthode,
trop lourd et trop de code à écrire pour gérer toutes les actions...
Tu pouvais simplement utiliser des TSpeedButton avec les propriétés Flat et Transparent à True
et du coup toute la gestion que tu as mis en place pour gérer les cliques etc n'est plus utile.
Pour le reste je te laisse le soin de repérer tout ce qui est inutile dans le code et mettre ta source à jour
petite modification pour le déplacement de la fenêtre :
// On déplace la fiche si l'utilsateur maintient le bouton gauche
procedure TfrmDeadForm.imgCrossMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
// Rafraichissement des boutons
RefreshButton(imgMinimize, 0);
RefreshButton(imgClose, 2);
// Déplacement éventuel
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_MOVE or HTCAPTION, 0);
end;
1 déc. 2006 à 18:52
Et le TSpeedButton gère Haut, Désactivé, Cliqué, Bas... Mais pas le survol de la souris.
Donc je ne vais pas remplacer les TImages a priori...
28 nov. 2006 à 12:12
Merci pour toutes ces remarques très constructives .
La prochaine mise à jour arrive très vite.
27 nov. 2006 à 17:43
dans la procedure :TfrmDeadForm.RefreshButton(uToRefresh: TImage; nImageIndex: Integer);
tu déclares URect qui n'est jamais utilisé
à ce propos sais tu que tu peux affecter les valeurs à un TRect en une fois ?
URect := Rect(0, 0, 32, 32);
Sinon à la place d'utiliser des TImages pour en faire des boutons n'est pas la bonne méthode,
trop lourd et trop de code à écrire pour gérer toutes les actions...
Tu pouvais simplement utiliser des TSpeedButton avec les propriétés Flat et Transparent à True
et du coup toute la gestion que tu as mis en place pour gérer les cliques etc n'est plus utile.
Pour le reste je te laisse le soin de repérer tout ce qui est inutile dans le code et mettre ta source à jour
@+
27 nov. 2006 à 14:42
petite modification pour le déplacement de la fenêtre :
// On déplace la fiche si l'utilsateur maintient le bouton gauche
procedure TfrmDeadForm.imgCrossMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
// Rafraichissement des boutons
RefreshButton(imgMinimize, 0);
RefreshButton(imgClose, 2);
// Déplacement éventuel
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_MOVE or HTCAPTION, 0);
end;