0 votes

Delphi 2009 button.enabled affiche une erreur dans la structure mais se compile quand même

Je me demande juste si quelqu'un d'autre a rencontré cette erreur plutôt obtuse. J'ai une procédure qui ressemble vaguement à ceci :

procedure dostuff();
begin
  if session_started = true then // global var
  begin
   // do bunch of calculations
   // goes on for a while
   // then at the end we enable the save button 
   save_score.enabled := true; // save_score is a tbutton - nothing special about it!
  end;
end;

Avec cette déclaration, la vue structurelle me dit que 'TButton' ne contient pas de membre nommé 'Enabled' à la ligne 4499. Mais le code se compile et s'exécute parfaitement ! Et si je le fais de cette façon :

procedure dostuff();
begin
  if session_started = true then // global var
  begin
    // do bunch of calculations
    // goes on for a while
    // then at the end we enable the save button 
    with save_score do
    begin
      enabled := true;
    end;
  end;

fin ;

Ensuite, je n'obtiens aucune plainte de la part de la visionneuse et la compilation se poursuit.

Quelqu'un sait ce qui se passe ici ? Il n'y a rien de bouleversant, mais c'est juste bizarre qu'il se plaigne d'un morceau de code aussi inoffensif.

0voto

Cette fonctionnalité s'appelle "Error Insight" : elle est censée vous montrer les erreurs dans votre code source avant que vous ne fassiez une compilation.
Vous pouvez voir les nœuds correspondant aux erreurs dans le visualiseur "Structure" (Appuyez sur Shift+Alt+F11 pour l'afficher).

Depuis le début, Error Insight a été bogué.
Aujourd'hui, il est moins bogué qu'avant, mais quand même.

Certains éléments de l'EDI Delphi dépendent de Error Insight, et souffrent également de ces bogues.
Par exemple, certaines des possibilités de refactorisations intégrées ne fonctionnent pas lorsque error insight pense que le code sous-jacent est en erreur.

Vous pouvez désactiver Error Insight mais cela ne résout pas certaines des dépendances (c'est-à-dire que les refactorings ne fonctionnent toujours pas, mais maintenant vous ne pouvez pas le voir a priori).

C'est l'une des raisons pour lesquelles Explorateur de code ModelMaker (MMX) tant.
MMX est une extension Delphi bon marché qui possède une tonne d'actions de refactorisation qui fonctionnent tout simplement.

--jeroen

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X