[ miki987 @ 15.06.2010. 10:51 ] @
kao sto to biva na kraju svega,zavrsis sve a na kraju nista ne valja...program koji sam radio za prijatelja i juce "krenuo" da radi pravi problem na drugom PC-u. Naime ja sam kompletan prgram radio u rezoluciji 1366x766px a on ima montor sa max 1280x1024px i pola moje forme se ne vidi, odsecena tako da je program neupotrebljiv. Molim za misljenje drugih, kako je moguce da se ovo desava, sta ciniti !!! Pomoc - konkretno resenje mi je ovog puta neophodno
[ miki987 @ 15.06.2010. 23:33 ] @
izgleda da es-vci strajkuju :D
[ t.marko016 @ 15.06.2010. 23:49 ] @
Da pretpostavim, stavio si ceo program na Maximize dok si ga radio?

Evo ti primer, i ja sam nekad imao istih problema .

Pozdrav
[ miki987 @ 16.06.2010. 17:15 ] @
bas tako :D probam pa javljam gde zapne


hmmmm...cekaj,vidi ovako moj program je zavrsen,sada samo ubacim ovaj kod i na svakoj rezoluciji forma i komponente prihvatice duzinu i sirinu i srazmerno smanjiti istu kao sto rekoh u zavisnosti od rezolucije???

molim te objasni mi blize/jasnije posto sa ovim nisam radio

[Ovu poruku je menjao miki987 dana 16.06.2010. u 18:36 GMT+1]
[ miki987 @ 29.06.2010. 12:11 ] @

t.marko016


nisam uspeo ovim da resim problem. na formi imam listviewe, texboxove, comboe i dugmice to je sve i sve to radi na rezoluciji 1366 x 768 na mom laptopu. kada program prebacim na manje rezolucije program funckionise ali mi nekih 30% programa sa desne strane gotovo isecen, na max ili min nista se ne pokazuje niti moze da se strelicom poveca???
[ captPicard @ 29.06.2010. 13:06 ] @
Programe treba raditi za naku minimalnu rezoluciju koju moraš navesti kada prodaješ program. Sada ne znam koliko je pametno raditi neki resize-eve jer to skoro pa nikada ne završi dobro. Ako nemaš puno formi lijepo to stisni, po meni ti je to najbolje rješenje.
[ vuchko.vuchko @ 29.06.2010. 20:30 ] @
A da ti malo konkretizujes ili da postavis program (ili ako nemozes program bar neku verziju problema ) pa da pogledamo i pokusamo popraviti. Iz mog iskustva znam da za takve probleme ima mnogo mogucih resenja a samo nekoliko njih je stvarno ucinkovito. Pozdrav!!!
[ miki987 @ 30.06.2010. 11:19 ] @
captPicard


nesto mi nije sad jasno, ja bi trebao da laptopu prebacim npr.1024x768 i da na toj rezoluciji radim program?
Ili npr. zapocnem u 1024x768 odredim kranji desnu marginu postavljanjem npr. textboxa, vratim moju rezoluciju i nastavim sa radom?

Ali teziste problema je sta onda sa programom koji ce biti kako kazes prilagodjena najmanjom rezolucijom 1024x768 a on npr. ima bas 1366x766, onda desno ostaje prazan prostor zar ne?

Meni bi odgovaralo sledece, da on aplikaciju koristi iskljucivo u full scren t.j. maximize i da forma bude ispunjena t.j. razvucena od kraja do kraja, tako da nema praznog prostora na formi u slucaju kada je rezolucija veca a program radjen na manjoj rezoluciji? Da li je to moguce?


vuchko.vuchko
Ostavicu slike ako je moguce da na osnovu toga zakljucite o cemu se radi,ako ne javni mi i ja cu napraviti sve iz pocetka i okaciti ovde?

Hvala
[ captPicard @ 30.06.2010. 11:49 ] @
konkretno ovu formu koju si prikazao nije problem isprogramirati da se dinamički posloži ovisno o rezoluciji, ali je problem ako imaš više takvih formi.

ne moraš mijenjati rezoluciju na svom monitoru, ako radiš u VB6, imaš negdje u opcijama da ti prikaže kako če ta forma izgledati na ekranu za rezoluciju koju definiraš. Ili si jednostavno zapamtiš/zapišeš koji je max width*height za npr.* 1024*768 i pičiš po tome i nema greške. Na toj rezoluciji če biti maksimizirana forma a na većim rezolucijama neče biti preko cijelog ekrana, ali to niti nije bitno, bitno je samo da se vidi cijela forma.

Možda če ti vuchko dati neko brže rješenje, ja sam jednom iskušao neku komponentu koja sam radi resize, ali nisam bio zadovoljan rezultatima jer ne volim da mi se nešto čeprka po formi a da ja nemam kontrolu nad time.
[ miki987 @ 30.06.2010. 12:14 ] @
da ja radim u vb6 a za opciju prikaza - simulacije u rezolucijama nisam cuo a dobro bi mi dosla. mozes li da mi objasnis kako da je nadjem, jel to dodatni modul vb6-ci ili...?
sto se tice dinamike, hmmm, iovako se dosta mucim sa citanjem kodova, predpostavljam da bi to islo nesto tipa:

za listview1 odredi duzinu pri rezoluciji toj i toj
za textbox 1 odredi duzinu pri rezoluciji toj i toj
i t.d....
u tom slucaju samo bi se zapetljao i garantovano z.j..o stvar.
ajde da cujemo i vucka
[ captPicard @ 30.06.2010. 12:45 ] @
Ne znam gdje se nalazi u izborniku, ali znam da se pojavi slika monitora i na njemu možeš odrediti zakoju rezoluciju da ti prikaže izgled forme. Prošvrljaj malo po izbornicima.

Ako češ dinamički postavljati, ne moraš za svaku komponentu posebno. Evo ti nekog kao pseudo koda, davno sam radio u VB, pa ne znam točno kako bi išlo.

Prvo moraš očitati rezoluciju i to spremiš u dvioje varijable. Zatim odrediš odnos širine pojedinog textboxa, listviewa itd u odnosu na rezoluciju.

I onda ovako nekako

Code:
For i=0 to ComponentCount do
begin
if Copmponent[i] is EditBox then EditBox[i].Width = iMnozitelj * iParametarEB
if Component[i] is ListView then ListView[i].Width = iMnozitelj * iParamterLW
end


Kažem ti, ovo je samo primjer, moraš se ipak malo pozabaviti time. Ali ponavljam, najbolje bi ti bilo da napraviš program za neku minimalnu rezoluciju i onda više nemaš tih problema. Ovu tvoju formu presložiš u sat vremena bez problema.
[ miki987 @ 30.06.2010. 13:04 ] @
Citat:

Kažem ti, ovo je samo primjer, moraš se ipak malo pozabaviti time. Ali ponavljam, najbolje bi ti bilo da napraviš program za neku minimalnu rezoluciju i onda više nemaš tih problema. Ovu tvoju formu presložiš u sat vremena bez problema.


ok, ali u tom slucaju sta cu kada program naidje na 1366x766 ? falice mi desno na formi stvari koje su sada zapravo pomerene u levo???

evo i primera nesto sto sam ranije radio za monitor odnosno rezoluciju 1024x768 a sada kod mene na 1366x766 otvara ovako.
[ captPicard @ 30.06.2010. 13:12 ] @
Pa nema veze za prazan prostor, to nikome ne smeta. Ako želiš da to malo ljepše izgleda, centriraj tu formu da bude na sredini ekrana.
[ miki987 @ 30.06.2010. 13:27 ] @
joj ovako sam jedva uklopio da sve stane na formu ali sta cu moracu, jos da sacekam vucka sta ce on da kaze pa se javlam

Centriranje forme mislis StartUpPosition, ili na nesto drugo?

p.s. pogledaj gore sliku na predhodnom postu brisao sam pa sam opet dodavao...
[ vuchko.vuchko @ 01.07.2010. 13:21 ] @
hmmm ne znam bas da postoji neko instant resenje za ovaj problem. Rizikujuci da ispadnem preterano pametan ja bi ti predlozio sledece resenje (posto ti na formi imas manji broj objekata oko 35 cini mi se) , ja licno bi uradio sledece:

Code:
Dim SirinaForme As Integer
Dim VisinaForme As Integer

Private Function ReSizeR()
Command1.Height = VisinaForme / 7.8
'Gdje je 7.8 proporcija dobijena pri laod-ovanju forme kao Me.Height/Command1.Height
Command1.Width = SirinaForme / 3.11
Command1.Top = VisinaForme / 23.93
Command1.Left = SirinaForme / 53.37
End Function


Private Sub Form_Load()
MsgBox Me.Height / Command1.Height
SirinaForme = Me.Width
VisinaForme = Me.Height
ReSizeR
End Sub

Private Sub Form_Resize()
SirinaForme = Me.Width
VisinaForme = Me.Height
ReSizeR
End Sub
, dakle Ispisati funkciju koja bi sve objekte prilagodila novoj velicini forme preko njihovih proporcija pri osnovnoj(bazicnoj) formi. Jos pola sata posla i imao bi kakvo-takvo resenje, a radilo bi provjereno. POZDRAV!!!
[ captPicard @ 01.07.2010. 13:33 ] @
Pa to sam mu ja isto predložio, ali da ne mora jednu po jednu komponentu pisati, samo neka izvrti u petlji onako kako sam mu napisao :)
[ vuchko.vuchko @ 01.07.2010. 14:53 ] @
Ma ok, ali i sam si rekao da je to pseudo kod, ne znam bas kako bi bilo najlakse kroz petlju vrteti kontrole ako nisu control array, no dobro. Ja sam mu to predlozio jer nema bas previse objekata i za 20-ak minuta mogla bi se napraviti funkcija koja ce taj njegov program ozivjeti i na drugom racunaru razlicite rezolucije, a pogodnost za pisanje funkcije je i to sto su mu vecina kontrola iste duzine, iste visine, kao i top pozicije, znaci samo treba izracunati left poziciju za nekoliko kontrola i to je to...
[ t.marko016 @ 01.07.2010. 14:53 ] @
I kad se sve sabere i oduzme i ja sam mu to predlozio :D.

Pozdrav
[ captPicard @ 01.07.2010. 15:00 ] @
vuchko, može ovako (primjer je iz Delphi-a):

Code:
  for i := 0 to ComponentCount - 1 do
  begin
    if Components[i] is TDBEdit then
    begin
      if (Components[i] as TDBEdit).ReadOnly = True then
       begin
        (Components[i] as TDBEdit).Color := nekaboja;
        (Components[i] as TDBEdit).Width := nekiParam * nekiDrugiParam;
       end;
    end;
  end;


Ako treba i EditBoxove razlikovati, da im nazive npr. txtVrsta1, txtVrsta2... txtGrupa1, txtGrupa2, pa ih razlikuje po tim brojevima ako su dužine različite.
[ miki987 @ 02.07.2010. 18:17 ] @
pitanje-problem?

[ shpiki @ 02.07.2010. 19:06 ] @
Koja je vrednost za faktura.Controls(Brojac).Top?

Pozdrav.
[ vuchko.vuchko @ 02.07.2010. 22:31 ] @
Code:
miki987

Mogao si odgovoriti i na pm , kao sto si i dobio kod , no dobro...

tu ti je problem jer nemozes mijenjati visinu kombo boxa pa si na vrhu funkcije trebao staviti
Code:
On Error Resume Next
, a ja sam to izostavio jer nisam se sjetio da se ona ne moze mijenjati. Eto toliko...
[ miki987 @ 02.07.2010. 22:34 ] @
scaleheight = 10650
scaleleft = 0
scalemode = twip
scaletop = 0
scalewidth = 20250
top = -4980
[ miki987 @ 03.07.2010. 17:44 ] @
HVALA VELIKO svima na pomoci :D
vuchko.vuchko posebno tebi hvala, molim te proveri pvt
[ vuchko.vuchko @ 03.07.2010. 22:00 ] @
Ma nista zato smo tu. Jesi resio ovaj zadnji problem?
[ miki987 @ 03.07.2010. 22:32 ] @
e opet problem, fali mi jos samo malo da se na svim rezoluicijama vidi desni deo forme, sumnjam na ova podesavanja, zapravo ja svaki put kad zapocinjem raditi neki program najpre kusrorom rucno razvucwm po vertikali i horizontali formu, ova podesavanja u glavnom ne diram. e sad, bez tvog koda program se vidi u celosti u najveoj rezoluciji dok sa kodom za vrlo malo sece formu sa desne strane isto u najvecoj rezoluciji.
[ vuchko.vuchko @ 03.07.2010. 23:11 ] @
A zasto moras staviti
Code:
WindowsState -> Maximized
, pokusaj staviti na Normal a pri Form Load stavi
Code:
 Me.Left=1 i Me.Top=1  Me.Height=RezolucijaPoVisini i Me.Width=RezolucijaPoDuzini
, Vjerujem da bi tada onaj moj kod odradio posao kako valja i sve bi se fino ravnomerno razvulko po celom ekranu...
[ miki987 @ 05.07.2010. 13:13 ] @
evo sta se desava

Code:
 
Private Sub Form_Load()

 Me.Left = 1
 Me.Top = 1
 Me.Height = RezolucijaPoVisini
 Me.Width = RezolucijaPoDuzini
 
Parametrizacija Me.Count, Me.Height, Me.Width, faktura
Resizer Me.Count, Me.Height, Me.Width, faktura

end sub
[ miki987 @ 05.07.2010. 15:04 ] @
vuchko ne vredi ovo ipak ne radi, kad smanjim rezoluciju i pokrenem program isti k... i popizdeo sam vise nemam pojam sta vise da radim
[ vuchko.vuchko @ 05.07.2010. 15:28 ] @
Da li bi bio voljan postaviti samo formu faktura, ovde na forum, samo sa komandama slobodno ti obrisi kod, cisto da pokusamo to resiti... Pozdrav!
[ miki987 @ 05.07.2010. 15:40 ] @
naravno, evo pogledaj
[ vuchko.vuchko @ 05.07.2010. 17:21 ] @
U startu si pogresio, kada si razvukao formu preko vrednosti "rezolucije" ekrana i sad jednostavno se desni dio ne moze nikako ubaciti na ekran, mislim da je za resenje tvog problema potreban zoom in i zoom out, evo sklepao sam nesto pa vidi jel ti valja naravno sad ti trebas napraviti da se to razvuce po sirini i mislim da bi moglo raditi...
[ miki987 @ 05.07.2010. 22:00 ] @
hmmm ne znam sta mogu sad sa ovim ...
sta mi predlazes ako bih krenuo od samog pocetka, nije mi problem da prepravim kod i formu samo ne znam kako?

usput pogledaj kako je to odradjeno na ovom primeru, to je on osto ja zapravo hocu

[Ovu poruku je menjao miki987 dana 06.07.2010. u 00:11 GMT+1]
[ vuchko.vuchko @ 06.07.2010. 00:56 ] @
Ma nemoras to raditi ponovo, jednostavno smanji formu na neku manju rezoluciju ekrana, a zatim malo stisni kontrole da sve stanu na nju i da fino izgledaju i to je to!
[ miki987 @ 07.07.2010. 12:45 ] @

problem resen, vucko hvala

Citat:
Private Sub Form_Load()
Parametrizacija Me.Count, Me.Height, Me.Width, form1
Resizer Me.Count, Me.Height, Me.Width, form1
form1.Height = Me.Height
form1.Width = Me.Width
Visina = Me.Height
Sirina = Me.Width
End Sub


Citat:
Private Sub Form_Resize()
Resizer Me.Count, Me.Height, Me.Width, form1
End Sub


modul

Citat:
Option Explicit

Public Parametar() As Double
Public Function Parametrizacija(BrKontrola As Integer, VisinaF As Integer, SirinaF As Integer, Form As Form)
Dim Brojac As Integer
On Error Resume Next
ReDim Parametar(BrKontrola, 4)
For Brojac = 0 To BrKontrola - 1
Parametar(Brojac, 1) = VisinaF / form1.Controls(Brojac).Height
Parametar(Brojac, 2) = SirinaF / form1.Controls(Brojac).Width
Parametar(Brojac, 3) = VisinaF / form1.Controls(Brojac).Top
Parametar(Brojac, 4) = SirinaF / form1.Controls(Brojac).Left
Next Brojac
End Function



Public Function Resizer(BrKontrola As Integer, VisinaF As Integer, SirinaF As Integer, Form As Form)
Dim Brojac As Integer
For Brojac = 0 To BrKontrola - 1
On Error Resume Next
form1.Controls(Brojac).Height = VisinaF / Parametar(Brojac, 1)
form1.Controls(Brojac).Width = SirinaF / Parametar(Brojac, 2)
form1.Controls(Brojac).Top = VisinaF / Parametar(Brojac, 3)
form1.Controls(Brojac).Left = SirinaF / Parametar(Brojac, 4)
Handler:
Next Brojac
End Function