Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 30. 7. 2019 10:32:12

tom_kladno
Člen
Místo Kladno
Registrace: 23. 4. 2007
Příspěvků: 16

Velikost oken s formuláři

Dobrý den,

několik let používám databázi pro evidenci různých údajů, vstup pro data řeším formuláři. Před nějakou dobou se mi při každém otevření formuláře začala měnit velikost okna formuláře tak, že si napamatuje předchozí rozměr, ale vždy se roztáhne téměř přes celou obrazovku (není ale maximalizované). Je to poměrně otravné to pokaždé změnšovat na požadovanou velikost. Databázi otevírám střídavě v Linuxu na Fedoře a ve Windows 10, v obou prostředích se to chová stejně (špatně).

Děkuji za jakoukoli radu.


LO 6.2.5.2-1 CZ 64 na Fedora 30
a LO 6.2.5 na W10 (nuceně v práci) smile

Offline

#2 30. 7. 2019 15:47:04

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 81

Re: Velikost oken s formuláři

S Base jsem nikdy nedělal, ale zde řešili jak makrem nastavit velikost formulářového okna v Calcu
https://forum.openoffice.org/en/forum/v … 45&t=85181

Jestli jsou ty db formuláře dělané makry, jistě by mělo jít přidat do maker nějakou danou (a vyhovující) šířku formuláře když to je na linuxu a když na win.

Na zvětšování celého okna (což ale asi nepotřebujete) lze použít třeba tato makra

Sub oknoMaxim 'maximalizace okna
	thisComponent.CurrentController.Frame.ContainerWindow.isMaximized=true
End Sub


Sub oknoMaximRozmery 'maximalizuje okno a vypíše jeho umístění vůči levému hornímu rohu orbazovky a jeho rozměry
	dim oDoc, oPos
	oDoc=thisComponent
	oDoc.CurrentController.Frame.ContainerWindow.isMaximized=true 'maximalizace okna
	oPos=thisComponent.CurrentController.Frame.ContainerWindow.getPosSize() 'objekt okna s pozicí a rozměry
	msgbox "levý horní roh: X: " & oPos.X & " Y:" & oPos.Y & chr(13) & "šířka: " & oPos.width & chr(13) & "výška: " & oPos.height
End Sub


Sub oknoNaSouradnice 'nastaví okno na dané souřadnice
	dim X%, Y%, sirka%, vyska%
	X=100
	Y=100 'X,Y jsou souřadnice levého horního rohu okna, výška je bez té lišty s tlačítky pro maximalizaci/minimalizaci/zavření okna
	sirka=1000 'šířka okna
	vyska=500 'výška okna
	thisComponent.CurrentController.Frame.ContainerWindow.setPosSize(X,Y,sirka,vyska,com.sun.star.awt.PosSize.POSSIZE) 'nastaví X,Y,width,height
End Sub

Online

#3 30. 7. 2019 17:27:19

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Velikost oken s formuláři

Kdepak takhle jednoduché to není. Tohle může otevírat jen základní okno Base. Otevřený formulář je adresovatelný "NázevDatabáze.odb : NázevFormulře". Není jedno zda je Formulář zavřený nebo otevřený takže i to se musí postavit. většinou se minimalizují až při otevření více nežli jednoho formuláře. I nyní je to minimalizované tak, aby byly vidět alespoň 2 případně otevřené formuláře. Existuje dilema velikosti : někdo chce hned maximalizované okno a jiný chce hned nějak minimalizované aby se dalo přepínat někdy i mezi desítkou formulářů. Používají se vstupní formuláře pro zadávání, nebo také formuláře pro tvorbu tiskových výstupů a podobně. Base nic moc neumí, ale na ovládání je to složitější nežli Writer s Calcem dohromady.


     Já mám schováno několik desítek příkladů a vím že to tam někde je, ale už hodinu hledám a nemůžu najít. Faktem je, že si Base asi původně pamatovala poslední minimalizované rozměry a nyní už ne. Takže se podívám jestli to nejde nastavit alespoň v LibreOffice ze specialního nastavení.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#4 30. 7. 2019 17:50:38

tom_kladno
Člen
Místo Kladno
Registrace: 23. 4. 2007
Příspěvků: 16

Re: Velikost oken s formuláři

Přesně tak... formulář není vlastně nic jiného než Writerovské okno. Stačilo by někde nastavit, aby si Base pamatoval rozměry oken...


LO 6.2.5.2-1 CZ 64 na Fedora 30
a LO 6.2.5 na W10 (nuceně v práci) smile

Offline

#5 31. 7. 2019 18:05:53

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Velikost oken s formuláři

