Odniesienie do obiektu

dział ogólny

Odniesienie do obiektu

Nowy postprzez Pitek » sobota, 12 grudnia 2009, 02:11

Witam !
Mam problem ze skompilowaniem dużego pliku .cpp błąd F1008 Out of memory.
Myślę że jest to spowodowane przeładowaniem pliku Unit1.cpp, więc chcę go podzielić i tutaj mam problem.
Jak w innym osobnym pliku .cpp odnieść się do Button1 w pliku Unit1.cpp (Form1) i czy to w ogóle możliwe ?
Pzdr
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana

Funkcje, argumenty funkcji.

Nowy postprzez Cyfrowy Baron » sobota, 12 grudnia 2009, 09:48

W tym odrębnym pliku musisz stworzyć funkcję z argumentem wskaźnikiem na obiekt do którego chcesz się odwołać, W tym co piszesz nie widzę jednak bardzo sensu, gdyż łatwiej jest chyba stworzyć funkcję która wykonuje jakieś zadanie i wywołać ją w zdarzeniu OnClick obiektu Button.

Co do problemu z pamięcią, to jak duży musi to być plik, skoro nie możesz go skompilować?!
Ile masz pamięci RAM w komputerze?
Jeżeli masz mało pamięci RAM, rzędu 256 MB to ustaw większy rozmiar pliku wymiany.

Jednak wydaje mi się, że to nie problem pamięci tylko masz jakieś błędy w projekcie aplikacji.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Odniesienie do obiektu

Nowy postprzez Pitek » sobota, 12 grudnia 2009, 14:43

Mam 4GB ramu, na Xp 32 bit więc nie całe ;) Plik ma 3,6MB a plik wymiany mam dobrze ustawiony też myślałem o błędzie w aplikacji jest nie zwraca mi go kompilator więc jest dobrze (składniowo). w takim razie zobacze z odwołaniem do funkcji tylko jak jest na to jakiś tut na głównej stronie?
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana

Re: Odniesienie do obiektu

Nowy postprzez polymorphism » sobota, 12 grudnia 2009, 14:59

A co w tym pliku jest, że ma aż 3,6MB?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    NieznanyNieznana

Re: Odniesienie do obiektu

Nowy postprzez Pitek » sobota, 12 grudnia 2009, 15:33

Kod ;p a na poważnie tyle warunków wiem może nie najszczęśliwiej ale proszę o pomoc jak się odnieść funkcją do przycisku tak jak powiedział Baron ?
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana

Re: Odniesienie do obiektu

Nowy postprzez Cyfrowy Baron » sobota, 12 grudnia 2009, 15:35

Z taką ilością pamięci nie może być mowy o jej braku. Mając 4 MB pamięci RAM możesz wyłączyć plik wymiany, system będzie pracował szybciej. Ja mam tak zrobione, czyli nie mam pliku wymiany i nie mam problemów z brakiem pamięci.
Wina leży w projekcie coś źle robisz, a rozmiar pliku *.cpp 3.6 MB może świadczy o tym, ze często powtarzasz te same fragmenty kodu, umieszczając je w zdarzeniach. Powinieneś przemyśleć koncepcje projektu i zacząć operować na funkcjach i klasach zamiast tylko na zdarzeniach.

Kiedyś w początkach programowania, gdy używałem jeszcze C++Builder wersja 1, miałem podobne problemy i wynikało to z błędów w programowaniu, których winny byłem ja nie środowisko, nie system.



Jak widzę nic lub niewiele wiesz o funkcjach.
Prosty przykład:

Kod: Zaznacz cały
void __fastcall Funkcja(TButton *MyButton)
{
MyButton->Coś_tam...
}


odwołanie do funkcji:
Kod: Zaznacz cały
void __fastcall Tform1::Button1Click(TObject *Sender)
{
Funkcja(Button2);
}


Poczytaj sobie: ► patrz serwis: Cyfrowy Baron

działy:
   teoria -> funkcje
   teoria -> tworzenie modułów
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Odniesienie do obiektu

Nowy postprzez Pitek » sobota, 12 grudnia 2009, 16:28

Dziękuję bardzo rzeczywiście mam bardzo dużo kodu wiele razy ale w tym samym zdarzeniu ale to wynika z odniesień do StringGrid1 mam tam warunki i dla każdego warunku mam 38 wiersze razy dwa plus jeszcze inne żeczy i sie z tego zrobiło 70 tyś lini :(
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana

Re: Odniesienie do obiektu

Nowy postprzez Cyfrowy Baron » sobota, 12 grudnia 2009, 21:59

Tak się nie pisze programów, trzeba to przemyśleć i znaleźć rozwiązanie, które zastąpi te tysiące warunków. Sprawdź powtarzające się elementy i spróbuj je zoptymalizować zastępując jakimś algorytmem.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Odniesienie do obiektu

Nowy postprzez Pitek » poniedziałek, 14 grudnia 2009, 23:42

Dziękuję za ostatnią sugestię odnośnie moich kłopotów z kompilacją programu. Przybudowałem konstrukcję i wszystko poszło dalej poprawnie.
Obecnie mam problem bo chcę otworzyć plik .doc bezpośrednio po kliknieciu w przycisk menu. Jest to plik pomocy. Używam O.O. ale chcialbym żeby ta funkcja była uniwersalna również dla MS Office. Szukałem w necie ale żaden kod nie odpowiada potrzebom mojego programu. proszę o wskazówki.
Pozdrawiam
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości