|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как организовать цикл?
Как организовать цикл чтоб при выборе системы исчисления (с основой от 10 до 36) менялся и ListBox "Первый множитель", и UpDown "Второй множитель" ? При чем после 9-ти должны идти буквенные представления чисел. (А=10; В=11; С=12...)
|
#2
|
|||
|
|||
Честно говоря не очень понял, при чем тут цикл..
Проще всего - обрабатывать событе onChange и в нем заполнять листбокс. насчёт букв можно определить массив и в него забить и цифры и буквы, потом из массива подгружать |
#3
|
||||
|
||||
а поподробней про массив можно?
|
#4
|
||||
|
||||
Код:
procedure TForm1.ComboBox1Change(Sender: TObject); const digits36: array [0..35] of Char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var i: Integer; begin ListBox1.Clear; for i:=0 to StrToInt(ComboBox1.Text)-1 do ListBox1.Items.Add(digits36[i]); end; Пишу программы за еду. __________________ |
#5
|
||||
|
||||
а как в этом массиве буквенным выражениям присвоить соответствующее значение?
|
#6
|
||||
|
||||
индекс элемента массива является десятичным эквивалентом числа-значения элемента массива
Пишу программы за еду. __________________ |
#7
|
||||
|
||||
Допустим, я умножаю С*8. Прога выдает ошибку: "С" is not valid integer value.
И как такую же процедурку прописать для изменения Edit у UpDown? П.С. я уж извиняюсь, что такой дебил.. |
#8
|
||||
|
||||
Как я понял, речь идёт о своеобразной "таблице умножения" для разных систем счисления? Что ж, задачка интересная
В гугле есть достаточно методов перевода чисел из любой/в любую систему счисления. Воспользуйся любым из них для начала, а потом чистая логика Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#9
|
||||
|
||||
Код:
function AnyToInt(c: Char): Integer; begin if c in ['0'..'9'] then Result:=StrToInt(c) else if c in ['A'..'Z'] then Result:=10+Ord(c)-Ord('A') else raise Exception.Create('AnyToInt Exception'); end; ShowMessage(IntToStr(AnyToInt('C')*8)); Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 07.04.2011 в 11:42. |
#10
|
||||
|
||||
спасибо большое
|