Tak jsem to hledal v Experetním nastavení - ale to je děsná fuška. Musí se najít správná větev. Když dám do hledání "base" tak vyskočí asi milion větví a stejně tak když hledám "win". Takže jsem se nedopracoval.
     Ale napadlo mne otestovat si to na LO Verze: 6.2.5.2 (x64) a tam to chodí správně. Když změním okno podle potřeby tak se příště otevře do stejné velikosti. Otestujte to ještě jednou. Já to pouštím na W7, ale vy máte stejnou verzi na W10 a ještě na Fedoře. Nechce se mi věřit že by se to chovalo jinak nežli u mne. Tedy já jsem otevřel formulář udělal jsem nějakou prkotinu a pak jsem to uložil v tom minimalizovaném rozměru.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#6 31. 7. 2019 19:02:32

tom_kladno
Člen
Místo Kladno
Registrace: 23. 4. 2007
Příspěvků: 16

Re: Velikost oken s formuláři

Trochu jsem znejistil. Znovu jsem tedy prověřil chování. Formulářové okno jsem si zmenšil, uložil a znovu otevřel. Chování jsem zachytil ve videu zde: http://www.palaba.cz/file.php?nid=17386&oid=7063897

Jakoby se okno chtělo otevřít v rozměru, který byl určený, ale pak se podivně roztáhne...


LO 6.2.5.2-1 CZ 64 na Fedora 30
a LO 6.2.5 na W10 (nuceně v práci) smile

Offline

#7 31. 7. 2019 19:22:46

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Velikost oken s formuláři

Můj VLC media Player po aktualizaci otevře přehrávání, dělá že přehrává (cca 3 sec) ale nic nevidím.
     Je možné že jste si tam nandal nějaká makra? To by bylo celkem dobré znamení. Kamlan Vám ukázal makra která fungují obecně - ale na základní okno. Jenže tam je také okno maximalizaci. Znamenalo by to, že to jde možná nasdait přes obecný Writer - ale to bych docela rád věděl. :-)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#8 31. 7. 2019 21:40:48

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 81

Re: Velikost oken s formuláři

Tak jsem též zkusil nějakou namátkovou db a dva formuláře v ní a chová se to tak jak se mi občasně chovají i okna ve Writeru či Calcu -> Win (mám W10 64b prof) si prostě občas nějak odmítají pamatovat když se okno zmaximalizuje a dávají ho do jakési velikosti blízké maximalizaci. Dříve se mi však stávalo to co je v tom vašem videu (přehrál jsem v pohodě v SMPlayer), že se okno otevřelo v nějaké velikosti a pak se (po načtení dokumentu) zvětšilo do právě oné jakési rádoby-maximalizované. Taky jsem dříve zkoušel v expertním nastavení hledat nějakou položku aby si to pamatovalo že chci okno maximalizované, ale vzdal jsem to, je tam toho strašně moc a nevyznal jsem se v tom. Ale je fakt že na 6.2.5.2 se mi to pro Writer/Calc/Draw neděje a otevírá se mi to tak jak chci maximalizované. 
Zpět však k Base. Když formuláře zmenším tak si velikost zmenšených oken pamatuje, ale když je maximalizuji tak si to že byly maximalizované nezapamatuje a otevírá právě v tom rádoby-maximu. Zde je makro které prochází všechny zrovna otevřená okna Libre a jelikož jsou ty formuláře jako okna ve Writeru, bere je jako okna. Makro vypíše titulky jednotlivých oken, ale samozřejmě by se daly nastavit velikosti/pozice pomocí dříve uvedených maker klidně ke každému tomu formuláři. Asi klasicky by to mohlo jít přes Nástroje/Přizpůsobit/Události/Otevřít dokument.

Sub Documents_Iteration( ) 'vypíše Title všech otevřených dokumentů
	Dim oDocs As Object, oDoc As Object, oComponents As Object
	oComponents=StarDesktop.getComponents() 'okna
	oDocs=oComponents.createEnumeration() 'jejich vyjmenování
	Do While oDocs.hasMoreElements() 'dokud jsou neprojitá okna
		oDoc=oDocs.nextElement() 'aktuální okno
		msgbox oDoc.Title 'titulek
	Loop
End Sub

Online

#9 1. 8. 2019 07:53:43

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Velikost oken s formuláři

Ta neúplná velikost je tam určitě záměrně, aby se dalo kliknout na jiné okno. Když je jich více otevřených. Základní okno bývá otevřené na plnou velikost a často je potřeba na něj kliknot aby šlo do popředí i když je to možné odkliknout z lišty. Podle mne je to záměrně. Takový kompromis se ale jistě nelíbí těm kdož chtějí přepínat minimalizovaná okna a ani těm kteří rádi plné okno.
     Já osobně překlikávám vše na liště ale stejné typy otevřených dokumentů se musí nejdříve vybrat, což není moc efektivní ale zvyk má železnou košili :-)

Editoval neutr (1. 8. 2019 07:56:28)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#10 1. 8. 2019 09:20:34

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 81

Re: Velikost oken s formuláři

Neutr: vaše vysvětlení zní logicky a kdysi to nějaké programy takto i dělaly, ale mě se ty rádoby-max okna roztáhnou až moc ke kraji, takže kdybych chtěl v té malé mezeře kliknout na spodní okno, je tam tak malá mezera, že ve vrchním okně se kurzor změní na obousměrnou šipku pro roztažení vrchního okna a nedovolí prokliknout se do spodního :-). A další okno otevře přesně na tom samém rádoby-max, takže o možnosti překlikávání to nebude. Viděl bych to prostě na nějakou nedořešenost.
Co si tak vzpomínám, tak okýnka se skládala systematicky kousky pod sebe (aby se na ně dalo překlikávat) v nějakém starém Internet Exploreru, a "nejlepší" bylo když nějaký javascript začal systematicky používat metodu windows.open a začal otevírat těch oken čím dál víc, to za chvíli bylo nutné ctrl+alt+del a ukončit to - a nebyla to jen záležitost pornostránek :-).

Jinak též překlikávám na liště a mám nastavené aby stejné typy dokumentů neslučoval do jednoho.

Editoval kamlan (1. 8. 2019 09:22:58)

Online

#11 1. 8. 2019 10:24:05

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Velikost oken s formuláři

pro kamlan :
     Já jsem měl ještě připsat, že i když je t téměř úplné okno, tak se dá chytit za horní pruh, kousek stáhnout a třeba zmenšit hned - když se objeví dvojitá šipka. Tohle plné okno neumí takže potom se dvě plná okna dají přepínat jen čtverečkem vpravo nahoře, nebo na liště.
     Když se ale zmenší jen o těch pár milimetrů tak by se stejně musel posouvat za horní pruh a pak přestavět velikost. Takže tohle je podle mne ten mizerný kompromis. Samozřejmě máte pravdu, že dříve to bylo dost běžné. Když jsem otevřel i jiné programy pomocí skupiny (tak se tomu říká až dnes). Vybral se celý adresář a nechal se otevřít. Překládání bylo sofistikované tak aby byly vidět pokud možno jednotlivé nadpisy. Nejčastěji po přeponě ale když to narazilo dole, tak to šlo zpět nahoru.
     Toto se dá také nastavit i dnes ale není to implicitní chování a často je to řešeno kartami. Takže toto chování už je asi používáno minimálně - věřím že to mají vývojáři nějak podloženo. Obávám se že nám dík opratím zmizí také klávesové zkratky. Já dělám jen na desktopu s klasickou klávesnicí a myší. Asi by to byl můj konec. Žádný touchpad pro mne nevyrobí - zvracím jen to vidím. Mám 2 telefony a jeden má ještě anténku a oba displeje jsou dvojbarevné a nejsou větší než 3x4 cm.
     Mám v šuplíku asi 5 dotykových - většinou funkčních ale použitých od vnoučat. 12-letý vnuk mi řekl ať nevytahuju telefon když je u toho nějaký spolužák nebo kamarád. Úplně vážně se smutnýma očima mi řekl "neudělej mi ostudu".:-(

Editoval neutr (1. 8. 2019 10:24:36)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#12 1. 8. 2019 20:10:30

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 81

Re: Velikost oken s formuláři

Nainstaloval jsem dnes verzi 6.2.6.1 z pre-release a zmenšený formuláře daný na různý pozice si to nepamatuje. Zapamatuje si velikost jen jednoho a při dalšim otevření db to ty formuláře otevírá v té velikosti toho jednoho, kterej to navíc vycentrovalo do středu obrazovky. Makro otevře a nastaví pozice pojmenovaných formulářů z pole pozice().

Sub NastavFormulare 'v otevřeným souboru databáze přenastaví pozice a velikosti daných formulářů
	Dim o, oDb, oForms, oForm, i%, j%, pozice()
	rem pole s formuláři  jméno,     X,  Y,šířka,výška
	pozice=array( array("Formulář1",100,100,600,600), array("Formulář2",720,100,600,600) )
	oDb=thisComponent 'base dokument
	oDb.currentController.connect() 'spojit s db
	oForms=oDb.getFormDocuments() 'formuláře db
	if NOT oForms.hasElements() then exit sub 'nejsou-li v db formuláře tak konec
	for i=0 to oForms.count-1 'prochází formuláře
		oForm=oForms.getByIndex(i) 'formulář
		for j=lbound(pozice()) to ubound(pozice()) 'vyhledat je-li formulář v poli pozic
			if oForm.name=pozice(j)(0) then 'formulář je v poli pozic
				o=oForm.open() 'otevřít formulář
				o.currentController.frame.ContainerWindow.setPosSize(pozice(j)(1),pozice(j)(2),pozice(j)(3),pozice(j)(4),com.sun.star.awt.PosSize.POSSIZE) 'nastaví oknu formuláře X,Y,width,height
			end if
		next j
	next i
End Sub

Online

Zápatí