program w delphi na obliczanie jednostek

0

witam mam taki problem z napisaniem programu w delphi na obliczanie jednostek.Program napisałem ale z dużą ilością okienek edit1,edit2 itd czyli napisałem tak program że liczy cm-cal, cm-stopa, cal-stopa, cal-cm, stopa-cal, stopa-cm czyli jak widać jest dużo okienek a potrzebuje program żeby np były dwa okienka i żebym mógł sobie wybrać w jednym np cm a w drugim cale i mi oblicza. Prosze o pomoc. Bardzo pilne.

0

Masz taki komponent TCheckListBox zdaje się i tam wstaw jednostki. Potem onClick na ten komponent daj zmiane na daną jednostkę i sprawdzaj if TCheckListBox.ItemIndex = 1 a pod jedynką masz np. cm to zamieniasz jednostkę, którą trzymasz np. w string, a potem ze string tak samo, jak wpisujesz to jaka jednostka jest wybrana. Daj takie 2 komponenty jeden do pierwszej liczby, a drugi do zamiany. No troszkę namieszałem z tym opisem, ale myślę, że wiesz o co mi chodzi :D

0

Ja bym zastosował dwa combobox'y, a przeliczniki dał w tablice dwuwymiarowej. Cały program miał by kilka wierszy.

0

Kurde, miałem na myśli combobox, ale dawno nie widziałem BCB ani Delphi na oczy i zapomniałem, że to combobox a nie checklistview. A co do tablic to nie wiem czy autor jest na takim poziomie żeby to wykorzystywać, chyba woli prostsze rozwiązania :)

0

Przecież to zwykła tablica dwuwymiarowa na dodatek o stałym rozmiarze i ze stałymi wartościami, które da się wyliczyć np w excelu. To o wiele prostsze niż zabawa z ComboBox'em.

0

xeo545x39 masz racje nie jestem jeszcze na poziomie tablic i wolałbym to napisać prost metodą czyli tak jak pisałeś:) tylko jakbyś jeszcze mógł napisać troche kodu jak to ma wyglądać to byłbym bardzo wdzięczny :)

0
elzo2 napisał(a)

Program napisałem ale z dużą ilością okienek edit1,edit2 itd

Przede wszystkim naucz się sensownie nazywać komponenty.

elzo2 napisał(a)

xeo545x39 masz racje nie jestem jeszcze na poziomie tablic i wolałbym to napisać prost metodą czyli tak jak pisałeś:) tylko jakbyś jeszcze mógł napisać troche kodu jak to ma wyglądać to byłbym bardzo wdzięczny :)

Jak zrozumiesz ideę programowania, to się okaże, że sposób z tablicami jest łatwiejszy. To komputer ma Ci ułatwiać zadanie, a nie Ty jemu! Ja bym to widział tak: interfejs programu tak, jak pisali poprzednicy - dwa combobox'y. Najbardziej elastycznie by było, gdybyś te combobox'y wypełniał danymi programowo, wtedy dodanie nowej jednostki sprowadzałoby się do dodania nowego elementu do tablicy w kodzie i w interfejsie nie musiałbyś już grzebać (możesz to podpiąć pod zdarzenie onCreate, dodanie nowego elementu do combobox'a realizuje pewnie jakaś metoda w stylu addItem, dawno nic nie robiłem w Delphi, więc nie pamiętam, ale to bez problemu znajdziesz w internecie). Teraz tak - indeks wybranego elementu w combobox'ie powinien odpowiadać indeksowi tablicy z odpowiadającym elementem.

[
  'cm',
  'dm',
  'm'
]
[
  0.01,
  0.1,
  1
]

Powyżej masz dwie tablice - jedna z nazwami jednostek, druga z liczbami. Za pomocą tej pierwszej są tworzone combobox'y. Ta druga posiada wartości liczbowe mówiące ile razy trzeba pomnożyć wprowadzoną liczbę, aby przeliczyć ją na ilość metrów. Metr będzie czymś w rodzaju jednostki wyjściowej. Teraz wystarczy tylko całość podstawić do odpowiedniego wzoru, a następnie jakoś zaprezentować użytkownikowi. Prezentacją danych zajmiesz się sam, wzór Ci podaję:

(liczba * tablica[indeks1]) / tablica[indeks2]

gdzie liczba oznacza liczbę wprowadzoną przez użytkownika, indeks1 oznacza indeks wybranego elementu na combobox'ie odpowiadającego jednostce liczby wprowadzanej, a indeks2 indeks wybranego elementu z drugiego comobox'a. Prawda, że proste? Zaoszczędzony przeze mnie czas możesz poświęcić na wyszukanie w internecie informacji jak dynamicznie dodawać elementy do combobox'a i jak pobierać indeks zaznaczonego elementu :)

PS W Delphi dawno nic nie pisałem, więc podany przeze mnie sposób z tablicami może jest mało elegancki, poczytaj o rekordach i spróbuj to jakoś upakować do jednej zmiennej.

0

@up Czy autor na pewno to zrozumie?
@autor Wybierz sposób, albo tablice, albo komponentami. Jeżeli to drugie to wstaw na formę dodatkowo 2x TEdit. Stwórz 2 string'i po i przed (to samo z komponentami, chociaż chyba się da bez string'ów). W każdym TEdit przy onClick daj po := po_edit.text;. I przy np. przycisku "oblicz", w onClick daj sprawdzanie warunków, jakiej jednostki jest jeden string, a jakiej drugi i wykonuj odpowiednie działania. Wybierzesz co chcesz, jeżeli nie rozumiesz tego co kolega wyżej napisał, poczytaj jeszcze o tablicach jedno i dwuwymiarowych. Ja ci więcej nie pomogę, bo w Delphi doszedłem do...niczego ;) Tablic nie znam, nie w Delphi.

0

ok koledzy dzięki za pomoc już zrobiłem program zrobiłem za pomocą 2 combobox i polecenia if itd. Temat zamknięty :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1