Dugme u konzoli

1

Dugme u konzoli

offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Nisam nešto vešt u programiranju i nemam previše iskustva. Do sada sam pravio jednostavne kalkulator-programe koje bih vrteo u while petlji do ispunjenja određenih uslova. Poznajem neke osnovoe C++ i Pascal jezika. Međutim, ne znam kako da tražim ono što me zanima.

Naime, hteo bih da napravim dugme ili polje za unos podataka u konzolnoj aplikaciji.

Na primer, želeo bih da piše:

Unesi dužinu stranice a:
|

I da to bude uokvireno pre unosa podatka.
Naravno, mogao bih karakterima, recimo zvezdicama da uokvirim ovaj tekst, ali se on neće prikazati do izvršenja komande, tj. unosa dužine stranice.

Kako bi to, recimo, moglo da se izvede, bez pravljenja GUI-a kroz klasičnu windows formu?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 06 Feb 2012
  • Poruke: 1872

Misliš na ovakvo nešto?


Konzola je zamišljena da ispisuje karakter po karakter, liniju po liniju (iz tog razloga, u nekim jezicima, konzola je zapravo stream, tj. tok podataka).
E sad, postoji način da se kursor vrati unazad, nije nemoguće, ali nije tako prosto kao što izgleda.
To stvara nove poteškoće. On bi u tom slučaju prepisivao postojeću liniju dok god korisnik unosi nešto sa tastature. Drugi problem što bi svaki put morao "ručno" da mu zadaš poziciju gdje ga vraćaš...

Postoje metode/funkcije (zavisno od jezika) koje ovo omogućavaju.
Npr. u C# imaš metodu SetCursorPosition(int left, int top)

U suštini, moguće je, ali nije vrijedno mučenja. Ili napravi bez toga ili GUI app.

Šta tačno praviš? Možda nađemo neko slično, ali mnogo lakše rješenje.



offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Ništa konkretno trenutno, ali imam par ideja. Zanima me kako bi se napravio GUI u konzoli. Znam da je lakše uzeti C++ builder ili Qt ili Lazarus i iskoristiti standardnu Windows formu sa već ugrađenim 'alatima', ali bih želeo da vidim kako bi moglo to da se izvede u konzoli. Recimo, da bi se napravio alat koji bi mogao da se pokrene u terminalu bez učitanog grafičkog okruženja, na primer.

Glavni je problem što ne znam šta tražim niti kako se to zove. Ako kucam GUI in console, dobijam GUI or console rezultate.

offline
  • Pridružio: 06 Feb 2012
  • Poruke: 1872

Mislim da to što ti pokušavaš nije moguće, ali sačekaj jos nekog da učestvuje u temi.

Ono što ti mozda može pomoći je inputDialog, ako već mora ostati konzolna aplikacija.
Na taj način pokupiš unos korisnika kao string.
Primjeri:
C#: https://www.youtube.com/watch?v=RRiPLhZzhCQ
Java: https://www.youtube.com/watch?v=4LBwOgZd-Fs
Mislim da je moguće i u C++.

offline
  • Pridružio: 04 Jul 2011
  • Poruke: 5424

Ako te dobro razumem, misliš na TUI - Text-based user interface.

http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

offline
  • Pridružio: 06 Feb 2012
  • Poruke: 1872

Najbolje je da postavi primjer nekog programa. Jer nije baš najjasnije šta želi.
GUI i konzola uopste ne funkcionisu na isti nacin. GUI je programiranje vođeno događajima, a konzolne aplikacije samo izvršavaju listu naredbi po odgovarajućem redoslijedu.

offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

ivance95 ::Ako te dobro razumem, misliš na TUI - Text-based user interface.

http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/


E, to!

Grubi primer (ne pada mi na pamet u ovo da se upuštam, ali primer kao primer)

offline
  • Pridružio: 04 Jul 2011
  • Poruke: 5424

Ako još uvek imaš Linux, možeš da probaš cmus, dobar plejer. Smile

offline
  • Fil  Male
  • Legendarni građanin
  • Pridružio: 11 Jun 2009
  • Poruke: 16586

ConEmu, MpxPlay i Far manager čuda čine Smile

offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Okej, smašao sam se da to liči na nešto.


E sada, kako isključiti buffer?
Tj. kako naterati program da ne čeka da se lupi enter da bi prihvatio unos?
Takođe, kako iskoristiti F1-F12 tastere?

Ko je trenutno na forumu
 

Ukupno su 1217 korisnika na forumu :: 65 registrovanih, 6 sakrivenih i 1146 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Rade, Atomski čoban, babaroga, Bobrock1, Boris90, BORUTUS, cavatina, darionis, darios, darkojbn, debeli, djboj, Djokislav, doktor1964, DonRumataEstorski, Dorcolac, elenemste, flash12, FOX, ginjica, gomago, goxin, havoc995, HrcAk47, Insan, JOntra, Karla, krkalon, Kubovac, madza, maiden6657, Marko Marković, marsovac 2, mercedesamg, Metanoja, Mi lao shu, mikrimaus, milenko crazy north, Milometer, milutin134, miodrag, mnn2, opt1, pacika, Polemarchoi, randja26, raptorsi, Rogan33, royst33, S2M, samsung, Sančo, Shinobi, slonic_tonic, solic, Srle993, stankolich, Steeeefan, theNedjeljko, Vatreni Zmaj, vladaa012, W123, wizzardone, YU-UKI, zbazin