Jakie jednostki miary w userform ?
Mag - 23-11-2005 11:09
Jakie jednostki miary w userform ?
Witam,
pytanie troszkę dziwne, ale moż e ktos zna odp - na grupie nie znalazłem,
W jakich jednostkach podawana jest wielkość (rozmiar) UserForm'a albo w ogole kontrolek, bo chcialbym powiazać wilkosc tych userformów z aktualną rozdzilczosci karty graficznej
Pobranie rozdzielczosci - zaden problem, ale jak to potem przelozyc np: 1024x768 na te jednostki ktore tam sa podane, bo wpisujace 1024 i 768 to duzo za duzo to okn ma, a ono ma mieć tyle aby się zmieścio na ekranie. Ciezko mi dojsc do tego, może ktos pomoze?
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Łukasz Nowicki - 23-11-2005 11:09
Użytkownik "Mag" <herzotWYTNIJTO@poczta.onet.pl> napisał w wiadomości news:37e6.00000189.4380df51@newsgate.onet.pl... [...] > może ktos pomoze?
Jeśli chcesz z wymiarów elegancko zrobić piksele, to użyj:
szerokosc = Me.ScaleWidth / Screen.TwipsPerPixelX wysokosc = Me.ScaleHeight / Screen.TwipsPerPixelY
Oczywiście cała forma to Me.Width i Me.Height. I tak rób analogicznie dla innych kontrolek - wyjdzie w pikselach.
HTH
PS: nie wierzę, że nie było :-)
-- pozdrawiam Łukasz Nowicki
"Kwintesencją polskości, tak pod względem ortograficznym jak i mentalnym, jest wyraz żółć" M. E. Sankowska
Skylla - 23-11-2005 11:09
on chyba ma na mysli VBA, a w takim razie to są punkty (points) a nie twipy. S.
Mag - 23-11-2005 11:09
> on chyba ma na mysli VBA, a w takim razie to są punkty (points) a nie twipy. > S. > No ok, ale ja dalej nie rozumiem, chodzi o vba,
mam userform zbudowany z width = 200 height = 400
no i jak teraz te punkty zamienic na piskele bo tego nie kumam, nawet jak patrze na 1 odpowiedz :/
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Rafał Kwaczała - 23-11-2005 11:09
> no i jak teraz te punkty zamienic na piskele bo tego nie kumam, nawet jak > patrze na 1 odpowiedz :/ >
1 punkt to 1/72 cala 1 twip to 1/1440 cala wystarczy policzyć...
Pozdrawiam Rafał Kwaczała
Darek D. - 23-11-2005 11:09
Rafał Kwaczała <kwaczalarUSUN@TOpoczta.wp.pl> napisał(a):
> > > no i jak teraz te punkty zamienic na piskele bo tego nie kumam, nawet jak > > patrze na 1 odpowiedz :/ > > > > 1 punkt to 1/72 cala > 1 twip to 1/1440 cala > wystarczy policzyć... > Z tym, że technika nie stoi w miejscu i monitory potrafią już np. wyświetlać obraz z rozdzielczością 96 dpi/cal. W związku z tym, to co kiedyś można było przyjąć za standard, teraz trochę się zdezaktualizowało, mniej więcej o 1/4 ;)
Sam nie wiem co z tym fantem zrobić?! Może jakieś inne pomysły?
Pozdrawiam - Darek! :)
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Mag - 23-11-2005 11:09
tak,, to ja też wiem, ale nie rozumiemy sie niestety
bo co z tego jak ja punkty zamienie na cale a potem na piskele a piskele = punkty ale te jednostki ktorymi sie wyznacza szerokosc i wysokosc w userform w vba mają sie nijak do punktów, gdyż z logicznego punktu widzenia dla rozdzielcziosci 1024x768 powiniemnem miec 1024,00 punkty czyz nie ?? a mam okolo 770 - skąd ta roznica i jak to przeliczyć bo oczywiscie moge wprowadzić sobie kilka rozdzielcziosci a dla tych rozdzielcziosci wprowadzic wielkosci userfrmów i stworzyc sobie przelicznik, co za problem, ale to chyba nie na tym ma polegac??
> > > no i jak teraz te punkty zamienic na piskele bo tego nie kumam, nawet jak > > patrze na 1 odpowiedz :/ > > > > 1 punkt to 1/72 cala > 1 twip to 1/1440 cala > wystarczy policzyć... > > > Pozdrawiam > Rafał Kwaczała > >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Łukasz Nowicki - 23-11-2005 11:09
Użytkownik "Skylla" <skylla1@op.pl> napisał w wiadomości news:dlsar1$5mf$1@atlantis.news.tpi.pl... > on chyba ma na mysli VBA, a w takim razie to są > punkty (points) a nie twipy.
Ciężko mi powiedzieć, co miał na myśli, nie zadelkarował się :-)
W takim razie może:
Public Sub GetTwipsPerPixel() Dim hdc As Long Dim lResult As Long hdc = GetDC(0) TwipsPerPixelX = 1440 / GetDeviceCaps(hdc, LOGPIXELSX) TwipsPerPixelY = 1440 / GetDeviceCaps(hdc, LOGPIXELSY) ReleaseDC 0, hdc End Sub
Przy czym:
Const LOGPIXELSX As Long = 88 Const LOGPIXELSY As Long = 90
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
HTH
-- pozdrawiam Łukasz Nowicki
"Kwintesencją polskości, tak pod względem ortograficznym jak i mentalnym, jest wyraz żółć" M. E. Sankowska
Skylla - 23-11-2005 11:09
> bo co z tego jak ja punkty zamienie na cale a potem na piskele a piskele = > punkty ale te jednostki ktorymi sie wyznacza szerokosc i wysokosc w userform w > vba mają sie nijak do punktów, gdyż z logicznego punktu widzenia dla > rozdzielcziosci 1024x768 powiniemnem miec 1024,00 punkty czyz nie ?? a mam > okolo 770 - skąd ta roznica i jak to przeliczyć bo oczywiscie moge wprowadzić > sobie kilka rozdzielcziosci
No więc nic nie rozumiesz. Zobacz sobie w helpie co to za jednostka Point a co Pixel. pierwsza jest "papierowa" - jest częscią cala, a druga jest ekranowa zalezy od rozdzielczości i wymiaru ekranu.
Rozwiązanie problemu masz niżej od Łukasza. S.
Rafał Kwaczała - 23-11-2005 11:09
> Z tym, że technika nie stoi w miejscu i monitory potrafią już np. > wyświetlać > obraz z rozdzielczością 96 dpi/cal. > W związku z tym, to co kiedyś można było przyjąć za standard, teraz trochę > się zdezaktualizowało, mniej więcej o 1/4 ;) > > Sam nie wiem co z tym fantem zrobić?! > Może jakieś inne pomysły? >
hmm...inne pomysły...no to może jakieś skalowanie formy w zależności od rozdzielczości. Ale w takiej sytuacji skalowaniu powinny podlegać wszystkie kontrolik umieszczone na tej formie, a w przypadku większej ilości form to już sprawa się trochę bardziej komplikuje. W związku z tym iż "technika nie stoi w miejscu" mam nadzieję że mozna przyjąć iż obecnym standardem wyświetlania jest 1024x768. Zatem eksperymentowanie w wyższych rozdzielczościach (no może poza 1280 wzwyż) będzie występowało w przypadkach oprogramowania typowo technicznego np. CAD natomiast w mniejszych rozdzilczościach (800x600) pozostaje kwestia "dużej" formy na ekranie. Myślę jednak że propozycja kolegi Łukasza (poniżej) na razie zamyka temat do czasu "innych pomysłów" w tej sprawie.
Pozdrawiam Rafał
- 23-11-2005 11:09
Rafał Kwaczała <kwaczalarUSUN@TOpoczta.wp.pl> napisał(a):
> > Z tym, że technika nie stoi w miejscu i monitory potrafią już np. > > wyświetlać > > obraz z rozdzielczością 96 dpi/cal. > > W związku z tym, to co kiedyś można było przyjąć za standard, teraz trochę > > się zdezaktualizowało, mniej więcej o 1/4 ;) > > > > Sam nie wiem co z tym fantem zrobić?! > > Może jakieś inne pomysły? > > > > hmm...inne pomysły...no to może jakieś skalowanie formy w zależności od > rozdzielczości. > Ale w takiej sytuacji skalowaniu powinny podlegać wszystkie kontrolik > umieszczone na tej formie, a w przypadku większej ilości form to już sprawa > się trochę bardziej komplikuje. > W związku z tym iż "technika nie stoi w miejscu" mam nadzieję że mozna > przyjąć iż obecnym standardem wyświetlania jest 1024x768. Zatem > eksperymentowanie w wyższych rozdzielczościach (no może poza 1280 wzwyż) > będzie występowało w przypadkach oprogramowania typowo technicznego np. CAD > natomiast w mniejszych rozdzilczościach (800x600) pozostaje kwestia "dużej" > formy na ekranie. Z tego co sie orientuję, to w tej samej rozdzielczości ustawionej na dwóch różnych monitorach ta sama formatka może być wyświetlana w różnych rozmiarach, a to z tego powodu, że należy rozróżnić: 1. Rozdzielczość z jaką pracuje monitor np. 1024x768 oznacza, że monitor wyświetla w poziomie 1024 piksele a w pionie 768 i tylko tyle. 2. Rozdzielczość z jaką monitor wyświetla piksele, tzn jak gęsto są one upakowane na jednostce długości. Monitory PC zazwyczaj pracują w rozdzielczości 72 dpi - 96 dpi Mam nadzieję, że dobrze kombinuję? ;)
> Myślę jednak że propozycja kolegi Łukasza (poniżej) na razie zamyka temat do > czasu "innych pomysłów" w tej sprawie.
I ja tak sądzę.
Pozdrawiam - Darek! :)
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?ISO-8859-2?Q?=5BOT=5D_Jestem_w_Krakowie_w_dniach_1?==?ISO-8859-2?Q?7=2E07-20=2E07_-_jakie=B6_spotkanko=3F?=
[MySQL] Jakie kodowanie aby =?ISO-8859-2?Q?by=B3y_i_pl_ogo?==?ISO-8859-2?Q?nki_i_o_z_dwoma_kropkami_nad_nim_=3F_=3B?==?IS O-8859-2?Q?=29?=
[IB] Dialect 1 i Dialect 3 -> jakie sa roznice
[Oracle] Jakie znacie narzędzia do Oracle?
clipper - jakie narzędzie pokaże daty wpisanych rekordów w bazie?
SQL - Jakie to =?ISO-8859-2?Q?b=EAdzie_z=B3=B1czenie_=3F?=
Wacom UD 1212-R Digitizer II Ultra Pad jakie ma parametry
jakie zapytanie w mysql aby wybierac wielokrotnie rozne id
MSSQL - jakie informacje siedzą w logu (plik .ldf)?
=?iso-8859-2?q?DERBY_-_jakie_narz=EAdzia=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.pltejsza.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|