Tu jeszcze muszę sprostować. Tak się cholernie cieszyłem, a na końcu dodałem, że nie sprawdzałem czy te dane są, tylko, że jedynie przez kompilator mi przeszło. No... i okazało się, że nie było. Cóż Panowie, posiedziałem jeszcze trochę nad tym i znalazłem rozwiązanie. I mogliście to też zauważyć i mi podpowiedzieć, że przecież robię nie tak. Kod o którym mówiłem:
Form1^ sd = %Form1();
sd->KATALOGER.Add_info[34] = "ss";
Teraz to przeanalizuje... to przecież nie może działać poprawnie. Jeśli Form1 jest klasą główną a ja... no właśnie, dwa błędy. Pierwszy to typ. Typ nie może być Form1, bo nie chce się odnieść do Form1, a do zmiennej (obiektu) tej klasy. Natomiast dane pochodzą z innej klasy i to ten typ danych należy utworzyć. U mnie ta klasa danych miała nazwę po prostu "data". I drugi błąd... nawias. Przecież on określa wywołanie funkcje, ew. z operatorem new (gcnew) tworzenie nowego obiektu. W przypadku klasy wywoła to konstruktor i utworzy nowy obiekt, a tego nie chcemy. To był główny błąd. Wszędzie z przyzwyczajenia zamykałem takie fragmenty nawiasami, a zapomniałem, że w tym przypadku jest to błędem. Wystarczyło usunąć nawias, co teraz wydaje się oczywiste. Aha, plusem była pomoc w rozdzielaniu projektu na pliki .cpp i .h. To nie był żaden problem "krzyżowania" się includów, jak to namiętnie tłumaczyli mi na pewnym bardzo znanym forum. Wiem dlaczego kompilator tak strasznie zasypywał mnie wtedy błędami, jednak nie potrafię tego tak dokładnie opisać, więc daruję sobie składanie na siłę. I jeszcze coś. Przed definicją (albo deklaracją :/ zawsze mi się to myli) należało wstawić słowo kluczowe static. Teraz jest to oczywiste, wtedy o tym nie pomyślałem. Poprawiony kod:
static data KATALOGER; // W klasie głównej
// i reszta w klasie z której chcemy uzyskać dostęp
data ^ sd = %Form1::KATALOGER; // odniesienie bezpośrednio do klasy danych, nie potrzebujemy możliwości manipulacji kodem okna głównego.
sd->Add_info[34] = "ss";
Tak więc teraz temat można zwyczajnie zamknąć. Problem rozwiązany w pełni.
Aha, jeśli to będzie czytał C. Baronie. Ten Twój program, Babilon... co do mojego, jak na razie ma w pełni działający interfejs, wszystkie główne funkcje. Tak jak mówiłem, wbudowana przeglądarka też jest i parę innych ciekawych rzeczy. Jedyne czym się wyróżnia jak na razie względem Twojego to ta opcja automatycznego robienia screenów do bazy danych. To rozwiązuje problem gdy screenów do filmu zwyczajnie nie mamy lub nie chce nam się szukać w necie (lub neta nie mamy. Nie oszukujmy się, takie sytuacje też się zdarzają ;p) Kwestia dorównania Twojemu programowi leży głównie w tym, że mój w ogóle od początku nie był w ten sposób projektowany. Funkcje nie były pisane w tak uniwersalny sposób, by dawać duże możliwości manipulacji i konstrukcji nowych elementów. Program miał być napisany na szybko, tylko dla mnie, bo musiałem jakoś szybko to posegregować. Dlatego właśnie teraz przeprojektowywanie całego programu wiąże się z o wiele większym wysiłkiem niż zaprojektowanie go od początku w poprawnej formie. Jednak jak zacząłem - skończę. Zwłaszcza, że zaraz po tym, mam już kolejny do napisania. Tym razem na poważnie, bo do szerszego grona odbiorców.
Pozdrowienia.
Aha, forum już poleciłem paru osobom
