Lägga till kontroller och text
Med kontroller och text i dialogrutor och skyltar kan användaren interagera med installationsprocessen. Lägg till en dialogruta i användargränssnittet genom att inkludera den i tabellen Dialog enligt beskrivningen i Using the User Interface. Fyll dialogrutor och affischtavlor med kontroller genom att fylla i tabellen Control respektive BBControl-tabell.
De inledande attributen för kontrollen kan anges i kolumnen Attribut i tabellen Control. Se kontrollattribut.
Om du vill göra kontrollattribut beroende av ett villkor använder du tabellen ControlCondition för att inaktivera, aktivera, dölja eller visa en kontroll enligt värdet för en egenskap eller villkorssats. Du kan också använda den här tabellen för att åsidosätta specifikationen för standardkontrollen som anges i dialogtabellen.
Om du vill att en händelse ändrar ett kontrollattribut prenumererar du på kontrollen till en ControlEvent i tabellen EventMapping. En ControlEvent anger en åtgärd som ska vidtas av installationsprogrammet eller en ändring i attributen för en eller flera kontroller i dialogrutan. Se ControlEvent-översikt. Ange attributets identifierare i kolumnen Attribut och ControlEvents identifierare i kolumnen Händelse i tabellen EventMapping.
Vissa kontroller underlättar insamling av information från användaren. En kryssruta gör det till exempel möjligt för användaren att ange värdet för en egenskap. Se tabellen Kryssruta, tabellen ComboBox, tabellen ListBox, tabellen RadioButton, och tabellen ListView.
Observera att av säkerhetsskäl kan privata egenskaper inte ändras av användaren som interagerar med användargränssnittet. Om en egenskap ska anges av användargränssnittet måste den vara en publik egenskap och ha ett namn i alla versaler. Se om egenskaper.
Du kan antingen göra dialogrutan presentera information för användaren eller skriva den till en logg som svar på installationsåtgärder genom att fylla i tabellen ActionText.
Kontroller kan ha ett fördefinierat teckensnitt. Om du vill ange teckensnittet och teckensnittsformatet för en textsträng prefixar du strängen med tecken som visas med {\style} eller {&formatmall}. Där formatmallen är en identifierare i kolumnen TextStyle i TextStyle-tabellen . Om ingen av dessa finns, men egenskapen DefaultUIFont definieras som ett giltigt textformat, används det teckensnittet.
Vi rekommenderar att egenskapen DefaultUIFont för varje installationspaket med ett användargränssnitt anges i Egenskapstabell till någon av de fördefinierade formatmallar som listas i tabellen TextStyle. Om den här egenskapen inte har angetts använder installationsprogrammet teckensnittet System. Detta kan göra att installationsprogrammet felaktigt visar textsträngar om paketets kodsida skiljer sig från användarens standardkodsida för användargränssnittet.
För de flesta kontroller visas text med hjälp av den teckenuppsättning som anges av databasens kodsida. Detta säkerställer att rätt teckenuppsättning används med informationen i databasen. Undantagen till detta är kontrollerna Redigera, DirectoryList, PathEditoch DirectoryCombo, som alltid visar text med användarens standardteckenuppsättning för användargränssnittet. Kontrollerna Text, ListBoxoch ComboBox använder användarens standardteckenuppsättning för användargränssnittet om UserLanguage Control Attribute har angetts.
I vissa fall kan en kontroll ritas om felaktigt när du avbryter en dialogruta. Detta har att göra med i vilken ordning kontrollerna tar emot WM_PAINT meddelanden när dialogrutan Avbryt har tagits bort. Du kan åtgärda detta genom att ändra ordningen på kontrollerna i tabellen Kontroll.
Kontroller bör göras tillräckligt stora för att rymma hela texten som visas i alla teckenstorleksinställningar. Kontroller bör göras tillräckligt stora för att rymma hela den lokaliserade texten, om texten i användargränssnittet kan lokaliseras. Större teckenstorlekar eller lokaliserad text kan kräva mer utrymme än den ursprungliga texten och kan bli avkortade av en kontroll som är för liten. Mer information om hur du lokaliserar användargränssnittstext finns i avsnittet Ett lokaliseringsexempel.