Grundkurs för CommonDialog
Förord
Jag hade tänkt att försöka förklara hur Common Dialog Kontrollen fungerar. Kursen är skriven för nybörjare men jag tror även att många andra kan lära sig en hel del. Så vad kan man nu använda CMD (Common Dialog Control) till. Jo det används för att visa Windows standard rutor för färger, fonter, skrivare, hjälp, öppna och spara. Eftersom den använder Windows standard rutor så ser dom olika ut för varje Windows version.Innehåll
»»
»
»
»
»
»
Färger
Vi börjar med att gå igenom hur färg dialogen funkar. I exempelprogrammet som följer med kan du testa de olika dialog rutorna. Först så skall jag gå igenom de två sätt det finns att öppna färg dialogen:
CommonDialog1.ShowColor
CommonDialog1.Action = 3
Om du använder någon av ovanstående sätt så kommer det att starta en allmän färg dialog. Men det finns ett sätt att ändra lite hur den ser ut och vad användarna kan göra med den. Det kallas för flaggor. Flaggor eller Flags som det egentligen heter är en slags regel som ändrar i detta fallet hur dialog rutan skall se ut. Just till färg dialogen finns det fyra flaggor nämligen:
cdlCCFullOpen = Öppnar rutan med egna färger rutan ute.
cdlCCHelpButton = Lägger till en hjälp knapp på färg rutan.
CdlCCPreventFullOpen = Hindrar användaren att använda egna färger.
CdlCCRGBInit = Sätter standard färg.
Flaggorna används genom att skriva CommonDialog1.Flags = "Flaggans namn" Vill du mer än en flagga är det bara att skriva + och nästa flaggas namn.
Fonter
Nu skall vi gå igenom hur man öppnar Font dialogen. Även denna går att öppna på två sätt:
CommonDialog1.ShowFont
CommonDialog1.Action = 4
Även här finns det flaggor men till font dialogen finns det ett par fler nämligen 17 stycken och det är följande:
cdlCFANSIOnly = Flaggan gör att det bara visas fonter som använder windows tecken.
Alltså inga teckensnitt med symboler
cdlCFApply = Lägger till en "Apply" (Verkställ på Svenska) knapp.
cdlCFBoth = Visar både skrivar och skärm fonter.
cdlCFEffects = Gör så att man kan välja Fet, Kursiv, Under- och Överstruken text.
cdlCFFixedPitchOnly = Gör så att bara "Fixed-pitch" fonter syns.
cdlCFForceFontExist = Visar felmeddelande om användaren väljer en font som inte finns.
cdlCFHelpButton = Visar en hjälp knapp i font dialog rutan.
cdlCFLimitSize = Gör att användaren bara får välja stolek inom dina valda gränser.
cdlCFNoFaceSel = Inget font namn är förvalt.
cdlCFNoSimulations = Gör så att font dialogen inte tillåter "GDI".
cdlCFNoSizeSel = Ingen font storlek är förvald.
cdlCFNoStyleSel = Ingen font stil är förvald
cdlCFNoVectorFonts = Gör så att inga "Vector" fonter syns
cdlCFPrinterFonts = Gör så att dialog rutan bara visar fonter som skrivaren supportar.
cdlCFScalableOnly = Visar bara fonter som kan bli "Scaled".
cdlCFScreenFonts = Visar bara fonter som supportas av skärmen.
cdlCFTTOnly = Visar bara True Type fonter.
Du kan även höger klicka på kontrollen och välja properties för att ställa in vissa förvalda fonter, storlekar m.m. En annan intressant sak är att du kan ställa in Min och Max värden till cdlCFLimitSize flaggan.
Skriv ut
Skriv ut dialogen öppnas på något av följande vis:
CommonDialog1.ShowPrinter
CommonDialog1.Action = 5
Till denna dialog finns det 15 flaggor:
cdlPDAllPages = Returnerar eller sätter värdet "Alla sidor" knappen.
cdlPDCollate = Returnerar eller sätter värdet på "Collate" knappen.
cdlPDDisablePrintToFile = Ta bort möjligheten att skriva till en fil.
cdlPDHelpButton = Sätter en hjälp knapp.
cdlPDHidePrintToFile = Gömmer möjligheten att skriva till en fil.
cdlPDNoPageNums = Tar bort "Skriv ut sidorna…" knappen.
cdlPDNoSelection = Tar bort "Markerad text" knappen.
cdlPDNoWarning = Visar felmeddelande när det inte finns någon standard skrivare.
cdlPDPageNums = Returnerar eller sätter " Skriv ut sidorna…" knappens värde.
cdlPDPrintSetup = Visar "skrivare setup" istället för den normala rutan.
cdlPDPrintToFile = Returnerar eller sätter värdet på "Skriv till fil" knappen.
cdlPDReturnDC = Returnera "device context" som ställts in i dialogen.
cdlPDReturnDefault = Returnerar standard skrivaren.
cdlPDReturnIC = Returnerar " information context" som ställts in i dialogen.
cdlPDSelection = Returnerar eller sätter värdet på "Markerad text" knappen.
cdlPDUseDevModeCopies = Tar bort antal kopior knappen och använder ett förvalt värde.
Även här kan du ställa in lite standard värden med hjälp av knappen Properties
Hjälp
Hjälp dialogen visar en hjälp sida, det kan även det öppnas på två sätt men först måste du välja en hjälp sida att öppna. Och det gör du så här:
CommonDialog1.HelpFile = "Hjälpfilens namn och adress"
Sen är det bara att skriva någon av följande:
CommonDialog1.ShowHelp
CommonDialog1.Action = 6
Även här finns det flaggor och de är:
cdlHelpContext = Visar ett speciellt kapitel i hjälpfilen.
cdlHelpQuit = Berättar för dialogen att hjälpfilen inte längre existerar.
cdlHelpIndex = Visar "Indexet" för aktuell hjälpfil.
cdlHelpContents = Visar innehålls sidan på hjälpen.
cdlHelpHelpOnHelp = Visar en hjälp knapp!.
cdlHelpSetIndex = Sätter nuvarande Indexet för en fler Indexierad hjälpfil.
cdlHelpSetContents = Visar en speciell överskrift.
cdlHelpContextPopup = Visar en överskrift som är identifierad av ett innehålls nummer.
cdlHelpForceFile = Tvingar hjälpfilen att bara visas i en font.
cdlHelpKey = Visar hjälp för ett speciellt nyckelord.
cdlHelpCommandHelp = Visar hjälp för ett speciellt kommando.
cdlHelpPartialKey = Öppnar sökmotorn till Windows hjälpen.
Att tänka på är att inte använda samma kommando som övriga flaggor utan att använda ett kommando som är speciellt för hjälpen nämligen:
CommonDialog1.HelpCommand = "Valfri flagga"
Även här finns det något du kan ställa in i Properties.
Öppna
Nu skall jag gå igenom öppna dialogen som vanligt finns det två sätt att öppna den på.
CommonDialog1.ShowOpen
CommonDialog1.Action = 1
Även här finns flaggor men det speciella med dom är att dom funkar till både öppna och spara dialogerna så därför skriver jag dom bara här:
cdlOFNAllowMultiselect = Tillåt markering av mer än en fil.
CdlOFNCreatePrompt = Gör att dialogen frågar om användaren vill skapa en fil som inte existerar.
CdlOFNExplorer = Öppnar en "Utforskaren" liknande dialog.
CdlOFNExtensionDifferent = Returnerar om användaren använder ett annat fil slut än vad som är förinställt.
CdlOFNFileMustExist = Gör så att filen måste existera.
CdlOFNHelpButton = Visar en hjälp knapp.
CdlOFNHideReadOnly = Gömmer "Skrivskyddat" knappen.
CdlOFNLongNames = Använd långa namn.
CdlOFNNoChangeDir = Tvingar dialog rutan att sätta nuvarande adress som den var när den först visades.
CdlOFNNoDereferenceLinks = Genvägar " Dereference" inte.
CdlOFNNoLongNames = Tillåt inte långa filnamn.
CdlOFNNoReadOnlyReturn = Sätter att den valda filen inte får vara skrivskyddad eller i en skrivskyddad mapp.
CdlOFNNoValidate = Tillåter konstiga tecken.
CdlOFNOverwritePrompt = Gör så att spara rutan visar en bekräftelse ruta vid försök att skriva över fil.
CdlOFNPathMustExist = Gör att användaren bara kan skriva in en existerande adress.
CdlOFNReadOnly = Kryssar i "Skrivskyddat" knappen
CdlOFNShareAware = Ignorerar fel när filer delas med andra program.
Även här kan du hitta mycket nyttigt i Properties rutan. Men framförallt viktigt är nog "Filter" kommandot som gör att bara vissa filer visas. Och det funkar så här:
CommonDialog1.Filter = "Beskrivning på filen|sedan filändelsen" vill du sedan har fler filter sätter du bara ett "|" emellan
Här är ett exempel:
CommonDialog1.Filter = "Textfile (*.txt|*.txt|Alla filer (*.*)|*.*"
För att sedan kunna använda alla värden vi fått från dialog rutorna kan du göra så här:
'Fonter:
CommonDialog1.ShowFont
RichTextBox1.SelFontName = CommonDialog1. SelFontName
RichTextBox1.SelFontSize = CommonDialog1.SelFontSize
RichTextBox1.SelBold = CommonDialog1.SelBold
RichTextBox1.SelItalic = CommonDialog1.SelItalic
RichTextBox1.SelStrikethru = CommonDialog1.SelStrikethru
RichTextBox1.SelUnderline = CommonDialog1.SelUnderline
RichTextBox1.SelColor = CommonDialog1.SelColor
'Färger:
CommonDialog1.ShowColor
Command1.BackColor = CommonDialog1.Color
'Skriv ut:
CommonDialog1.ShowPrinter
Printer.Print
RichTextBox1.SelPrint Printer.hDC
Printer.EndDoc
'Öppna:
CommonDialog1.ShowOpen
RichTextBox1.LoadFile (CommonDialog1.FileName)
'Spara:
CommonDialog1.ShowSave
RichTextBox1.SaveFile (CommonDialog1.FileName)
Exempelfil att tanka
Fil: commondialog.zip
Var denna artikeln användbar?
Om du gör någon intressant (eller kanske något konstigt fel) på grund av detta material så skicka gärna det med ett mail eller bifoga en länk till mig så presenterar jag detta som ytterligare exempelfiler för kursen. Om detta innehållet är felaktigt eller du lärt dig fler finesser så skriv gärna en rad eller varför inte en egen kurs baserat på dina erfarenheter. Sänd gärna in dina tips till denna kurs./Andreas Lundgren
0 Kommentarer