Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Jeśli masz chęć i dasz radę, to tu zajrzyj
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004
Jeśli masz chęć i dasz radę, to tu zajrzyj

Zacząłem tak, bo chyba mój ostatni post nikogo nie wzruszył, więc niech go czytają tylko ci bardziej odważni i chętni. Lubią wyzwania, to może.....

Do rzeczy, czy może ktoś wie i ma ochotę się podzielić wiedzą nt: jak przekazać wartości 3-4  zmiennych do StatusBara w kilku oknach jednocześnie. Gdzieś miałem sampla, kurde nie mogę go znaleźć, to może ktoś uprzejmie mi podpowiedzieć.

A jak masz człowieku dobry dzień to spróbuj jeszcze w tym temaciku mi coś odrzeknąć.
http://board.freeweb.pl/posts.php?board_id=1543&topic_id=93410&division=615

dziękuję za uprzejmość już teraz

06-03-2005 11:07
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
karolinavb




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

Na "różowiutki" post starałam się odpowiedzieć w "tamtym" miejscu, a jeśli chodzi o StatusBar to pytanie czy pozostałe formy są "załadowane" w tym czasie ?


_____________________________________________
Karolina

06-03-2005 13:09
Pokaż profil karolinavb  Wyślij email do karolinavb   
Tamgo




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

Odpowiadając wprost na twoje pytanie: na teraz nie są nigdy wszystkie razem załadowane, na ogół jest załadowana tylko jedna z nich. Tak naprawdę to mam z Formami pewien dylemat. Ponieważ: nie potrafię sobie poradzić, jak ustawić kilka Form, aby te przekazane zmienne były później cały czas w nich niejako obecne, a Formy nie zajmowały mi pamięci.  Przecież jeśli zastosuję polecenie Hide, to owszem zmienne są przechowywane w nich ale też Formy są ukryte i oczywiście zajmują mi niepotrzebnie trochę pamięci - chyba tak to jest.
Jeśli zaś wpiszę im Unload Me to pamięci nie zajmują ale zmienne zostaną z nich wymazane. Więc chyba - tak mi się wydaje trzeba każdej Formie wpisać w poleceniu Load ładowanie tych właśnie zmiennych. A tu nie wiem jak to wykonać, bo przecież zmienną trzeba najpierw zainicjować. Bo jeśli jej nie będzi to podczas otwierania okna zostanie wywołany błąd.
PS. zerknij też na "różowiutki", dzięki tymczsem.

07-03-2005 10:12
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
karolinavb




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

Można oczywiście przez zmienne publiczne w module,
ale tak jak powiedziałam w "różowiutkim" poście można wykorzystać do wywołania formy następujący kod:

Forma, w której wywołujemy inną formę - kod :

Option Explicit

Private Sub CmdWolajForme2_Click()
    Dim oForma_2 As FrmStatusbar_2
    ''' po wykonaniu ponizszej linijki zostanie wykonane tylko Initialize formy FrmStatusbar_2
    Set oForma_2 = New FrmStatusbar_2
    With oForma_2
        .OczyKaroliny = "czarne"
        .AutoKaroliny = "Czerwone Porsche"
        .UstawZbiorZmiennych "Dzień Dobry", "Śnieg"
        '''' i dopiero teraz będzie wykonana procedura zdarzenia Load  - zakładam , że jest to tryb modalny
        '''' gdy jest inaczej  deklaracja  Dim oForma_2 As FrmStatusbar_2
        ''''oraz odwołanie    Set oForma_2 = Nothing
powinny się znaleźć w innym miejscu , nie wiem jaki masz kod

        .Show vbModal, Me
    End With
    ''''nie wolno zapomnieć odwołać
    Set oForma_2 = Nothing
End Sub

************************************
Forma wywoływana -  kod (ma ona przykładowo kontrolkę Label Me.lblauto oraz StatusBar z 2-ma panelami :

''' kod formy FrmStatusbar_2
Option Explicit
Public OczyKaroliny As String
Public Powitanie As String
Public Opady As String

'''' inny sposob deklarowania właściwości
'''' Generowanie poprzez Calss Builder Utility

Private mvarAutoKaroliny As String    'local copy

Public Property Let AutoKaroliny(ByVal vData As String)
    mvarAutoKaroliny = vData
End Property

Public Property Get AutoKaroliny() As String
    AutoKaroliny = mvarAutoKaroliny
End Property

Private Sub Form_Initialize()
''' tu nie można użyc żadnych właściwości generycznych formy
MsgBox "initialize  formy 2"
End Sub

Private Sub Form_Load()
MsgBox "Load  " & Me.Name & "- OczyKaroliny " & Me.OczyKaroliny & vbNewLine & "AutoKaroliny " & _
Me.AutoKaroliny
Me.lblauto = Me.AutoKaroliny
Me.lblInfo = Me.Powitanie & "  " & Me.Opady
''' lub gdy jest status bar
With Me.StatusBar1
    .Panels(1).Text = Me.AutoKaroliny & "  " & Me.OczyKaroliny
    '''' jesli status ma 2 panele panele można przywoływać też przez Key
    .Panels(2).Text = Me.Powitanie & "  " & Me.Opady
End With
End Sub

Public Sub UstawZbiorZmiennych(ByVal sPowitanie As String, ByVal sOpady As String)
Me.Powitanie = sPowitanie
Me.Opady = sOpady
End Sub

Są jeszcze inne możliwości, ale ta wydaje mi się stosunkowo prosta, aczkolwiek nie jestem taka pewna czy o to własnie chodziło, może deklaracja zmiennych publicznych lub klasy byłaby bardziej odpowiednia, to zależy od kodu, który masz i sekwencji zdarzeń a Twojej aplikacji.

[Post edytowany dnia 07-03-2005 11:26 przez karolinavb]


_____________________________________________
Karolina

07-03-2005 11:13
Pokaż profil karolinavb  Wyślij email do karolinavb   
Tamgo




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

Wybacz, że zapytam. Tryb modalny, chodzi o prawidłowe zamknięcie? Czyli odnosi się do .... właśnie do czego? Przyznam, nie rozumiem. Forma jest zamykana albo "X", albo poprzez linię kodu wybranego obiektu. W moim progu zamykane są (z założenia) wybranym przyciskiem "Przepisz" - bo chodzi o przepisanie wyników obliczeń do arkusza zbiorczego, bądź podanie wyników obliczeń do dalszej obróbki dla innej Formy. Ale można je pozamykać "X". Więc.....

07-03-2005 12:28
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
karolinavb




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

Tłumaczenie z VB4ALL:
Metoda Show wyświetla formę lub MDIForm

Składnia: obiekt.Show [Modalność][, FormaWłaściciel]

obiektobiekt, który wykorzystuje metodę Show, dostępny na liście
Modalność  (Opcjonalne) Argument całkowity określający rodzaj modalności formy. Jeżeli argument ma wartość 0 to forma nie będzie modalna, jeżeli ma wartość 1 - forma będzie modalna (vbModal) i nie będzie można wykonać innych działań aplikacji przed ukryciem lub usunięciem formy z pamięci.
FormaWłaściciel(Opcjonalne) Wyrażenie łańcuchowe określające właściciela wyświetlanej formy. Zwykle dla form w Visual Basic używane jest słowo kluczowe Me.

Jeżeli forma nie jest załadowana przez wywołaniem metody Show, Visual Basic automatycznie ją załaduje.
Jeżeli metoda Show wyświetla formę niemodalną (modeless) kod aplikacji jest normalnie wykonywany i nie jest przerywany. Jeżeli metoda Show wyświetla formę modalną (modal) pozostały kod nie jest wykonywany, dopóki forma modalna nie zostanie ukryta lub usunięta z pamięci.
Jeżeli wyświetlana jest forma modalna, akcja użytkownika (wciskanie klawiszy klawiatury lub myszy) nie może się odnosić do innych obiektów niż tych, które znajdują się na formie modalnej. Program musi ukryć tę formę lub usunąć ją z pamięci (zwykle po podjęciu akcji przez użytkownika) zanim użytkownik będzie mógł podjąć działania dla innej formy.
Formy MDI nie mogą być modalne.
Podczas wyświetlania formy modalnej inne formy aplikacji zostają zablokowane, jednak inne aplikacje nie.
Forma startowa aplikacji jest automatycznie pokazywana po zakończeniu wykonywania zdarzeniaLoad.

Przykład użycia metody Show:

Form1.Show  'pokazanie formy niemodalnej
Form2.Show 1  'pokazanie formy modalnej
inny kod....

Przykład wyświetla formę Form1 i ponieważ nie jest ona modalna wyświetla zaraz formę Form2. Form2 jest modalna, więc nie można podjąć żadnych działań na formie Form1 zanim Form2 nie zostanie ukryta lub usunięta z pamięci., ani przejść do linii inny kod.


Jeśli chodzi jeszcze o parametr "właściciel", to przytoczę wyjaśnienie w orginalnym brzmieniu:

A Form can be virtually "attached" to another Form. This will serve two purposes:
the shown Form will always "stay on top" of the owner Form and
will unload automatically if the owner Form is unloaded.


P.S. A tu
http://www.vbaccelerator.com/home/VB/Code/Libraries/Subclassing/Emulating_Modal_Forms/article.asp

jest ciekawy artykuł na temat form warto przeczytać

[Post edytowany dnia 07-03-2005 13:08 przez karolinavb]


_____________________________________________
Karolina

07-03-2005 12:46
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 5 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1