Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4,VB5,VB6
Expertise: beginner
May 5, 1999

Don't hard-code font names and size

Unless you have good reason to do otherwise, you should always use standard fonts in your programs, because this ensures that your application will work on every Windows system.

If you want to use non-standard fonts, you should at least adopt the following guidelines:

  • Assign the font to form and controls through code in the Form_Load event procedure, not directly to the form or the control at design time. Most important, protect the assignment with an On Error statement, so that if the font doesn't exist you can still use the default font.
  • Provide the end user with a method to customize the font name and size, for example by editing an INI file or the Registry. Obviously, editing the Registry is a risky operation, and it should be performed only by experienced users, so usually the INI file is better. Alternatively, provide a distinct utility that configures the program through an easy-to-use interface.
While we're on this topic, please note that in general Visual Basic doesn't raise an error when you assign an unsupported size of a font, but silently uses the closest valid font size that is less than the requested size. Therefore, the only way to test if a given font size actually exists is to check that the assignment was successful. Here's a routine that lets you assign a font size to any object, and returns True if the specified font size is supperted:

Function SetFontSize(obj As Object, FontSize As Integer) As Boolean
    On Error Resume Next
    obj.Font.Size = FontSize
    SetFontSize = (obj.Font.Size = FontSize)
End Function
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date