
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:
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:
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!
(c) Alan ford