ďťż

94098_1

Lemur zaprasza

Strona: [  >  ]  z  1     










Autor
Temat: MsgBox; nie taki prosty temat.











Tamgo







Typ:
neutral

Postów: 129

Zarejestrowany: Aug 2004





MsgBox; nie taki prosty temat.


Poniżej jest zapis dla MsgBox, który testuję, a ma wg. mnie ciekawą zaletę; nie pokazuje na listwie (może na belce - grom wie jak to nazwać?) durnowatej ikony systemowej -  w postaci białego kwadracika  swego czasu pytałem na Forum, jak się jej pozbyć (tej ikony kwadracika), lub jak ją zastąpić swoją programową,  ale nikt nie odpowiedział. Ponadto, jest wyświetlany tylko przycisk X (zamykający okienko) i jest on zablokowany, bo okienko jest domyślnie modalne, można je zamknąć wyłącznie klikając na przyciski-polecenia.     

Pyt = MsgBox( _
            prompt:="Nie określono drugiego wskaźnika - czy chcesz go teraz określić?", _
            Title:="Brak żądanego wskaźnika!!", _
            Buttons:=vbYesNo + vbQuestion)
              If Pyt = vbNo Then
                NachPods.Value = True
                Exit Sub
              Else
                Kmt.Show
              End If


Pytanie I
Nie jest to zapis z VB, chyba jest z VBA, a może się mylę. Czy można nim operować na dłuższą metę w VB. Tzn. czy nie będzie z nim jakichś problemów np.; na innych kompach, z kompatybilnością, licencje, referencje itp. Jak na razie u mnie on działa.

Pytanie II
Jak widać z linijek kodu, Msg przypisany jest zmiennej Pyt. Chciałem zmienną tę zastosować globalnie  zmieniać tylko komunikaty (wykorzystując tablicę komunikatów jest ich trochę). Niestety VB się buntuje. Tak więc tak zapisany Msg działa u mnie dobrze jedynie na lokalnych zasięgach, czyli Private. Ja jestem nadal początkujący, co o tym myślą rasowi programiści?

W tej chwili działają u mnie trzy różne typowe dla VB ( moje ) funkcje globalnie wykorzystujące Msg, a każdy typ spełnia określone zadanie ścisły podział ról.  Są b. przydatne, obsługują wiele wątków mojego programu, łącznie z komunikatami o błędach -  zmienia się tylko treść komunikatów odpowiednio do potrzeb. Są proste w przypisywaniu, bo wszystkie cechy są Public zapisane w Module. Wszystko byłoby fajnie, gdyby nie te systemowe kwadracikowe ikony.  Proszę o jakieś sugestie.







22-03-2005 12:49



 
      

4484571














DJK






Typ:
neutral

Postów: 871

Zarejestrowany: Feb 2004







1. Jest to poprawny zapis w VB a zapis np. Title:=... u możliwia bezpośrednie przypisanie bez konieczności pomijania parametrów opcjonalnych przecinkami np.

Zamiast pisać MsgBox("bla",,"moj tytul" możesz napisać MsgBox("bla",Title:="moj tytul"


2. Hmmm - ja nie zauważyłem żeby forma MsgBox'a
miał jakąś ikonę także nie wiem o jakiej ty ikonie mówisz.

3. Coś nie tak zadeklarowałeś bo zmienną Pyt na 100% można deklarować jako globalną - sprawdziłem to.

Pozdrawiam



_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie






22-03-2005 16:45



 
    














Tamgo







Typ:
neutral

Postów: 129

Zarejestrowany: Aug 2004







Oczywiście!! Jak zwykle chciałem przedobrzyć. Ta "kwadracikowa" ikonka brała się się stąd, że do funkcji dla moich Msg wpisałem coś takiego:

Public Function blad(tekst)                   
blad = MsgBox(tekst, vbCritical + vbSystemModal "Błąd!!"
End Function

Gdy usunąłem ten fragment zapisany tłustym drukiem, przestała się pokazywać. Tylko, że teraz okienka Msg nie są modalne, lepiej żeby były, bo program jest bardziej spójny i pewny, co muszę zrobić? Może jednak masz sposób by te "kwadracikowe" ikonki czymś zastąpić, skoro wiesz już skąd są.


[Post edytowany dnia 22-03-2005 23:15 przez Tamgo]






22-03-2005 22:50



 
      

4484571














DJK






Typ:
neutral

Postów: 871

Zarejestrowany: Feb 2004







Jedyne co mi przychodzi na myśl to wykorzystać funkcję API: MessageBox

P.S. Nadal nie rozumiem jednej rzeczy MsgBox'y zawsze są modalne także nie mam pojęcia coś tam narobił



_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie






23-03-2005 00:28



 
    














karolinavb







Typ:
neutral

Postów: 467

Zarejestrowany: Jan 2003







Tomaszu
Nie wiem jaki był Twój plan co do roli jaką w aplikacji czy systemie ma pełnić to okienko.

vbSystemModal- Na pasku tytułowym pojawia się ikonka Windows . Decyduje o pojawieniu się okna komunikatu "nad całym systemem".
Jeśli okno "góruje" nad aplikacją (tzn jest modalne wzgędem aplikacji, z której zostało wywołane) - vbApplicationModal  to użytkownik musi zdecydować się, zanim będzie mógł dalej pracować z aplikacją.

Natomiast jeśli okno "góruje"- vbSystemModal nad systemem - użytkownik musi odpowiedzieć, jeśli chce zrobić coś w systemie tak mówi help, ale dla Windows XP nie jest to prawda, można korzystać w innych aplikacji tyle tylko, że okienko pojawia się na wierzchu innych aplikacji, łatwo można to sprawdzić uruchamiając 2 razy swoją aplikację, jeśli ona na to oczywiście "pozwala" nie ma w tej chwili dostępnego Windows 98, aby tam sprawdzić, a nie korzystałam z takiej opcji bo nie należy raczej tego robić !!! 
(...przydatne gdy program jest np. ukryty a użytkownik korzysta w tym czasie z innych programów)


[Post edytowany dnia 23-03-2005 08:37 przez karolinavb]


_____________________________________________
Karolina






23-03-2005 08:34



 
  













Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza