Questions sur débogueur + messages Windows
Bonjour à tous,
Après de longues années de programmation en Delphi, je pense me décider à passer sous Lazarus (version 1.0.14). Mais ce n'est pas sans soucis...
Concernant le débogueur :
1) comment désactiver la suspension du programme (avec fenêtre "Pause", "continuer") lors d'une erreur dans un bloc try...except ? (sous Delphi, il suffit de décocher la case "Arrêt sur exceptions Delphi)
exemple : try i:= StrToInt(Edit1.Text); except i:= 0; end;
2) en assignant, p.ex, un événement OnMouseDown à un composant, comment ne pas voir dans les messages du débogueur : "Parameters X, Y, Shift not used" ? Ce message est utile lorsqu'une variable déclarée n'est pas utilisée, mais dans les paramètres d'une procedure, cela n'a aucun sens.
Concernant les messages et constantes Windows :
voici, p.ex, ce que j'utilise en Delphi pour déplacer et redimensionner un composant :
Code:
procedure WMNCHitTest(var msg: TWMNCHitTest); message WM_NCHITTEST;
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| procedure MyCompo.WMNCHitTest(var msg: TWMNCHittest);
var
Pt: TPoint;
begin
inherited;
Pt:= ScreenToClient(Point(msg.XPos, msg.YPos));
{if PtInRect(Rect(0, 0, ClientWidth-4, 20), pt) then
msg.Result:= HTCAPTION // déplacement}
if PtInRect(Rect(ClientWidth-4, 4, ClientWidth, ClientHeight-4), Pt) then
msg.Result:= HTRIGHT // redimensionnement droit
else if PtInRect(Rect(ClientWidth-4, ClientHeight -4, ClientWidth, ClientHeight), Pt) then
msg.Result:= HTBOTTOMRIGHT // redimensionnement par droit-bas
else if PtInRect(Rect(4, ClientHeight -4, ClientWidth - 4, ClientHeight), Pt) then
msg.Result:= HTBOTTOM; // redimensionnement par le bas
end; |
J'ai modifié de la sorte :
procedure WMNCHitTest(var msg: TLMNCHITTEST); message LM_NCHITTEST;
Cela marche pour HTCAPTION, mais les 3 autres constantes ne sont pas reconnues par Lazarus !??? Oubli de déclaration ?
J'ai remarqué également que la procedure ReleaseCapture n'est pas reconnue.
Je vous remercie, par avance, pour vos réponses.
Thierry