J'ai hérité d'une GUI implémentée dans Delphi RadStudio2007 ciblant Windows XP embarqué. Je vois beaucoup de code qui ressemble à ceci :
procedure TStatusForm.Status_refresh;
begin
if DataModel.CommStatus = COMM_OK then begin
if CommStatusOKImage.Visible<>True then CommStatusOKImage.Visible:=True;
if CommStatusErrorImage.Visible<>False then CommStatusErrorImage.Visible:=False;
end else begin
if CommStatusOKImage.Visible<>False then CommStatusOKImage.Visible:=False;
if CommStatusErrorImage.Visible<>True then CommStatusErrorImage.Visible:=True;
end;
end
J'ai trouvé cet exemple de code sur le site Embarcadero :
procedure TForm1.ShowPaletteButtonClick(Sender: TObject);
begin
if Form2.Visible = False then Form2.Visible := True;
Form2.BringToFront;
end;
Cela montre une vérification de Visible avant de le changer, mais il n'y a pas d'explication sur ce que cela sert de vérifier d'abord.
J'essaie de comprendre pourquoi le développeur original a jugé nécessaire de ne définir le drapeau Visible que s'il devait être changé, et n'a pas choisi de le coder ainsi à la place :
procedure TStatusForm.Status_refresh;
begin
CommStatusOKImage.Visible := DataModel.CommStatus = COMM_OK;
CommStatusErrorImage.Visible := not CommStatusOKImage.Visible;
end
Y a-t-il des problèmes de performance ou des problèmes esthétiques (comme le scintillement de l'écran) dont je dois être conscient ?