Dugme u konzoli

1

Dugme u konzoli

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

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: 1733

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: 10430

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: 1733

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++.

online
  • Osvjedodžbeni spretnik munjarstva
  • Pridružio: 04 Jul 2011
  • Poruke: 5396
  • Gde živiš: Beograd

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: 1733

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: 10430

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)

online
  • Osvjedodžbeni spretnik munjarstva
  • Pridružio: 04 Jul 2011
  • Poruke: 5396
  • Gde živiš: Beograd

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: 16171

ConEmu, MpxPlay i Far manager čuda čine Smile

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

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 643 korisnika na forumu :: 31 registrovanih, 2 sakrivenih i 610 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _commandos_, A.R.Chafee.Jr., AleksSE, brufen2, bulovic, celeron2, darkangel, Drug pukovnik, GreenMan, ikan, indja, ivance95, ivica976, Kožedub, Lošmi, Lucije Kvint, Marko Marković, mačković, MB120mm, Metanoja, panonski mornar2, pein, robertino2, stalker2, trajkoni018, vasa.93, Vojkan Petrovic, VP3987, zlaya011, Zmaj 99, 1107