1. #1
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    février 2014
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : février 2014
    Messages : 411
    Points : 1 809
    Points
    1 809

    Par défaut Voici comment passer plusieurs heures avec With

    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 ?

  2. #2
    Membre expert
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2002
    Messages
    2 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mai 2002
    Messages : 2 388
    Points : 3 735
    Points
    3 735

    Par défaut

    salut

    voila une des raison pour laquelle j'utilise que très peut le with
    je préfère cent fois écrire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.FormClick(Sender: TObject);
    var
       R : TRect;
       ....
    Begin
     if R.Right > Width then 
       R.Right := Width;
    ...
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. [WebI XiR2] Comment faire une moyenne de plusieurs heures
    Par naniou69 dans le forum Débuter
    Réponses: 1
    Dernier message: 05/01/2012, 12h19
  2. [SP-2010] comment passer plusieurs parametres dans L'URL de modal popup sharepoint ?
    Par bouhmid86 dans le forum SharePoint
    Réponses: 1
    Dernier message: 16/12/2011, 13h38
  3. Réponses: 5
    Dernier message: 03/07/2007, 10h31
  4. Réponses: 3
    Dernier message: 20/01/2004, 08h57
  5. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo