Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Borland C++ kysmymyksiä?

Sivun loppuun

CoolC++ [13.07.2006 18:54:15]

#

Miten C++:salla tehdään yksinkertaisesti seuraavat ominaisuudet?

1. Vierityspalkki (oikealle ja vasemmalle sekä ylös ja alas) richedit:issä?

2. Tulostaa sivun richedit laatikosta kun painetaan tulosta?

3. Etsi toiminto es. Hae koneelta (C:/*.*) tiedosto.txt?

Tzaeru [13.07.2006 19:22:34]

#

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=cohj_1

Ja Päivi Hietasen C++ ja olio-ohjelmointi. (kirja) Noilla pääsee ainakin alkuun ;) Kannattaa oikeasti vähintäänkin perustutoja lukea ennenku lähtee kerjäämään valmista coodia.
Ja sen jälkeen kannattaa tutustua SDL:ään, jolla sais sitten grafiikkaa aikaiseksi. Ja btw, ei kannata mitään "vallankumouksellista" editoria lähteä suunnittelemaan oman kokemuksen rajoittuessa Javalla tehtyyn Hello Worldiin.

Vastaukseksi: En ole koskaan kuullutkaan richeditistä, mutta vierityspalkit saa melko helposti, eli liikuttamalla esim objekteja ruudulla ylös ja alas riippuen siitä, mihin suuntaan vierityspalkkia työntelee.
Etsi-toiminnosta on varmaan n+1 aihetta, kokeile vaikkapa hakua tossa oikealla melko ylhäällä.

CoolC++ [14.07.2006 00:49:24]

#

Olen mä opetellut perustutoja, mutta en ole onnistunnut rakentamaan kyseisen ominaisuuden richedittiin.

Richedit = Valmis komponentti (Teksti kenttä), johon haluan vieritys palkit, kun kenttästä menee yli...

SDL? Mikä se on ja mistä saisin netistä hyvän oppaan...? Nimen ommaan vain perusteita olen opetellut ja kättännyt silloin tällöin valmiita komponentteja desing ohjelmalla.

Tuota etsi -systeemistä en löytännyt mitään tietoa ainoastaan se miten osaan tehdä etsi ominaisuuden on aina laittaa, joku vaikituinen polku ja tiedoston nimi ja pääte, jotta ohjelma osaisisi etsiä kyseistä tiedostoa.

Itse olen myös kokeiillut print ominaisuutta kirjoittamalla:

print();

Mutta se tulostaakin käyttöliittymän ja sen osan tekstistä mikä siihen on sopinnut siihen liittymään. Ellei se sitten olisi toiminnut vaikkapa näin!?:

RichEdit->print();

Tzaeru [14.07.2006 02:23:47]

#

Valmiita komponentteja ei kannata käyttää, jos ei ymmärrä niiden toimintaa.

Vihjeenä sen verran, että hyvän alun antava SDL-opas löytynee ihan putkan oppaista. Voinen tästä kohta pyöräyttää pienen esimerkin..

tgunner [14.07.2006 09:05:08]

#

Hähhää Tzaeru, olenpas nopeampi!

(Mod. edit: Poistettu aiheeseen kuulumaton koodi.)

CoolC++ [14.07.2006 10:42:14]

#

Löysin ja sain toimimnaan vieritys palkki ongelman, mut viel uupuu 2. ja 3. =)

tgunner [14.07.2006 11:06:34]

#

Miten muka aiheeseen kuulumaton koodi. :)
Sehän oli SDL-esimerkki, jollaista Tzaerukin lupaili. Vai meinaatteko, että Borland C++ on jotenkin erilainen?

Metabolix [14.07.2006 11:07:44]

#

Älkää hyvät ihmiset vastatko, jos ette osaa vastata kysymykseen. ^^ Täällä ei kysytty SDL:stä vaan Borlandin Visual Component Libraryn komponenttien toiminnasta. Siinä vaiheessa, kun herrat itse saavat SDL:llä aikaan RichEdit-komponentin, sopii tulla esittelemään sitä, mutta ennen sitä kannattaa yrittää olla pätemättä SDL:n alustusfunktion tuntemisella. :) SDL ei todellakaan ole vastaus joka ongelmaan, kuten ei myöskään "Asenna Gentoo" kelpaa vastaukseksi siihen, miten saa Windowsin toimimaan.

Itse vastaukset sitten:

  1. Vierityspalkit saa käyttöön asettamalla ScrollBars-ominaisuudeksi ssBoth (ja WordWrap-ominaisuudeksi false, jotta teksti ei automaattisesti rivity leveyden mukaan). Tämä olisi selvinnyt lukemalla TRichEdit-kohtaa ohjeista.
  2. Tulostaminen onnistuu juuri tuolla Print-funktiolla, Laatikko->Print("Otsikko."); Tämäkin olisi selvinnyt lukemalla TRichEdit-kohtaa ohjeista.
  3. Tiedostojen etsimisessä yhdestä hakemistosta voi käyttää vaikkapa TFileListBox-komponenttia (Win 3.1 -välilehdellä), joka siis listaa tietyn hakemiston tiedostot. Hakemisto määritetään sen Directory-ominaisuuteen. Jos nyt kuitenkin halusit etsiä myös alihakemistoista, joudut varmaankin tekemään rekursiivisen funktion FindFirstFile-, FindNextFile- ja FindClose-funktioilla. Tässä auttaa Antin loistava rekursio-opas.

tgunner [14.07.2006 11:43:43]

#

Pah, Tzaeru johdatti harhaan. Älkää minua syyttäkö saakeli!

CoolC++ [14.07.2006 13:39:46]

#

Metabolix:

-Olet loistava sain toimimaan tuon 1.:sen.

-Meinaatko (2.), että tuo laatikko, jota kutsutaan ilmeisesti (Richedit tai Memo -komponentiksi) laitetaan perään tuo ->Print("Printattavan otsikko");!?

3. Koitan käydä läpi asian myöhemmin ja kysyn jos on jotakin ongelmia =)

Metabolix [14.07.2006 20:46:22]

#

Kyllä, juuri niin Print käsittääkseni toimii. Minulla ei satu Borland C++ Builderia olemaan juuri nyt käsillä, mutta Delphin ohjeen mukaan noin. Kannattaa sitä ainakin kokeilla. (Jos et halua paperia tuhlata, lisää Windowsin tulostimiin jokin tulostin, jonka nimestä löytyy PostScript tai PS ja valitse sen asetuksista "tulosta tiedostoon".)

P.S. Tarkistapa tuo nimimerkkini, ettei tarvitse korjailla. ;)

CoolC++ [15.07.2006 16:39:16]

#

Ok, mut vielä yksi perus, juttu? Nimittäni painike ongelma...
Eli yritän tehdä painikeen, josta painamisen jälkeen sen pitäisi lisätä tekstiä (joka on lisätty painkieeseen) niin kyseisen tekstin richedit/memo -komponentille ja sen jälkeen kyseistä teksiä voi vielä muokata.

tai sitten vastaavan lainen script -kysymys, jos kirjoittaa omaan command (palkiin)-kohtaan sanan "hw" -niin se tulostaisi es. "Hello world" -lähdekoodin pelkän teksti richedit/memo -komponentille, jonka jälkeen sitä voi halutesaan vielä mukata!?...

Ainiin mistä saa ladattua SDL:llän!?

Metabolix [15.07.2006 18:16:43]

#

Edes hieman yritystä jos saisi pyytää. Google + SDL = http://www.libsdl.org/

Edelliseen en osaa vastata tietämättä, missä muodossa tekstit VCL:n C++-versiossa ovat. Delphin puolellahan tuo menee ihan plus-merkillä: Memo.Text := Memo.Text + Nappi.Caption. Tietenkin Memo.Lines.Add on yksi mahdollisuus.

Jälkimmäisestä kysymyksestä ei ota örkkikään selvää, mutta avain tekstien vertailuun ("tunnistamiseen") on yleensä strcmp-funktio (taas kerran riippuu toki siitä, missä muodossa ne tekstit ovat).

CoolC++ [15.07.2006 18:29:46]

#

Sori, tuohon kysymykseen "painike":

-Tuo teksti on vain puukattu painikeeseen itseensä "cout" -sisälle, jolloin jos mahdollista se tulostaa vain tuon cout -sisällä olevan tekstin, ellei olisi parempi tehdä sitä .txt -kun painaa se lisää .txt tiedoston hakemistosta, jonka painikeen pitää hakea ja lisää tekstin siihen.

Toisella kysymyksellä tarkoitan sitä, että ite olen tehnyt palkin nimeltä (command) ja jos käyttäjä syöttää siihen "hw" sovitaan vaikka (c++) niin se lisää tuon "hello world" (c++) -lähdekoodin siihen ja varmaankin taas .txt -muodossa, mutta tämä on vain jos painike ongelma ei selviä.

Metabolix [15.07.2006 19:15:25]

#

Tekstin muodolla en todellakaan tarkoittanut mitään .txt:tä. Kiinnostaisi vain, onko kyseessä char* vai jokin oma luokkansa.

Tekstitiedoston saa ainakin luettua laatikkoon sen LoadFromFile-jäsenfunktiolla.

CoolC++ [15.07.2006 20:15:09]

#

No, jos se on mahdollista niin tarkoitan kai sitten char:ia!? Muuten tarkoitan ihan muuta, mut en tiedä mitä?

tgunner [15.07.2006 20:17:03]

#

Eikös C++:ssa ole se "string"-muuttujatyyppikin?

CoolC++ [15.07.2006 20:26:26]

#

Onhan se, mutta en osaa varmaankaan käyttää sitä =), mutta siksi kysynkin teiltä kun en tiedä...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta