Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Komunikat przed pokazaniem okna.
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004
Komunikat przed pokazaniem okna.

Witam wszystkich.  Jak w temacie, czyli chcę aby  w moim PROGU przed otwarciem okna, pokazywał się komunikat MsgBox.
Po prostu w którymś momencie User może zmienić ważny parametr (nada drugiemu wskaźnikowi przeliczeniowemu charakter priorytetowy). A dokładnie w małym okienku, gdzie te parametry są ustalane, zaznaczy innego optiona. Ustawienia wielu elementów w PROGU, dostosują się do zmienionego parametru. Zmiana nie będzie bardzo widoczna. Jest więc prawdopodobne, że User może w którymś momencie zapomnieć, że pracuje na innym parametrze. Komunikat miałby przypominać o zmienionym parametrze. Najlepiej, jakby pokazywał się przed otwarciem nowego okna. A jego obecność (tego komunikatu) zależeć powinna od stanu tego Optiona. 
Jak to zrobić? Za podpowiedzi będę wdzięczny, z góry dziękuję.

[Post edytowany dnia 02-04-2005 18:29 przez Tamgo]

02-04-2005 18:26
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
anonim




Typ: Nie zarejestrowany

Private Sub Form_Load()
MsgBox ("Wiadomość"


02-04-2005 18:40
  
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004

Niestety to nie działa. Już próbowałem. Gdyby to było takie proste, nie zawracałbym głowy. Ale dzięki.

Jest okno, w którym ustawiam parametry. Ale to okno może być wywoływane z poziomu innych okienek.
Bezpośrenio do planowanej zmiany lub pośrednio przy próbie określenia nowego parametru (tego wymaga PROG). Komunikat MsgBox ma być zależnym. Zmieniono parametr - MsgBox pokazuje się
Nie zmieniono bądź usunięto parametr - MsgBox nie pokazuje się.

Pytanie: skąd PROG wie o zmianie parametru?
Odp: ze zmiany optiona w oknie parametrów, ponieważ wprowadzenie nowego parametru powoduje przełączenie optionów. Możliwe też jest bezpośrednie odczytanie w każdym okienku nowego parametru.

I właśnie tu leży pies pogrzebany. Bo jeśli okno parametrów jest niezaładowane ( po poleceniu Unload - próbowałem Hide, też nic), to jak PROG odczyta informację?

Jeśli wpisuję tak jak mi podałeś, czyli komunikat niezależny, to owszem działa. Ale u mnie musi być zależny, więc moje próby "Ifowania"  i "Caseowania" nic nie dają. Pewnie jest ze 100 innych sposobów ale ja ich nie znam. A właśnie o jeden z nich poprosiłem.

[Post edytowany dnia 02-04-2005 22:17 przez Tamgo]

02-04-2005 21:09
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
anonim




Typ: Nie zarejestrowany

Można wszystkie parametry zapisać do pliku ini, lub innego. Napisać procedurkę porównującą parametry w pliku i programie. I wywoływać ją przy ładowaniu określonych okienek. Oczywiście parametry muszą być widziane w całym programie.

02-04-2005 22:48
  
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004

Raczej odpada. Parametrami są tu kąty nachylenia z zakresu od 10 st do 80 st lub te same odpowiadające im wartości przeliczeniowe wyrażone w procentach w zakresie od 40 do 800. Zarówno jednostki jak i wartości określane są losowo - w każdym projekcie inne, a często zestawienia są mieszane. To są wartości, które User wprowadza ręcznie tylko i wyłącznie. Formułowanie w postaci jakichkolwiek plików odpada.

03-04-2005 00:23
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

To zrób doatkową procedurę w stylu:

Sub WywolajOkno()
'odczytaj czy wyświetlać komunikat
If zmienionoParametr then
MsgBox "", vbInformation, ""
Form1.Show
End If
End Sub

Tę procedurę wywołuj za każdym razem, kiedy będziesz chciał uruchomić to okienko


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

03-04-2005 10:31
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Ja zrozumiałęm z tego, że nie masz skąd pobrać informacji o tym, że zmieniono parametr. Więc może poprostu dodaj globalną/publiczną zmienną, z której będziesz odczytywał te informacje nawet, gdy okienko zostanie zamknięte.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

03-04-2005 10:49
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Czekaj, czekaj...

Ile masz tych parametrów?
Mi wychodzi, że 2: kąty lub procenty
To dlaczego, nie możesz tego zapisać do pliku?
Oprócz tego możesz przechowywać je (te zmienne) w jakiejś strukturze lub w zmiennych (2).

Możesz to zrobić tak, że przed każdym uruchomieniem jakiegoś tam polecenia w programie możesz wyświetlać okno z parametrami, jako okno dialogowe.
Jeśli użytkownik zmieni opcje, będziesz mógł je zapisać w zmiennych, strukturze lub w pliku.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

03-04-2005 12:47
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004

Jednak zawsze twierdzę, żeby otrzymać skuteczną pomoc należy dać od siebie jak najwięcej info dotyczących tematu.

Dzięki wszystkim.
Powiem inaczej. Nie chcę ich zapisać do pliku ponieważ:
musiałbym zapisać wszystkie możliwe, jakie mogą wystąpić. Za dużo kombinacji.

Dlaczego twierdzę, że zapisanie do pliku będzie niedostateczne? Prototypem programu było skonstruowanie czegoś podobnego na makrach w MsExcelu. Tam zgromadziłem wszystkie najczęściej występujące nachylenia (to jest przecież podobnie jak utworzenie pliku). Okazało się, że raz na jakiś czas trafiały się projekty z jakimiś "dzikimi" wskaźnikami. Wtedy był zamęt, a mój program był bezużyteczny. Ponadto występowały mieszane czyli pierwszy podawano w stopniach, ten drugi w procentach. Sposób w jaki obecnie funkcjonuje określanie paramteru jest dobry, bo jest uniwersalny i prosty w obsłudze, bo można je mieszać jak się podoba i zawsze będzie prawidłowo.
Dlatego nie chcę ich zapisywać do pliku.
Trzeba tylko wywołać komunikat we właściwym momencie.

Dla losmac:
Wart jest przemyślenia pomysł dotyczący wywoływania Msg przed wykonaniem jakiegoś polecenia. Chociaż mnie się wydawało, że najlepiej i bardziej czytelnie będzie przed otwarciem okna. Ale przecież nie można się upierać. Też masz rację ze zmienną.

Dla Marcin_an:
Jak już podawałem, taka informacja jest zawarta w oknie zmiany parametrów w postaci przełączonego Optiona, oraz w każdym oknie w postaci wartości zmiennej przeznaczonej do obliczeń. Jakoś nie potrafię tego wykorzystać, nie wiem zaćma albo co? Przyznam, że podałeś interesujące rozwiązanie. Właśnie.....zmienna, tu chyba trzeba pokombinować.

Jak wiecie nie jestem jeszcze zbyt biegły w VB, czy mógłby mi ktoś podpowiedzieć chociaż troszkę jak zmienną globalną (taka będzie musiała być) wywoływać Msg przed załadowaniem i wyświetleniem Formy. Wiem już, że taką procedurkę muszę wpakować do modułu - bo musi posłużyć 5 formom.

Dzięki za pomoc.

03-04-2005 20:02
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003


... Prototypem programu było skonstruowanie czegoś podobnego na makrach w MsExcelu. ...


A czy możesz mi przesłać to cudo, bym rzucił na to okiem? Oczywiście, jeśli to nie tajemnica...


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

03-04-2005 20:14
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Tomaszu

Jak rozumiem istotna jest nie tylko wartość nowa czy stara tego parametru, ale również informacja, że została ona zmieniona, a nowa wartość jest gdzieś pamiętana w programie poza formą, widzę,że do tej pory nie?
Też obawiam się, że Marcin ma rację i jedyną droga jest stworzenie sobie np.  publicznej struktury UDT (user-defined type)w module nie w formie,  gdzie będziesz pamiętał jaką wartość ma parametr na 1-dnym polu i informację, że został zmieniony na 2-gim polu. Możesz zrobić strukturę dla każdego parametru osobno. Jest to o tyle wygodniejsze od zwykłych zmiennych, że masz wszystko w jednej całości

Public Type udtMyType   
  NazwaParametru1 As double
  bZmiana As Boolean
End Type

Lub dla wszystkich jedną np:

Public Type udtMyType   
  NazwaParametru1 As double
  bZmiana1 As Boolean
  NazwaParametru2 As double
  bZmiana2 As Boolean
......
End Type

Albo niestety czasem jest potrzebna stara i nowa wartość np tak:

Public Type udtMyType   
  NazwaParametru As double
  NazwaParametru_stara As double
End Type

ponieważ czasem bywa tak, że użytkownik zmienia wartość parametru w okienku kilka razy, a w końcu wraca do najstarszej wartości i w tej 2-giej pozycji powinna być chyba ta najstarsza zapamiętana.
Takie struktury publiczne dla parametrów mogą wtedy być dostępne w całej aplikacji.
Można oczywiście wykorzystać klasę zamiast struktury, ale nie wiem czy jesteś zainteresowany, w końcu może nie jest tych parametrów dużo ?

No i pewnie jeszcze jest potrzebny rodzaj (czyli informacja np czy to procenty czy kąty ?) ???
A żeby o sposobie deklaracji i użycia się nie rozpisywać to zobacz w VB topic:

Creating Your Own Data Types
P.S. Ja też bym się cichutko dopisała do prośby Maćka , jakby co ...

[Post edytowany dnia 03-04-2005 20:48 przez karolinavb]


_____________________________________________
Karolina

03-04-2005 20:44
Pokaż profil karolinavb  Wyślij email do karolinavb   
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004

Przepraszam Was, nie mogę spełnić prośby z b. prozaicznego powodu. Dokumentację zacząłem prowadzić trochę później, gdy powstawały moje pierwsze wypociny w VBA. Nie sądziłem, że " się  rzucę " na pisanie programów. Natomiast ten prototyp był autentycznie wykonany na kilkunastu formułach i chyba dwóch makrach. Niestety się nie zachował.

Nie widzę też sensu wysyłania projektów napisanych w VBA z prostego względu. Nie ma w nich tej opcji, która mnie nurtuje. Mój program się rozwija, dodaję nowe elementy, które są efektem głębokiej analizy i przemyśleń. Musiałbym wysłać go w obecnej postaci. A ta prośba jest dla mnie - hmm - trochę niezręczna i kłopotliwa. Przepraszam Was, myślę, że zostałem dobrze zrozumiany.

Myślę, że macie dużo racji, muszę nad tym popracować, czy sobie poradzę? Jestem przekonany, że tak, chociaż...... czy mogę jeszcze liczyć na ew. pomoc?

P.S. Wyślę na priva screenshoty, pozwolą łatwiej zrozumieć o co mi chodzi.

[Post edytowany dnia 04-04-2005 14:59 przez Tamgo]

04-04-2005 14:55
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
Wszystkich odpowiedzi: 11 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1