25. januar 2005 - 08:35Der er
17 kommentarer og 2 løsninger
Indbygge scroll (ActiveX)
Jeg tænkte på om der findes en ActiveX som kan scrolle mellem nogle knapper i min menu. Programmet er opbygget med en menu i venstre side, som består af en hel del kommandoknapper og et "resultat-vindue" i midten som viser en underformular, som modsvarer den knap der er trykket på. Nu er sagen at jeg efterhånden er oppe på så mange knapper, at i en opløsning på 800*600 (og lille skrifttype), er det svært at se alle knapper og nu skal jeg sørme også tilføje en NY knap! :( Jeg har selv prøvet at lave menuen om, så den er på en separat formular, som bliver indsat på hovedformularen. Det ser godt ud, men der er FOR meget bundet op på knapperne (oversættelse af knappernes Caption osv.), så det går ikke. Det ser heller ikke godt ud at sætte scroll på hovedformularen. Any ideas?
Hvis skriftstørrelsen bliver meget mindre, går det ud over dem der kører 1024*768 og nej, det er IKKE en option at sætte 800*600 skærmene op i opløsning. :(
Hej, blot et forslag, man kunne i stedet for knapper indsætte en liste, denne liste for så data fra en tabel tblmenu, man kunne så ved klik på på en tekst på listen få udført sin handling, når man feks. skal tilføje en ny handling er det blot at tilføje denne i tabellen og efterfølgende opdatere sin select case ved klik på listen, men blot et forslag :o)
Ja, men det kræver mere udvikling end at indsætte menuen som underformular (oversættelsen af Caption på knapperne/listeelementerne til Dansk, Polsk og Engelsk) Men jeg tænkte på....hvad med om jeg lagde et check ind, som undersøger brugerens skærmopløsning og hvis det er 1024*768, skal der ikke gøres noget, ellers skal knapperne og teksten herpå gøres mindre og knapperne skal flyttet x milimeter opad? (en "knap" består af en "bund", en etiket og en kommandoknap øverst, don't ask, ved ikke hvorfor min foregænger har lavet det sådan!)
Ja måske det var løsningen, på www.makeiteasy.dk er det et eks. man kan downloade som demonstrere simpel skalering af en formular med tekstboks og 2 knapper, måske du skulle prøve at kikke på den, jeg bruger den selv og det virker fantaisk godt i alle opløsninger, eks. hedder Brugerdefineret Zoomboks: http://www.nyholm.dk/makeiteasy/Home.asp?ContentID=30&MenuItemID=25
som jeg ser det, er der disse realistiske muligheder:
1) redesign formular, så knapperne måske kan stå ved siden af hinanden i 2 rækker eller ved at bruge en anden eller mindre type knapper eller ved at bruge faneblade 2) flyt knapperne til underformular 3) skift skærmopløsning til 1024*768 (enten ved aftale med alle brugere eller gennemtving opløsningen for denne applikation vha VBA kode) 4) Skaller formularen, som Anders er inde på.
Rækkefølgen er prioriteret efter hvad jeg selv ville gøre. Dog vil jeg altid gøre hvad jeg kan for at overtale en virksomhed til at lade alle skifte til 1024*768, da det efterhånden er mindste standard i dagens Danmark. Det er få arbejdsstationer, som ikke kan køre denne opløsning.
1) Puha, faneblade......suk... 2) ALT for meget kode som skal omskrives til at referere til knapperne på underformularen 3) Ja, rigtig god ide, men der er vist brugere som er "oppe i årene"! :) 4) Denne løsning er nok den der kommer tættest på.
Har fundet denne stump kode på nettet:
Option Explicit
Type RECT x1 As Long y1 As Long x2 As Long y2 As Long End Type
Declare Function GetDesktopWindow Lib "User32" () As Long Declare Function GetWindowRect Lib "User32" _ (ByVal hWnd As Long, rectangle As RECT) As Long
Jeg vil umiddelbart sige, at hvis du ikke har leget med det før og hvis du ikke har flair for den slags matematiske beregninger, så vil jeg tro, at der er mindre kode i løsning 2 (uden dog at have set din formular). Men én ting er at skifte størrelse på en enkelt tekstboks. Men noget helt andet er at skifte størrelse, skrifttype og placering på en hel række objekter.
Ja, det eksempel har jeg også set i Access 2000 Developers handbook, ser KANON godt ud, men jeg vil ikke have "flydende" resize, bare resize mellem 2 opløsninger...
Hmmm...det ser dog ud til at give lidt problemer, har forsøgt med en enkelt kontrol i første omgang og skriftstørrelsen kommer ikke under det som der fra start står på kontrollens egenskab (8 punkt) :(
Jeg har forsøgt med den resize som følger med bogen Access 2000 Developers handbook, volume 1, men jeg synes ikke at eksemplet virker som det skal: Man kan kalde en metode, som fortæller hvilken skærmopløsning der var anvendt i udviklingen af programmet og så vil formularen automatisk resize i henhold hertil. Call frmResize.SetDesignCoords(800, 600, 0, 0) Men min menu til venstre har bl.a. etiketer til genvejstaster, fra a til w og når jeg ikke bruger resize, kan jeg se alle etiketterne på en gang, men med resize, forsvinder dem efter n!!! :( Jeg har forsøgt med andre parametre i metodekaldet, men det ændrer INTET ved formularen!!! :( :( :(
hej puppetmaster, okay her et svar, men jeg syntes at thomasjepsen skal have halvdelen altså vi deler :o)og husk at du er altid velkommen til at få en demo af et menusystem der styres af en eller flere lister
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.