Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Borland c++ Builder 6.0 konwerter jednostek

Fellert 09 Cze 2010 17:17 2075 5
  • #1 09 Cze 2010 17:17
    Fellert
    Poziom 10  

    Witam,

    mam pewien problem .
    Potrzebuje napisać konwerter jednostek z użyciem comboboxa .
    np. z combobox 1 wybieramy z czego chcemy przeliczyć a w 2 na co oczywiście wartość pobierana z pola edit1 i Wyświetlało np. w polu label1

    np przeliczanie e z metrów na cm


    Oczywiście nie miałem nic wspólnego ani żadnego do czynienia z comboboxami więc liczę na wasza pomoc .

    0 5
  • #3 09 Cze 2010 17:48
    Fellert
    Poziom 10  

    ok a jak to rozpisać ??


    ta myśląc potrzeba mi 4-max 7 jednostek i wysiwetlało domysle jednostki np w 1 metr a w 2 km
    pisząc ze nie miałem doczynienia chodziło mi o to ze nigdy nie bawiłem się tym i nie wiem nawet jak za bardzo tego ućyć .

    0
  • #4 09 Cze 2010 17:59
    Dżyszla
    Poziom 42  

    Autoplagiat:

    Dżyszla napisał:
    Jeśli to będą niekompatybilne jednostki, to lepiej utworzyć tablicę struktur z jednostkami, gdzie poza jej nazwą będzie jej charakter (np: powierzchnia, długość, pojemność itp zrealizowane najlpiej za pomocą typu wyliczeniowego).
    Do pierwszego comboboxa ładujesz wszystkie jednostki. Po wybraniu (OnChange) sprawdzasz, do jakiej sekcji należy jednostka (odczytanie charakteru z tablicy spod indeksu odpowiadającemu indeksowi wybranej pozycji) a następnie do drugiego combo ładujesz wszystkie jednostki o tym samym charakterze.

    Trochę nabałaganiony algorytm, więc kolejnym krokiem będzie utworzenie obiektów, które będą odpowiadać jednostce i będą zawierać Metody odpowiedzialne za - przelicznik na jednostkę uniwersalną (odwrotność jego pozwoli na odwrócenie operacji), zwracającą nazwę. Dla każdego z typów mozesz potworzyć osobne klasy bazujące na jednej uniwersalnej, abstrakcyjnej w sekcji przelicznika). Następnie wystarczy lista obiektów (TStringList - własność Object), gdzie możesz sprawdzać, czy dany obiekt jest tej samej klasy. Ową stronglistę załadujesz do pierwszego comboboxa. W drugim bedziesz ładować już konkretne obiekty tej samej klasy.

    0
  • #5 09 Cze 2010 18:11
    Fellert
    Poziom 10  

    No to przerasta moje mozliwosci niestety :( hmm ale myślałem że to bedzie trochę łatwiejsze
    a dałoby rade zrobić tak np.
    uzytkownik wybiera sobie jednoske jako radio button i potem program zamienia ja i wyswietla ze np.
    1,23 cm to 0.12 m 0.0012 km itd

    0
  • #6 09 Cze 2010 20:53
    wrych
    Poziom 20  

    A może tak:
    1) do ComboBoxa wstawiasz opcje jakie chcesz mieć:
    m --> km
    m --> cm
    ha --> a itd.
    2) W tablicy umieszczasz współczynniki zamiany (w takiej kolejności jak ich opisy w ComboBoxie), tj. double a[] = {0.001, 100, 100 itd.}

    Po wybraniu opcji (indeks tej opcji i indeks współczynnika będzie taki sam, np. i)
    i naciśnięciu przycisku oblicz wywołujesz funkcję która:
    a) Pobiera wartość z okienka edycyjnego i zamienia ją na liczbę (double x;)
    b) Obliczasz x = x *a[i]; (!zamiana jednostek)
    c) Wpisujesz wynik do okienka z odpowiedzią
    Oczywiście stosownie do wyboru wypadałoby zmienić etykiety opisujące okienka. Tu przyda się instrukcja selekcji lub podobnie jak dla współczynników tablice z symbolami jednostek. Można by było również wykorzystać pobrane z ComboBoxa teksty...

    0