Ziomaleq [ Chor��y ]
C++ Builder 6.0
Witam,
Jestem początkującem lalikiem w C++
Mianowicie : Jak w builderze tworze przycisk.. to musze dodac do niego akcje...
np. klikam na przyciski dodawanie... i wyswietla mi sie drugie okno z danymi elementami,
Klikam na przycisk odejmowanie i wyswietli mi sie jeszcze inne okno z danymi elementami
Jak to zrobić i jak utworzyć to drugie okno??
Pawelk222 [ Konsul ]
z takimi pytaniami to musisz do jakiegos super profesora chyba iść.
Sorry , ale ja tego nie wiem..
EliEli [ Pretorianin ]
Proste - pisze z pamieci:
- tworzysz dla kazdego okna osobny Form (chyba ze wszystkie wyswietlane okna maja prezenowac to samo)
- ustawiasz im parametr Visible = false
- po kliknieciu na przycisk "Dodaj" robisz:
NazwaFormaZDanymiDodawania->Visible = true;
Oczywiscie to bardzo infantylne podejscie :) ale jak dla Ciebie na poczatek wystarczy.
Ziomaleq [ Chor��y ]
dzieki... jestes wielki ;)
PS; A jak zrobić takie cos (co sie zaznacza kolko) wiesz...
Ze zalozmy jest program i Ustawiania ogolne.
Zaznaczam : urachamiaj się przy starcie systemu i klikam na ok i jest dobrze. ;)
Jak niewiesz o co chodzi to trudno
EliEli [ Pretorianin ]
Koleczko - to pewnie nasz zapewne na mysli RadioButtona :) tak jak przy ikonkach na GOLu w trakcie pisania posta ?
Ty powinienes uzyc CheckBoxa.
Wklejasz CheckBoxa na Forma, a potem za jego zaznaczanie/odznaczanie jesli dobrze pamietam odpowiada 'IsChecked' albo 'Checked'. Wartosc tego pola zmienia sie jesli uzytkownik zaznacza lub odznacza to pole z wartosci true na false i odwrotnie.
Wiec po prostu sprawdzasz sobie:
if (MyForm->CheckButton_UruchomPrzyStarcie->Checked = true)
‹
// tutaj obslugujesz np. ustawienie w rejestrze sciezki i uruchomienia Twojego programu
›
Pozdrawiam
P.S. No po 15 latach programowania i pracy z mlodymi, poczatkujacymi ludzmi to raczej najczesciej "wiem o co chodzi" :)
Co prawda powyzsze rzeczy pisze Ci z pamieci ale powinno by OK nieprawdaz ? ;)
EDIT -> zamiast znaczow '<' i '>' powinny byc nawiasy klamrowe ;) ale GOL je zmienia
Regis [ ]
Proponuje przeniesc sie do watku seryjnego:
https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4598146&N=1
Tak sie sklada ze ja takze akurat walcze z Builderem ostatnio, wiec tak dla pytajacych, jak i dla pomagajacych takie 'polaczenie sil' byloby chyba wygodne :)
Ziomaleq [ Chor��y ]
Wracając do tego dodawania to co mam zrobic?
(piszesz: daj im NazwaFormaZDanymiDodawania->Visible = true;
Sory ale jestem lamerem w builderze
Ziomaleq [ Chor��y ]
Czy nikt naprawde tego niewie??? gdy robie wszystko jak pokazal kolega EliEli
pokazuje mi sie blad
EliEli [ Pretorianin ]
Robisz tak:
Dla ulatwienia zrob sobie taki prosciutki przyklad:
1. Otwierasz nowy projekt i na widoczny Form1 naklejasz przycisk oraz zmieniasz jego Caption na 'Otworz okno'
EliEli [ Pretorianin ]
2. Natepnie dodajesz nowy Form ktory bedzie reprezentowal drugie okienko, otwierane przyciskiem.
robisz to wybierajac z menu opcje jak na obrazku:
EliEli [ Pretorianin ]
3. Zeby drugie okienko nie bylo takie gole - dodaj Labelke i zmien jej Caption na jakis przykladowy ;)
EliEli [ Pretorianin ]
4. Zerknij na wlasciwos 'Visible' Forma 2 -> pamietaj zeby najpierw kliknac w powierzchnie tego forma i wtedy po lewej stronie pojawiaja sie opcje formularza (jesli przed chwila dodawales np. labelke, to wyswietlane byly wlasciwosci labelki a nie formularza - dl apoczatkujacych osob czasem latwo o pomylke)
EliEli [ Pretorianin ]
5. Teraz odrobinka magii ;)
Okienko Form1 nie "widzi" okienka Form2 poniewaz nie wie o jego istnieniu.
Dlatego nalezy go o tym poinformowac.
Ogolnie mowiac kazde okno w Builderze ma tak zwany plik naglowkowy z opisem okienka.
Zeby poinformowac okno Form1 o wlasciwosciach okna Form1, nalezy w odpowiedni sposob podac nazwe pliku naglowkowego tego okienka, do okna Form2.
Skomplikowanie brzmi ? Ale jest proste. Patrz na obrazek:
- wyszukujesz wsrod okienek Buildera to, ktore prezentuje elementy skladowe Twojej aplikacji. Wybierasz z niego Form1 bo do niego chcesz cos wkleic i prawym przyciskiem wybierasz odpowiednia opcje z menu.
EliEli [ Pretorianin ]
...ciag dalszy dodawania pliku naglowkowego
EliEli [ Pretorianin ]
i juz podanie nazwy pliku naglowkowego, ktory dla okna Form2 nazywa sie niefortunnie Unit2.hpp
(hpp to pliki naglowkowe, cpp to pliki z kodem)
"Wklejanie" pliku naglowkowego polega na uzyciu dyrektywy #include <nazwa_pliku.hpp> lub #include "nazwa_pliku.hpp"
Uzywamy opcji drugiej ;)
EliEli [ Pretorianin ]
Teraz robisz mechanizm wyswietlania okienka form 2 z poziomu okna Form1.
Robisz to klikajac dwukrotnie na przycisk 'Otworz okno' na Form1. W ten sposob dodajesz tzw. zdarzenie polegajace na obsludze uzycia przycisku.
W otwartym automatycznie kodzie, wpisujesz wspomniana linijke. Zmienia ona wartosc atrybutu 'Visible' na true, co spowoduje pojawienie sie okienka.
Potem juz tylko uruchomienie programu i sprawdzenie jak dziala.
EliEli [ Pretorianin ]
Zdominowalem troche watek, ale mam nadzieje ze to juz jasne co chcialem Ci przekazac odpowiadajac na Twoje pierwsze pytanie.
Oczywiscie przeze mnie przyklad jest wrecz infantylny, nie uwzglednia tworzenia dynamicznego okienek, nie obsluguje bledow itd. itp. ale od czegos nalezy zaczac.
Zakladam ze o to pytales i ze juz bedziesz potrafil zrobic to rozwijajac na wlasne aplikacje i analogicznie zrobisz sobie otwieranie nowych okienek z kazdego poziomu ? ;)
Oczywiscie na okienku nazwanym w przykladzie Form2 mozesz umiescic cokolwiek zechcesz i zrobic np. kalkulator itd. itp. lub wspomniane przez Ciebie dodawanie
Bedzie ono sie zachowywalo tak, jak normalne okno aplikacji.
Jak juz zlapiesz temat, to pokombinuj ze stylami okna - zeby wyswietlalo sie np. jako modalne, lub jako rameczka itd.
Experymentuj ;)
P.S. Mam nadzieje ze mnie o statsiarstwo nie oskarza... ;)
EliEli [ Pretorianin ]
ERRATA do pkt. 5
Opis mial brzmiec odwrotnie: do okna Form1 dodajemy informacje o oknie Form2 :) ale Edit mi sie skonczyl...
"Okienko Form1 nie "widzi" okienka Form2 poniewaz nie wie o jego istnieniu.
Dlatego nalezy go o tym poinformowac.
Ogolnie mowiac kazde okno w Builderze ma tak zwany plik naglowkowy z opisem okienka.
Zeby poinformowac okno Form1 o wlasciwosciach okna Form2, nalezy w odpowiedni sposob podac nazwe pliku naglowkowego tego okienka, do okna Form2.
Skomplikowanie brzmi ? Ale jest proste. Patrz na obrazek:
- wyszukujesz wsrod okienek Buildera to, ktore prezentuje elementy skladowe Twojej aplikacji. Wybierasz z niego Form1 bo do niego chcesz cos wkleic i prawym przyciskiem wybierasz odpowiednia opcje z menu."
Ziomaleq [ Chor��y ]
wielkie dzięki ;)
Takich jak Ty to ze świecą szukać ;D
EliEli [ Pretorianin ]
Nie ma za co ;)
Pochwal sie tylko potem co Ci wyszlo ;)
Ziomaleq [ Chor��y ]
Wszystko pieknie... tylko jak sie dzis za to zabralem to niemam jak kliknac go to impletation bo mam tylko okno z kodem...
Co roibć , bo już niemoge z tym builderem
Przypominam że mam wersję personal ale niewiem czy to coś zmieni
EliEli [ Pretorianin ]
Powinienes znalez okienko z elementami skladowymi i klikasz na rozwienietym elemencie, dla ktorego chcesz miec kod.
Oczywiscie mozesz uzyc wersji uproszczonej - czyli klikasz dwukrotnie na formie 1 i otworzy Ci sie fragment kodu obslugujacy zdarzenie "Formcreate" - olewasz je ale przechodzisz na sama gore widocznego kodu i to jest wlasnie miejsce w ktore nalezy wkleic include z plikiem naglowkowym forma2 ;)
No tutaj ciezko naprawde pomoc - jesli schodzimy na poziom klikania to juz troszeczke musisz poeksperymentowac i pospacerowac po projekcie. Poswiec odrobine czasu tylko i wylacznie na sprawdzanie co ktore okno pokazuje. Z menu glownego "view" i "windows" zobacz co mozesz powlaczac i wtedy sie szybko zorientujesz.
Jak to mowia - koniec jezyka za przewodnika - to samo dotyczy klikania po kodzie ;)
Regis [ ]
Krotka pilka ;)
Jak skompilowac projekt, zeby dostac execa ktory uruchomi sie na kazdym innym komputerze na ktorym nie ma Buildera?
[pisze tu, bo tytul watku mowi wiecej potencjalnym 'zyczliwym' ktorzy chcieliby pomoc, niz tytul watku o programowaniu :P ]
Daro2k [ Pretorianin ]
Regis ->
z menu wybierasz Project -> Options... przechodzisz na zakladke Packages i odhaczasz Build with runtime packages.
Regis [ ]
Dzieki :)
I kolejne pytanie - znacie jakas stronke z darmowymi komponentami do Buildera? Cos do laczenia z MySQL'em itp? Korzystam z (okrojonego) Personala a takie rzeczy by mi sie przydaly... I jeszcze jedno - orientujecie sie czy licencja Borland C++ Builder 6 Personal New User (za 62 euro) dodaje komponenty niedostepne w zwyklym Personalu (nie znalazlem tej informacji na stronie)? Pytam raczej z ciekawosci, bo w chwili obecnej by mi sie taki zakup nie zwrocil, ale w przyszlosci...
Regis [ ]
up
FreemaN [ ]
Mam do sprzedania "C++ Builder. Kompendium programisty". Ksiazka jest NOWA, nieczytana, stan idealny! Zawiera cd-rom.
Kosztowala 59 PLN. Obecnie jej naklad zostal wyczerpany. Dostepna jest tylko w druku na żądanie za 79 PLN.
Kupiłem ją w większym pakiecie książek więc oferuje ją za okazyjne:
30 PLN
Nie ma zadnego ryzyka. Na forum siedze prawie 5 lat i nie po to, zeby kogos oszukac na pare PLN :)
kontakt w tym watku albo GG: 337909
wiecej:
Regis [ ]
FreemaN --> Jestem zainteresowany. Jakie by byly koszty przesylki? Czy moze jestes przypadkiem w Wrocka? :)
MGS_Saladin [ ]
po miedzy tymi oknami to przechodzi klawiszem F12 / ale lepiej za pierwszym razem lepiej kliknac :] w kodzie utworzy sie odwolanie do tego przycisku
a w instrukcji mozesz napisac Close();
to bedzie zaawanosowana funkcja :D
a i pamietaj F9 sie kompiluje :]
tak wogule proponuje 4programmers.net tam ludzie opisali dobrze jak i co :]
FreemaN [ ]
Regis - nie jestem z wrocka. wolalbym przelew na konto i wtedy wysylka to jakies 6zl.
mam jeszcze do sprzedania " C++. Sztuka programowania" w stanie jak wyzej czyli nieczytana.
kosztowala 39.90 PLN. obecnie naklad wyczerpany.
moja cena: 20 PLN
wiecej:
Regis [ ]
Male pytanko - mam plik tekstowy ktory wczytuje do pola Memo. Kazdy wiersz tego pola to obiekt klasy AnsiString. Mam w nim zapisane kolo siebie cyfry (roznej dlugosci, co nieco utrudnia sprawe) i chcialbym sie do nich dostac. Tzn. moc je wczytac tak jakbym wczytywal dane przez cin (cin << a << b << c; a wejscie wyglada np. tak: 233 456234 9852). Chodzi o to, zebym nie musial sie bawic ze spacjami, tylko jakas funkcja robila to 'za mnie'. Czy jest jakis latwy sposob na zrobienie tego (np. utworzenie z takiego ciagu tablicy obiektow Ansi String?).
Regis [ ]
up^