Elikäs ohjelma on wxDev-C++
Ja haluaisin kun painan tätä yhtä nappia se avaa WxMemo1:sen nettiselaimeen, kuinkapas olisi mahdollista? Teen nimittäin HTML editoria ja täytyisi saada esikatselu nappi toimimmaan, muuten toimii iha hyvi!
Toinen kysymys, olen tehnyt nappulan jolla saa memoon tämän tehtyä
<center> text </center>
mutta se tulee aina memon loppuun, saisiko sen jotenkin että se tulee siihen kohtaan missä on kirjoittamassa?
Kolmas kysymys, kun painaa nappia miten saa sillein että siihen tulee lätkä jossa lukee jotain ja OK nappi jolla saa lätkän pois?
Ja lisää tuloo XD
mikä tässä on vikana???
void HTML_editorFrm::WxButton3Click(wxCommandEvent& event) { if (WxEdit1.a == 1) { WxMemo1->AppendText(wxT("<H1> kirjoita </H1>")); } } void HTML_editorFrm::WxEdit1Enter(wxCommandEvent& event) { int a; a = Text; }
eli yritän saada sillein että jos tekstikentässä lukee 1 ja napiia painaa ni tapahtuu tuo kirjoitus sydeemi?!?
MITEN IF LAUSEET TOIMIVAT???
Koodi täytyy tallentaa väliaikaistiedostoon (tmpnam-funktio voi auttaa, muista .html-pääte selaimen iloksi). Toinen mahdollisuus olisi koodata ohjelman sisään pieni HTTP-palvelin, mutta se tuskin on vaivan arvoista, kun tuntuvat edellisen ketjun perusteella olevan vielä vähän hakusessa helpommatkin jutut.
If-lauseista voit lukea C-oppaasta. Kannattaa lukea sieltä muistakin asioista ja ihan oikeasti opetella perusasiat oppaasta. Tuollaisia kyselemällä saa yllättävän paljon porukkaa pahalle päälle. (Eikä vika taida nyt edes olla if-lauseessa vaan kaikessa muussa mahdollisessa.)
Tuossa viimeisimmässäsi koodissa ei ole yhtään mitään järkeä. Pitäisi sitä tekstiä tutkia, verrata vaikka tekstiin "1". wxString-tyyppiä noissa kaiketi käytetään, eli ensin pitää tehdä wxString, jossa lukee "1".
Yleinen ohje:
Kannattaisi ehkä vielä toistaiseksi pysytellä konsoliohjelmien parissa ja opetella niiden kanssa perusasiat kuntoon ja siirtyä graafisiin ohjelmiin sitten vasta kun alkaa olla kaikki luokat ja osoittimet ynnä muut kunnolla ymmärryksessä.
on ne ymmärryksessä mutta tässä wxDevissä ne on taas ihan eri tavalla tehtävä...
Ok olen päättänyt yrittää reilusti helpompaa, kysymys, miten saan alustettua muuntajan vaikka nappulalle nimeltä WxButton1?? sillein että sitä ei tarvi painaa vaan Createssa
a = 1;
mihin laitan tuon...
Muuttuja, ei muuntaja.
Et voi sitä wxButton-luokkaan lisätä, mutta voit tehdä globaalin muuttujan. Tällöin kannattaa antaa sille kuvaavampi nimi kuin vain a.
mites muuttujasta tehdään globaali, lieneekö se samanlailla kuin eräässä toisessa ohjelmassa global.a?
Muuttuja on globaali, jos se määritellään kaikkien funktioiden, luokkien yms. ulkopuolella eli vaikka heti #include-rivien jälkeen, tyyliin:
#include <iostream> #include <cstdlib> int luku = 983; // Tämä on globaali muuttuja const int KISSOJENI_MAARA = 129; // Tämä taas on globaali VAKIO void kasvata() { luku++; // Tämä onnistuu laku++; // Tämä ei mene kääntäjästä läpi } int main() { int laku = 12; // Tämä ei ole globaali muuttuja std::cout << laku << luku << endl; luku++; laku++; std::cout << laku << luku << endl; kasvata(); std::cout << laku << luku << endl; return EXIT_SUCCESS; }
Globaalia muuttujaa voi käyttää/muuttaa kaikissa funktioissa yms. ilman, että sitä tarvitsee viedä parametrina. Globaalia vakiota voi vastaavasti käyttää kaikkialla, mutta sitä ei voi muuttaa.
TsaTsaTsaa (ja kaikki muutkin): myös endl on std-nimiavaruudesta kotoisin. Siis endl:n paikalle kuuluu std::endl.
Vaikka kommentti toista väittää, KISSOJENI_MAARA
ei ole tuossa esimerkkipätkässä globaali vakio. C++:ssa globaalit vakiot pitää määritellä extern-sanalla. Siis
extern const int KISSOJENI_MAARA = 129; // Tämä ON globaali VAKIO
Jotta globaaleja muuttujia ja vakioita voisi käyttää kaikkialla, siis muissa kooditiedostoissa, ne pitää esitellä ennen käyttöä extern-sanalla. Siis
extern int luku; // Esitellään muualla määritelty globaali muuttuja extern const int KISSOJENI_MAARA; // Huom: ei arvojen alustusta
Yleensä globaalit muuttujat ovat aika huono juttu, kun niitten arvoja voidaan lukea ja kirjoittaa mistä sattuu. Mutta tässä taidetaan olla muutenkin aika liemessä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.