Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[VS C++] Używanie funkcji z formy głównej

Golab14 28 Maj 2011 20:58 921 5
  • #1 28 Maj 2011 20:58
    Golab14
    Poziom 9  

    Witam,

    Mam pytanie odnośnie korzystania z zadeklarowanych funkcji publicznych. Otóż w formie głównej o nazwie Form1 mam zadeklarowaną funkcję publiczną, z której chciałbym skorzystać w formie drugiej o nazwie "dod". W jaki sposób mogę ją wywołać? Dokładnie chodzi mi o to ,aby po kliknięciu w button formy podrzędnej, została uruchomiona funkcja z formy głównej.

    0 5
  • #2 28 Maj 2011 21:58
    wiesniak
    Poziom 31  

    Mówisz o formach i buttonach... Korzystasz z .NETowych Windows Forms?
    Jeśli tak, to przeczytaj moją odpowiedź https://www.elektroda.pl/rtvforum/viewtopic.php?p=9554403#9554403 - sytuacja jest analogiczna.

    Jeśli piszesz w czystym C++ (bez .NET) pewnie da radę użyć wskaźnika na funkcję (a może raczej metodę, bo chyba forma jest klasą?).

    0
  • #3 28 Maj 2011 22:15
    Golab14
    Poziom 9  

    Może dokładniej napiszę o co chodzi.

    W formie głównej napisałem funkcję :

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Którą wykorzystuję w tej samej formie pod buttonem:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod



    Natomiast teraz chciałbym skorzystać z tej samej funkcji w formie drugiej. Przeczytałem wątek, który załączyłeś, ale nie wiem jak to do tego odnieść.

    0
  • #4 28 Maj 2011 23:10
    wiesniak
    Poziom 31  

    Kod w tamtym wątku jest w C#, ale skoro masz formsy, to przerobienie nie powinno sprawiać problemów. Poza tym nie znam C++/CLI, więc przykłady będą w C#.

    Możesz to zrobić dokładnie tak, jak opisałem w tamtym wątku, tj. na drugiej formie zrobić zdarzenie

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Przy tworzeniu form2 robisz tak:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Natomiast gdy będziesz chciał wywołać swoją metodę z form2, robisz po prostu
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Odchodząc trochę od tematu, zmieniłbym podejście do użycia kodu, który pokazałeś. Odwołujesz się do tam bazy danych, więc moim zdaniem rozsądnie byłoby odseparować ten kod od okna i wynieść go do jakiejś osobnej klasy, natomiast parametry dla zapytania bazodanowego przekazywać przez parametry metody tej klasy.

    0
  • #5 29 Maj 2011 00:22
    Golab14
    Poziom 9  

    Wiem, że wypadałoby ten kod odseparować. Jak na razie się wszystkiego uczę i czasem proste rzeczy sprawiają mi wiele trudności. Czyli najlepiej teraz ten kody przenieść np. do pliku *cpp i tam utworzyć odpowiednią klasę wraz z metodami?

    0
  • #6 29 Maj 2011 10:02
    wiesniak
    Poziom 31  

    Tak. Później będziesz mógł w dowolnym miejscu "kulturalnie" odwołać się do tej klasy bez potrzeby robienia eventów itd.

    0