eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingVisual Studio C++ Express -> dostęp do formy głównej › Re: Visual Studio C++ Express -> dostęp do formy głównej
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
    From: Paweł Kierski <n...@p...net>
    Newsgroups: pl.comp.programming
    Subject: Re: Visual Studio C++ Express -> dostęp do formy głównej
    Date: Thu, 19 Nov 2009 14:35:47 +0100
    Organization: http://onet.pl
    Lines: 52
    Message-ID: <he3hjk$p2h$1@news.onet.pl>
    References: <he3gt7$223$1@inews.gazeta.pl>
    Reply-To: n...@p...net
    NNTP-Posting-Host: 91.197.12.15
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1258637748 25681 91.197.12.15 (19 Nov 2009 13:35:48 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Thu, 19 Nov 2009 13:35:48 +0000 (UTC)
    User-Agent: Mozilla-Thunderbird 2.0.0.0 (X11/20070601)
    In-Reply-To: <he3gt7$223$1@inews.gazeta.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:183973
    [ ukryj nagłówki ]

    Jan Kowalski wrote:
    > W jaki sposób uzyskać dostęp do formy głównej (i jej kontrolek) programu
    > napisanego pod Visual C++ Express?.

    Domyślam się, że projekt jest w C++/CLI - potwierdź, bo to bardzo
    istotna rzecz.

    > Oprawiam w okienkową skórę program napisany pierwotnie pod konsole. Włączyłem
    > plik z kodem źródłowy do projektu. Program kompiluje się poprawnie. Teraz
    > chciałbym aby parametry wprowadzane do kontrolek na formie głównej mogły
    > zostać wykorzystane przez pierwotny kod programu. Chodzi np. o nazwę pliku.
    > Oczywiście mogę skonwertować nazwę do char i podać do funkcji jako parametr,

    I to jest bardzo dobry pomysł.

    > mogę utworzyć zmienną globalną widzianą w całym programie i użyć ją do
    > przekazania nazwy,

    A to jest bardzo zły pomysł.

    > ale dlaczego nie ma sposobu (a przynajmniej ja nie wiem jak
    > to zrobić) aby uzyskać dostęp do formy głównej programu i jej kontrolek tak
    > aby odwoływać się w taki oto sposób Form1->textBox1->Text?

    Bo w ogólności nie ma takiej potrzeby.

    > Albo inny problem.
    > Funkcja przetwarza plik i potrzebuje sygnalizować to za pomocą progress bar.
    > Nie mając dostępu do formy głównej nie mam dostępu do progress bar.

    I nie musisz mieć. Wystarczy, że funkcja sygnalizuje postęp wywołaniem
    zwrotnym (callbackiem). Wtedy przekazujesz funkcji informację, że ma
    wywołać funkcję (np. statyczną metodę klasy okna głównego), która wie
    już jak informację o postępie zwizualizować. W .NET do tego służą eventy
    i delegaty.

    > Teoretycznie można to obejść pakując cały kod do wnętrza klasy,

    Znów bardzo zły pomysł.

    > ale nie
    > zmienia to faktu, że nie wiem w jaki sposób dostać uchwyt do formy głównej. Z
    > tego co mi wiadomo (jestem początkujący) inne RADy np. C++ Builder Borlanda
    > dają taką możliwość więc sądzę, że Visual powinien mieć podobną możliwość.

    Niestety Borland ma taką możliwość i wszystkie złe pomysły, które
    tutaj podałeś pośrednio wynikają z tej możliwości i początkowej łatwości
    uzyskiwania rezultatów za ich pomocą.

    --
    Paweł Kierski
    n...@p...net

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: