02-22-2008 03:04 AM
03-03-2008 08:11 AM
06-03-2008 01:42 AM
06-03-2008 11:30 AM
06-04-2008 03:10 AM
06-04-2008 03:37 PM
Okay, I found the problem. It is in fact a bug in the CVI environment. There is an internal-use only metafont that was not properly registered as internal-use only, that happens to match the font settings that you chose ("NIDialog", 14, bold, etc...). What's happening is that the .UIR is being saved with a reference to the name of this metafont. Then, when you load the .uir, this metafont does not exist, so your panel ends up with the different typeface (and as of CVI 8.0.1, whenever a nonexisting font is specified, you also end up with the OEM character set, instead of the Latin character set, which is why your umlauts don't work).
There are a couple of workarounds that you can choose from, until this bug is fixed:
1. Save a .tui file alongside your .uir file. Then, edit the .tui file in any text editor, and replace the ATTR_TITLE_FONT value for that panel with "NIDialog". In your program, pass the .tui file to LoadPanel, instead of the .uir file.
The disadvantage of this method is that you'd have to do this every time you make a change in the .uir. Also, loading a .tui file is going to be a bit slower than loading the .uir file.
2. A better method might be to create the "required" metafont in your program. You do this by making the following call, before calling LoadPanel:
CreateMetaFont ("NIDialogMetaFontPrototypeBoldface", "NIDialog", 14, 1, 0, 0, 0);
Luis
06-05-2008 02:43 AM