Bonjour à tous.

J'ai repris une unité que j'avais codée en 2014 sous Lazarus.
Compilation avec la version 1.6.4.
Pas d'erreur signalée, mais comportement anormal à l'exécution !
Comme cette unité comprend pas mal de procédures et fonctions, je passe un "certain" temps à tout vérifier...
pour localiser, après un temps "certain", le problème que je peux résumer comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.FormClick(Sender: TObject);
var
   MyRect: TRect;
begin
   with MyRect do
   begin
       //...
       //...
      if Right > Width then Right:= Width;
    end;
end;
Width est évidemment pour moi la largeur de Form1.
Mais voilà...
Travaillant sous Windows, le type TRect devient automatiquement un Windows.TRect (implémenté dans le fichier typshrdh.inc) qui est un record étendu avec la propriété Width !!!

Pourquoi cette modification ?
Si c'est encore pour la compatibilité avec Delphi, je trouve que les gens de Lazarus feraient mieux de se pencher sur des points qui sont vraiment à améliorer, notamment en graphisme !
Et en audio ! Toujours pas de procédure multi-platform pour entendre un petit "wav" de 2 secondes ?

Coup de gueule terminé.

Cordialement
Thierry

[EDIT]
De plus, cette propriété Width est à mon sens incorrecte : avec un R.Left = 0 et un R.Right = 9 --> Width = 9 !!!
Entre 0 et 9, il y a bien 10 pixels, non ?