Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

błąd w void w borlandzie

#1
błąd w void w borlandzie
Witam, mam do napisania program. Program ten posiada menu itd.
I mam już wykonaną pierwszą zakładkę z menu, tzn. jak w nią kliknę to pojawiają mi się odpowiednie elementy programu. Zrobiłem też drugą zakładkę. Jak w nią kliknę, to za pomocą Visible elementów ukrywam elementy z 1 zakładki.
Po czasie stwierdziłem, że ta metoda jest dosyć powolna, bo mam do zrobienia z 10 takich zakładek z czego każda posiada ileś tam też elementów co powoduje, że muszę napisać kawał linii kodu do każdego przycisku.
Chciałem to rozwiązać za pomocą voida, który ustawiałby visible każdego elementu na false, następnie podpiąć go pod każdy przycisk i dopiero w przycisku włączałbym odpowiednie elementy. Tak też zrobiłem, ale wywala mi błąd, że te elementy co chcę w voidzie wyłączyć nie są zdefiniowane, a jak zrobię pod każdym przyciskiem z osobna to one działają.
Potrafi ktoś wyjaśnić i pomóc?
"Nigdy nie kłóć się z głupcem - ludzie mogą nie dostrzec różnicy" prawa Murphy'ego

Sprzęt w profilu.

Pozdrawiam Chr1stian
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: błąd w void w borlandzie
Gdybyś pokazał kod, to byłoby łatwiej.
 System operacyjny: windows_seven Przeglądarka: firefox
#3
RE: błąd w void w borlandzie
Na pierwszym załączniku jest działający fragment kodu, a na dwóch ostatnich niestety nie i nie wiem dlaczego.


Załączone pliki Miniatury
           
"Nigdy nie kłóć się z głupcem - ludzie mogą nie dostrzec różnicy" prawa Murphy'ego

Sprzęt w profilu.

Pozdrawiam Chr1stian
 System operacyjny: windows_seven Przeglądarka: firefox
#4
RE: błąd w void w borlandzie
Obiekty są widoczne wewnątrz Form1. Metoda wyczysc jest utworzona poza tym formularzem, więc nie widzi tych obiektów. Aby były w niej widoczne musiałbyś się odwołać do nich poprzez pełną ścieżkę, czyli coś w rodzaju Form1->Obiekt->Visible = false; Wersja Obiekt->Visible = false; działa tylko wewnątrz klasy Form1.
 System operacyjny: windows_seven Przeglądarka: firefox
#5
RE: błąd w void w borlandzie
Dzięki wielkie, działa pięknie.Oczko Daję pomógł
Jeszcze mam takie pytanie. Chcę zrobić tak: Użytkownik wpisuje tekst do pola Memo i za pomocą Buttona "Wyślij" zapisuje tekst do pliku .txt. Co trzeba zrobić korzystając z SaveDialog (o ile to możliwe) by nie zastępowało znajdującego się już tam tekstu, a jedynie go dopisywało.
"Nigdy nie kłóć się z głupcem - ludzie mogą nie dostrzec różnicy" prawa Murphy'ego

Sprzęt w profilu.

Pozdrawiam Chr1stian
 System operacyjny: windows_seven Przeglądarka: firefox
#6
RE: błąd w void w borlandzie
Nie mam pod ręką środowiska, ale sprawdź funkcje obsługujące pliki. Jedna nadpisuje plik, druga dopisuje na końcu. http://www.yevol.com/bcb/lesson08.htm parametr w fopen np a lub a+.
 System operacyjny: linux_fedora Przeglądarka: firefox
#7
RE: błąd w void w borlandzie
Najprościej byłoby otworzyć plik i dopisać na końcu.
Kod:
#include <fstream>
// ...
if (SaveDialog1->Execute())
{
    std::ofstream out(SaveDialog1->FileName.c_str(), std::ios::out | std::ios::app);
    out << std::endl << Memo1->Lines->Text.c_str();
    out.close();
}
Nie sprawdzałem, czy kod działa (podobnie nie mam pod ręką środowiska C++Builder).
 System operacyjny: linux Przeglądarka: firefox
#8
RE: błąd w void w borlandzie
Otóż natknąłem się na kolejny problem w borlandzie. Chodzi o to, że użytkownik podaje dane, następnie one są konwertowane do zmiennych (o podobnych nazwach). Później wszystko jest liczone i wynik podawany jest w polu Wynik. Niestety tylko w przypadku oblicz opóźnienie caption pola Wynik zmienia się, w pozostałych przypadkach nie. Mam na dole załączone screeny.
Sprawdziłem czy to któryś if psuje i jak się okazuje to nie jest to, bo nawet jak nie mam żadnego if'a (to znaczy biorę cały if w komentarz i zostawiam tylko funckję liczącą i wyświetlającą aby się wykonywały) to i tak nie wyświetla wyniku.


Załączone pliki Miniatury
           
"Nigdy nie kłóć się z głupcem - ludzie mogą nie dostrzec różnicy" prawa Murphy'ego

Sprzęt w profilu.

Pozdrawiam Chr1stian
 System operacyjny: windows_seven Przeglądarka: firefox
#9
RE: błąd w void w borlandzie
Czy to na pewno jest ten sam obiekt Wynik? Czy zdarzenie związane jest z kliknięciem dokładnie tego przycisku (Przycisk_oblicz2)?
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#10
RE: błąd w void w borlandzie
Tak to jest ten sam obiekt. Sprawdziłem, czy przypadkiem w tym drugim przypadku nie wyświetla mi się button od oblicz opóźnienie, ale to jest w porządku. Co więcej sprawdziłem taką opcję jak utworzenie kilku pól z wynikami dla różnych obliczeń i zmiana Visible tych elementów w zależności od tego co w danym momencie chcemy obliczyć i to też nie działa.
Ja osobiście nie widzę błędu w obliczeniach. Nie mam pojęcia dlaczego to nie chce działać. :F
"Nigdy nie kłóć się z głupcem - ludzie mogą nie dostrzec różnicy" prawa Murphy'ego

Sprzęt w profilu.

Pozdrawiam Chr1stian
 System operacyjny: windows_seven Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (błąd w void w borlandzie)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C++] Zestaw pytań "wskazniki typu void" dorion300 13 11344 16.12.2014, 21:04
Ostatni post: Szachista
  [C++] Co oznacza (int s, void (*f)(int[])) ? D@MI@N 2 3138 21.12.2013, 23:32
Ostatni post: D@MI@N
  int main( void ) - Co to ten void? giertych97 3 5127 27.02.2011, 22:23
Ostatni post: andros1245

Skocz do: