Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sterowanie w c++

Ostatnio zmodyfikowano 2008-12-28 00:23
Autor Wiadomość
wujas
Temat założony przez niniejszego użytkownika
Sterowanie w c++
» 2008-12-27 22:38:09
Czesc nie smiejcie sie z tego posta jestem poczatkujacym programista i naprawde chce sie uczyc jezyka c++ jednak nie wszyskto potrafie zrozumiec.
Chciałbym nawiazac do pierwszego kursu c++ do lekcji XIX. Struktury danych
Mam na mysli ostatni przyklad ta fajna ksiazke telefoniczna troche nad tym siedze staram sie zrozumiec jak te funkjce sa poukladane itd wiekszosc rozumie mam tylko problem z zrozumieniem kodu ktory odpowiada za sterowanie pomiedzy wierszami tzw jak dodasz wpis to wpis na ktorym jestes ma inny kolor i chcialbym wiedziec jak to dziala ze np moge sie poruszac miedzy tymi wpisami.Rozumie biblioteke <conio.h> , funkce getch() i klawisze dopisane jednak nie potrafie znalesc zwiazku miedzy funkcjami
void WyswietlListeOsob(OsobaST tablica[],int iloscElelemtow,int zaznaczElement,int wyswietlOdElementu);
a
kodem   case 72://strzałka w górę
        pozycja-=1;
        break;
        case 80://strzałka w dół
        pozycja+=1;

poprostu nie umie znalesc zwiazku miedzy zaznaczElemnt a pozycja :).

Moglibyscie np napisac prosty program ktory pokazuje liczby o 1 do 5 przkladowo i zeby mozna bylo mniedzy nimi sie poruszac a na tym ktorym jestesmy byl innego koloru? Mysle ze to by mi pomoglo zrozumiec to.

Przepraszam za glupi post ale jak mowia kto pyta nie bladzi :)
P-3017
lynx
» 2008-12-27 23:06:29
Nie patrzyłem na kod, ale z chęcią mogę wytłumaczyć Ci jak to działa. :)

Najpierw jest wczytywany znak do zmiennej, następnie analizujemy go i sprawdzamy jego wartość. Jeżeli zawiera on kod strzałki w górę lub w dół, edytowana jest zmienna odpowiadająca za podkreślenie(zaznaczenia) odpowiedniego tekstu (pozycja). Edytowana jest w sposób:
C/C++
pozycja = pozycja + 1; //pozycja++;
//lub
pozycja = pozycja - 1; //pozycja--;
tak, aby nie doprowadzić do nagłego przeskoku podkreślania (zaznaczenia) o dużą liczbę. :) Następnie wyświetlane są opcje, a jedna z nich jest podkreślona względem liczby będącej w pozycja.

Mam nadzieję, że teraz to rozumiesz.
Pozdrawiam, Piotrek. :)
P-3019
wujas
Temat założony przez niniejszego użytkownika
» 2008-12-27 23:25:49
Wiesz co chyba zaczynam rozumieć o co chodzi.
Musze jeszcze przy tym posiedzieć ewentualnie napisze pozniej co udalo mi sie wykombinowac:)
Dzieki serdecznie za pomoc.
P-3021
wujas
Temat założony przez niniejszego użytkownika
» 2008-12-28 00:23:33
udalo sie zrozumialem an dowod tego wklejam kod :P nic specjalnego ale dla mnei to duzy krok :)

C/C++
#include<iostream>
#include<conio.h>
#include "console.ddt"
using namespace std;
using namespace ddt::console;

void lista( int zaznacz );
void info()
{
    gotoxy( 1, 25 );
    cout << "[GORA/DOL] Poruszanie sie po liscie         ";
    cout << "[ESC] Wyjscie ";
    return;
}
int main()
{
   
    bool koniec = false;
    int pozycja = 0;
   
    while( koniec != true )
    {
        textcolor( 7 );
        textbackground( 0 );
        clrscr();
        lista( pozycja );
        info();
        unsigned char znak = getch();
        switch( znak )
        {
        case 224: //klawisze specjalne
            znak = getch();
            switch( znak )
            {
            case 72: //strzałka w górę
                pozycja -= 1;
                break;
            case 80: //strzałka w dół
                pozycja += 1;
                break;
            }
            znak = 0;
            break;
        case 27: //ESC
            koniec = true;
            break;
        }
    }
    return( 0 );
}
void lista( int zaznacz )
{
    for( int i = 1; i <= 5; i++ )
    {
        if( i == zaznacz )
        {
            textbackground( 12 );
            textcolor( 14 );
        } else
        {
            textbackground( 0 );
            textcolor( 7 );
        }
        cout << i << endl;
    }
    return;
}
P-3023
« 1 »
  Strona 1 z 1