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

Mozda je glupo, ali nevidim drugu klasu iz druge klase.

[es] :: .NET :: Mozda je glupo, ali nevidim drugu klasu iz druge klase.

[ Pregleda: 3429 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Mozda je glupo, ali nevidim drugu klasu iz druge klase.16.12.2003. u 12:27 - pre 224 meseci
Code:

    Public Class MyReceiveMail
        Public r_importance As String
        Public r_from As String
        Public r_subject As String
        Public r_datereceived As String
        Public r_size As String

        Public Sub New()
            r_importance = ""
            r_from = ""
            r_subject = ""
            r_datereceived = ""
            r_size = ""
        End Sub

    End Class


ovo je jedna klasica


Code:


    Public Class POP

        Public POPServer As String
        Public user As String
        Public pwd As String
        Public whatport As Integer
*
*
*
* itd itd.
*
*
*


        Public Function GetMessagesHeaders(ByVal howmany As Integer, 
                                             ByVal whichNS As NetworkStream) As Boolean

            If howmany = 0 Then
                Return False
                Exit Function
            End If

            Dim outbytes() As Byte
            Dim input As String
            Dim sr As StreamReader = New StreamReader(whichNS)
            Dim mCount As Integer = 1
            Dim resp As String
            Dim tokens() As String
            Dim firstoccurence As String




e sad ja bih zeleo (pusti snovi) da iz ove POP klase mogu da napunim onu gore klasu ili sto je jos bolje da odmah sve spustim u frmMain.ListMail (ListView kontrola )
medjutim ova klasa ne vidi tu kontrolu. Napomena sve se nalazi u file main.vb

 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.proxy.cg.yu



Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.16.12.2003. u 14:57 - pre 224 meseci
Ova tvoja "druga" (ili prva!? :-)) klasa nikada nece da vidi kontrolu na formi posto je ona (kontrola) definisana kao private u klasi tvoje forme.

Probaj da funkciju GetMessageHeaders pozivas u okviru nekog event handlera forme (klik na neko dugme ili nesto drugo...), u okviru koga si takodje kreirao i novu instancu klase POP, pa da onda popunjavas ListView...

Iskreno receno nije mi bas jasno sta si hteo...
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.proxy.cg.yu



Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.16.12.2003. u 15:02 - pre 224 meseci
Najbezbolnije (ali i najneodgovarajuce - citaj pogresno) jeste da kontrolu na formi proglasis za internal (manje pogresno nego public) ili public...

Ovo samo ako stvarno ne pronadjes neko drugo resenje... Ako tako uradis, nemoj nikom da pokazujes kod da te ne upuca....
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.16.12.2003. u 16:32 - pre 224 meseci
Nazalost zbog neke vezbe sve mi je public. I sto ne sme i sto sme.
Najgore mi je sto u tim funkcijama ne mogu da vidim ni jednu od public definisanih klasa, pa samim tim nemogu ni da iz klase pristupim frmMain - u na kojoj je ListView kontrola. Morao sam da resavam zaobilaznim putem, da funkcija GetMeesagesHeaders vraca tip Collection, pa onda........
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.16.12.2003. u 17:51 - pre 224 meseci
Sta tacno je problem? Koja linija je gde prijavljuje gresku?

Kako mislis iz jedne klase ne vidis drugu koja je public?
Commercial-Free !!!
 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.17.12.2003. u 09:20 - pre 224 meseci
Citat:
degojs:
Sta tacno je problem? Koja linija je gde prijavljuje gresku?

Kako mislis iz jedne klase ne vidis drugu koja je public?


Ne prijavljuje gresku. Jednostavno kada definisem neku promenljivu kao public pre pocetka koda npr:

Code:

    Public Class frmMain
        Inherits System.Windows.Forms.Form

        Public email As New System.Web.Mail.MailMessage()
        Public TEMP_PATH As String = Path.GetTempPath
        Public m_PathToLocalUserFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\Nesto\Mail\"
        Public m_MailAccountSettings As Integer = -1
        Public myAccountP As New myAccount()
        Public ReceivedMail As New Collection()
        Public CollMyMailP() As MyReceiveMail


i posle u nekoj drugoj klasi pokusam da napisem nesto kao

nekistring = myAccountP.Name <<<<<<<< -ovde bi bila greska.

Jednostavno ne vidi myAccountP , a sve je public!




 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.proxy.cg.yu



Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.17.12.2003. u 13:57 - pre 224 meseci
Problem je u tome sto kada se program pokrene u Main-u (koji se u VB.NET-u ne vidi, bar tako mislim da je sakriven...), Aplikacija instancira novu instancu tvoje klase frmMain:

Code:

Application.Run(new frmMain());


E ti tu instancu nigde ne vidis iz tvojih drugih klasa, pa tako ne mozes ni da pristupis njenim poljima...

Mogao bi kada bi instancirao novu instancu klase frmMain:

Code:

frmMain mainForm = new frmMain();
string nekiString = mainFrom.myAccountP.Name;


ali to nije ona instanca koja tebi treba...

Probaj da pronadjes Main metodu i da uradis nesto ovako:

Code:

public class frmMain: ...
{
    ...
    public static frmMain MojaForma = null;
    ...
    public static void Main()
    {
        frmMain.MojaForma = new frmMain();

        Application.Run(frmMain.MojaForma);
    }
    ...
}


onda ces moci da pristupas pojedinim kontrolama na formi:

Code:

...
string someString = frmMain.MojaForma.myAccountP.Name;
...


Nadam se da sam pogodio o cemu se radi...
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.proxy.cg.yu



Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.17.12.2003. u 14:28 - pre 224 meseci
Sad mi pade na pamet...

predaj instancu forme koja ti treba kao parametar metodi tvoje "druge" klase pa posle radi sa njom...

Code:

public class frmMain: Form
{
    ...
    private void NekiEventHandler(object sender, EventArgs args)
    {
        TvojaDrugaKlasa tvojaDrugaKlasa = new TvojaDrugaKlasa();
        tvojaDrugaKlasa.NekaMetoda(this);
    }
    ...
}

#######################################################

public class TvojaDrugaKlasa
{
    public void NekaMetoda(Form form)
    {
        string nekiString = form.myAccountP.Name;
        ...
    }
}

If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Re: Mozda je glupo, ali nevidim drugu klasu iz druge klase.17.12.2003. u 15:55 - pre 224 meseci
Citat:
havramm:
Problem je u tome sto kada se program pokrene u Main-u (koji se u VB.NET-u ne vidi, bar tako mislim da je sakriven...), Aplikacija instancira novu instancu tvoje klase frmMain:

Code:

Application.Run(new frmMain());


E ti tu instancu nigde ne vidis iz tvojih drugih klasa, pa tako ne mozes ni da pristupis njenim poljima...

Mogao bi kada bi instancirao novu instancu klase frmMain:

Code:

frmMain mainForm = new frmMain();
string nekiString = mainFrom.myAccountP.Name;


ali to nije ona instanca koja tebi treba...

Probaj da pronadjes Main metodu i da uradis nesto ovako:

Code:

public class frmMain: ...
{
    ...
    public static frmMain MojaForma = null;
    ...
    public static void Main()
    {
        frmMain.MojaForma = new frmMain();

        Application.Run(frmMain.MojaForma);
    }
    ...
}


onda ces moci da pristupas pojedinim kontrolama na formi:

Code:

...
string someString = frmMain.MojaForma.myAccountP.Name;
...


Nadam se da sam pogodio o cemu se radi...


Definitivno si pogodio o cemu se radi. Ako je tacno gramaticki: Nijedna klasa unutar
main.vb file "ne vidi" drugu klasu sem ukoliko ne koristim nesto tipa

Code:


  Dim SaveAccount As New myAccount() 



e samo u tom slucaju mogu dalje da koristim ali to mi nije bilo resenje.

Nego sve sam problem do problema.

Nemogu nikako da pretvorim date koji mi stize preko POP3 protokola u neki normalan ShortDate ili bilo koji date format. Nasao sam da je taj datum po protokolu
RFC1123Pattern ali nema sanse da uz pomoc bilo kojih trikova to proradi primer:

Code:


/// resp je string promenjiva u kojoj se cuva odgovor POP3 servera u ovom slucaju
/// Date: Wed, 17 Dec 2003 14:02:33 +0100

  Dim shortDate As DateTime
  Dim format As New System.Globalization.CultureInfo("en-US", False)
  Dim expectedFormats As String() = {"R", "r"}
 
  shortDate = System.DateTime.ParseExact(resp.Substring(5), expectedFormats, format, System.Globalization.DateTimeStyles.AllowWhiteSpaces)

  MyMailP.r_datereceived = shortDate

 
Odgovor na temu

[es] :: .NET :: Mozda je glupo, ali nevidim drugu klasu iz druge klase.

[ Pregleda: 3429 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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