| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Заполнение массивов пользователем |
| Автор: Алек 29.10.2004, 16:34 |
| Такая ситуация: много массивов, пользователю нужно их изменять. По-началу сделал на каждый элемент массива 2 кнопки (увеличение / уменьшение). В результате кнопки закончились... Может кто знает как обойтись минимальным колличеством кнопок. Вот кусок проги с "шапкой " Uses graph,crt;{у меня в графике} Var grDriver : Integer; grMode : Integer; ErrCode : Integer; klaw : char; {****************************} Procedure Shapka; Begin outtextxy(1+80,GetMaxY-140+10-5, '(+/-) (+/-) (+/-) (+/-) (+/-) (+/-) (+/-) (+/-)'); outtextxy(1,GetMaxY-140+10+10-2,'array1 : array6 :'); outtextxy(1+80,GetMaxY-140+10-2+20, '(t/y) (T/Y) (u/i) (U/I) (a/z) (A/Z) (s/x) (S/X) '); outtextxy(1,GetMaxY-140+10+30, 'array2 : array7 :'); outtextxy(1+80,GetMaxY-140+10+40-2, '(o/p) (O/P) ([/]) ({/}) (d/c) (D/C) (f/v) (F/V)'); outtextxy(1,GetMaxY-140+10+50, 'array3 : array8 :'); outtextxy(1+80,GetMaxY-140+10+60-2, '(;/'') (:/") (,/.) (</>) (g/b) (G/B) (h/n) (H/N)'); outtextxy(1,GetMaxY-140+10+70, 'array4 : array9 :'); outtextxy(1+80-12,GetMaxY-140+10+80-2, '(`/tab)(~/" ")(ent/baks)(\ |) (j/m) (J/M) (k/l) (K/L)'); outtextxy(1,GetMaxY-140+10+90, 'array5 : array10 :'); outtextxy(1+80-12,GetMaxY-140+10+100-2, ' (+/-) (q/w) (Q/W) (e/r) (E/R)'); End; {****************************} Procedure KLAVA; Begin IF keypressed Then Begin klaw := readkey; End; { Case ord(klaw) Of {описание всех клавиш, по-честному} End;{} End; {****************************} BEGIN grDriver := Detect; InitGraph(grDriver, grMode,''); ErrCode := GraphResult; If ErrCode = grOk then Begin { Do graphics } Shapka; Repeat klaw := '5'; KLAVA; Until klaw = #27; CloseGraph; End Else Writeln('Graphics error:', GraphErrorMsg(ErrCode)); END. |
| Автор: Underdark 29.10.2004, 16:50 |
| Напиши процедуру, в параметрах которой есть переменная "строка", и вводи командную строку с клавы, которая будет обрабатываться этой процедурой. А в командной стороке учти ID массива, увеличение/уменьшение и на какое количество. З.Ы. Надеюсь, понятно изложился. |
| Автор: Алек 1.11.2004, 18:23 |
| Что такое ID массива? (забыл сказать, пишу на паскале) |
| Автор: Underdark 3.11.2004, 15:23 | ||||||
Например, у тебя есть массив массивов, что-то типа так:
тоды, ID массива mass[1], пусть будет например 1. Командная строка будет выглядеть примерно так:
Всё это отправляется в процедуру, где строка обрабатывается, все значения извлекаются, переводятся из строкового типа в числовой и подставляются в код... Результат такой:
Пытался как можно понятнее... |