• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kiedy użyć this, a kiedy nazwy formy?

0 głosów
151 wizyt
pytanie zadane 9 października 2016 w C i C++ przez Shiro Stary wyjadacz (10,040 p.)

Witam!

Mam taki kod:

void wczytaj()
{
    fstream plik;
    plik.open("lohjgg.txt", ios::in);
 
    if (plik.good() == false)
    {
        this->Notification->Text = "Błąd otwarcia pliku, kliknij aby spróbować ponownie!";
        this->Notification->Visible = 1;
    }
}

Jest to plik .cpp i VS2013 nie chcę mnie przepuścić z użyciem 'this' Może mi ktoś wytłumaczyć od czego zależy czy powinniśmy użyć this czy nazwy formy i jak komunikować się pomiędzy dwiema formami np w celu ukrycia przycisku? 

Z góry dziękuje i pozdrawiam!

komentarz 9 października 2016 przez unknown Nałogowiec (39,720 p.)
Rozumiem, że wczytaj to metoda jakiejś klasy, w której jest obiekt o nazwie Notification?
komentarz 9 października 2016 przez Shiro Stary wyjadacz (10,040 p.)
Tak notification to element, który ma się wyświetlić w przypadku błędu otwarcia pliku.

Z kolei wczytaj to void na poziomie funkcji głównej Main();

https://www.dropbox.com/s/oi4ch12two3xghj/Zrzut%20ekranu%202016-10-09%2017.59.36.png?dl=0
komentarz 9 października 2016 przez MichuDev Pasjonat (20,360 p.)
Proszę nie przesyłaj kodu w formie screenów, naruszasz regulamin i lepiej się czyta w formie tekstu.

2 odpowiedzi

+1 głos
odpowiedź 9 października 2016 przez Patrycjerz Mędrzec (187,050 p.)

Po pierwsze, to nie C++, tylko C++/CLI lub C++/CX (nie wiem, czego używasz). Pod drugie, wskaźnik this ma jedynie sens w metodzie klasy - w zwykłej funkcji niby do czego miałby się odnosić?

komentarz 9 października 2016 przez Shiro Stary wyjadacz (10,040 p.)
Tak to C++/CLR

No chciałbym się odnieść do elementu będącego w klasie ..

Klasa MainWindow ma przycisk Notification, którego visible chce zmienic na true.
1
komentarz 9 października 2016 przez Patrycjerz Mędrzec (187,050 p.)

Jeśli tak, to używasz odpowiednio:

  1. Dla wskaźnika na obiekt operatora "->"
  2. Dla obiektu operatora "."

Korzystasz wtedy z nazw obiektów widocznych w danej funkcji... z resztą, to są podstawy i nie mam bladego pojęcia, dlaczego jeszcze ich nie przyswoiłeś.

Z twojego kodu wynika, że chcesz skorzystać z obiektu klasy MainWindow w funkcji wczytaj, czyli musisz zrobić tak, aby ten obiekt był w tej funkcji widoczny, robiąc go globalnym lub przesyłając przez argument.

0 głosów
odpowiedź 9 października 2016 przez Criss Mędrzec (171,380 p.)

Z kolei wczytaj to void na poziomie funkcji głównej Main(); 

?? To nawet sensu nie ma. Ale screen rozjaśnił sprawe.. Btw. kod wrzucaj w postaci tekstu a nie obrazków.

this to wskaźnik wskazujący na obiekt z którego została wywołana metoda w której odniosłeś się do this. Czyli w "samodzielnych" funkcjach czy metodach statycznych nie ma żadnego zastosowania (kompilator tego nie skompiluje, bo nie wiadomo o co ci chodzi). Na dalszą część pytania ci nie odpowiem, bo nigdy nie pisałem w tym całym c++/CLR (czy CLI, whatever) i nie wiem o czym mówisz.

Podobne pytania

0 głosów
0 odpowiedzi 34 wizyt
pytanie zadane 14 czerwca 2016 w C i C++ przez Shiro Stary wyjadacz (10,040 p.)
0 głosów
1 odpowiedź 103 wizyt
pytanie zadane 20 czerwca w JavaScript, jQuery, AJAX przez 42savage Bywalec (2,170 p.)
0 głosów
0 odpowiedzi 35 wizyt
pytanie zadane 9 kwietnia w JavaScript, jQuery, AJAX przez crimson39 Nowicjusz (120 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

66,513 zapytań

113,278 odpowiedzi

239,907 komentarzy

46,647 pasjonatów

Przeglądających: 210
Pasjonatów: 18 Gości: 192

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...