> procedure TfrmHometel.SetSplitterSizes; > var > i: integer; > begin > for i:=3D 0 to ComponentCount - 1 do > begin > if Components[i] is TSplitter then > begin > with TSplitter(Components[i]) do > begin > if Cursor =3D crHSplit then > Width :=3D 7 > else if Cursor =3D crVSplit then > Height :=3D 7; > ; // <-- removing this semicolon results in a syntax error. Is it > syntax error some kind of extra strict compiler check. > Color :=3D clBlue; > end; > end; > end; > end;
Compare with next: if Cursor =3D crHSplit then Width :=3D 7 else if Cursor =3D crVSplit then Height :=3D 7; // <-- This semicolon is for the "if". ; // <-- This semicolon is for the "else". Is like this: IF ... THEN BEGIN ... END ELSE BEGIN IF ... THEN BEGIN ... END; // <-- This END is for the "IF". END; // <-- This END is for the "ELSE". I recommend to use "BEGIN ... END" blocks in nested "IF" always to prevent this kind of mistakes. Regards, Guillermo "Ñuño" Martínez. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal