Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Run-time kreiranje kontrole na formi, problem, problem...

[es] :: Access :: Run-time kreiranje kontrole na formi, problem, problem...

[ Pregleda: 2021 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Run-time kreiranje kontrole na formi, problem, problem...09.11.2004. u 16:09 - pre 235 meseci
Uh,uh, ja ovde verovatno najčešće ostavljam pitanja. Moderatori, ako smatrate da sam dosadan brišite ovo

Iskreno se nadam da nećete.


LM, imam sledeći problem: na formi treba da napravim neku kontrolu tipa 10x10 i kad kliknem na bilo koje polje, da mi to polje "upadne", tj. da ostane "kliknuto", i kad kliknem "OK" na toj formi, da kasnije obrađujem te podatke o poljima koja su kliknuta. Baš deluje nepovezano, ali zamislite minesweeper sa 10x10 polja - e baš takva kontrola mi treba (ali, naravno ne za igricu nego za aplikaciju!).

Ja sam zamislio to na sledeći način:napravim formu, pa sa dve ugnježdene petlje kreiram takav kvadrat dinamički na formi, putem labela sa "sunken" atributom (ne mogu da koristim buttone, jer oni se posle klika "vraćaju"). Ali avaj, stao sam na prvom koraku jer posle izvršenog sledećeg test koda koji bi trebalo da napravi običnu labelu na formi:

Code:

    Dim CustomControl As Control
    
    Set CustomControl = CreateControl(Me.Name, acLabel)
    
    With CustomControl
        .Caption = "Test"
        .Width = 100
        .Height = 100
        .Top = 100
        .Left = 100
        .Name = "Test"
    End With



...javlja mi se error: You must be in design view to create or delete controls.

OK, ja kažem. Napravim na jednom dugmetu da se otvara forma u design modu, napravim tu kontrolu i to sve šljaka. Ali, ne znam kako onda tu formu da pozovem da mi se prikaže u "Normal" modu? Probao sam sa:
Code:

DoCmd.Close acForm, "Form1", acSaveYes

DoCmd.OpenForm "Form1", acNormal


...ali mi javlja Run-time error 2501: The OpenForm action was canceled.

Ono što sam ja pokušao, jel'te, to je da otvorim formu u dizajn modu, kreiram kontrolu, zatvorim formu, pa da ponovo otvorim formu, ovoga puta u Normal modu, ali to neće da radi. Da li zna neko u čemu je problem? Da li neko može da mi predloži metod koji je možda optimalniji za ovo rešenje (u obzir dolazi i predlog za neku gotovu freeware kontrolu na koju je možda neko naleteo, a da se može iskoristiti za ovo)?

Hvala i pozdrav!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
*.metrohive.neobee.net.

Jabber: DarkMan


Profil

icon Re: Run-time kreiranje kontrole na formi, problem, problem...09.11.2004. u 17:38 - pre 235 meseci
CreateControl ne mozes iskoristiti za pravljenje kontrola dok ti program radi.
U dokumentaciji stoji da se CreateControl koristi za pravljenje vizarda koji ce kreirati nove forme (kao na primer oni vizardi pre samog kreiranja nove forme kada te pitaju koja tabela, raspored polja,...).

Jedina preporuka koju bih sada mogao da se setim je da napravis sve kontrole koje ti mogu zatrebati pa ih zatim sakrivas/prikazujes i pomeras u zavisnosti sta ti treba.
 
Odgovor na temu

Simke
Marko Simic
Sandfield Associates (Solution
Developer)
Novi Zeland

Član broj: 1158
Poruke: 751
*.dialup.xtra.co.nz.

ICQ: 71578686
Sajt: www.sandfield.co.nz


Profil

icon Re: Run-time kreiranje kontrole na formi, problem, problem...10.11.2004. u 05:22 - pre 235 meseci
Mislim da dinamicko kreiranje kontrola nije najsrecnije resenje, sta vise licno uvek izbegavam tako nesto. Zasto je neprakticno shvatices tek kada budes trebao da debug-ujes:)

Verujem da postoji neko drugo resenje za to sto ti treba, mozda neka 3rd party kontrola, kao neki data grid ili tako nesto.
U stvari, zar nebi mogao grid da napravis sa sub-form recimo?
All beer is good. Some beer is better.
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: Run-time kreiranje kontrole na formi, problem, problem...10.11.2004. u 06:58 - pre 235 meseci
Data grid... pa to je baš ono što mi treba!

Zar to nije nestandardna kontrola? Mislim, ja kod sebe je nemam uključenu po defaultu. Kako se ona pravi?


Pa i ja pokušavam da izbegnem dinamičko kreiranje, ali mi ne uspeva. Ako uspem taj data grid da odradim biće cool.
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: Run-time kreiranje kontrole na formi, problem, problem...10.11.2004. u 10:11 - pre 235 meseci
Evo bar sam malo uobličio šta mi treba-kontrola koja je nalik ovoj:



...samo što je veličine 10x10 i da mogu da "upadaju" dugmad prilikom klika, i da ostaju tako "upadnuta". Data grid omogućava samo unos podataka, a meni treba da samo mogu da klikćem.

Ova slika odozgo je skinuta sa kalendar kontrole, ali ja ne mogu da nađem na netu takvu gotovu kontrolu. Ima li neko ideju gde mogu da je skinem? Hvala!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Run-time kreiranje kontrole na formi, problem, problem...10.11.2004. u 13:55 - pre 235 meseci
Lepo ti je darko rekao - napravi svojih 10x10=100 labels. Svakoj na OnClick promeni property SpecialEffect i BackgroundColor. Evo ti kod koji radi za tri labele. Tebi treba to isto, za 100 labela. Mnogo posla, ali sta ces, zivot nije lak.
Code:

'Ceo kod je u forminom modulu
Option Compare Database
Option Explicit

Function ChangeLabel(ctl As Control)
'Ova funkcija menja izgled labele
Dim intLook As Integer

intLook = ctl.SpecialEffect 'kako kontrola trenutno izgleda

Select Case intLook
    Case 1      'If raised, sunk it and change the color
        ctl.SpecialEffect = 2   'Sunken
        ctl.BackColor = 12632256 'Light grey
    Case 2      'If sunken, raise it and match teh color
        ctl.SpecialEffect = 1   'Raised
        ctl.BackColor = 8421504 'Normal Grey
End Select
End Function

'Ovo su OnClick event procedure za tri labele na formi
Private Sub Label0_Click()
Call ChangeLabel(Me!Label0)
End Sub

Private Sub Label1_Click()
Call ChangeLabel(Me!Label1)
End Sub

Private Sub Label2_Click()
Call ChangeLabel(Me!Label2)
End Sub
Prikačeni fajlovi
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: Run-time kreiranje kontrole na formi, problem, problem...10.11.2004. u 14:21 - pre 235 meseci
Zidar, hvala na brzom odgovoru. Tako sam i imao na umu da uradim, i veruj mi, ceo dan sam tražio neku od "grid" kontrola, ali ovo što mi treba nisam našao. Ovako sam ja mislio da uradim ali sam mislio da može optimalnije, kroz petlju, barem da dodelim OnClick properties ako ne i da kreiram kontrole. Očigledno-ne može, pravac na ručno programiranje... Damn...


Hvala puno na primeru! Pozdrav
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

[es] :: Access :: Run-time kreiranje kontrole na formi, problem, problem...

[ Pregleda: 2021 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.