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 : Sélectionner tout - Visualiser dans une fenêtre à part procedure WMNCHitTest(var msg: TWMNCHitTest); message WM_NCHITTEST;J'ai modifié de la sorte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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
Partager