![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
5. Вводятся 2 числа. Ответ формируется таким образом: берется нужное количество шариков и бросается в корзину. Число брошенных шариков отражается напротив знака «=». Потом выполняется проверка и выдается сообщение (вместо + - знак mod).
Вот пример как надо сделать. |
|
#2
|
||||
|
||||
|
Значит результат - это сумма чисел из первого и второго edit'а?
А вам задачу как лучше решить - красиво или быстро? ![]() |
|
#3
|
|||
|
|||
|
Цитата:
Если можно и так и так ![]() |
|
#4
|
||||
|
||||
|
Тогда быстро
мне в падлу придумывать красивый способ ![]() В общем так, сначала ставим на форму, допустм, двадцать TPicture с шариками, выставив им всем visible:=false в свойствах. Затем ставим такой код в OnChange Edit'ов: Код:
var x,y,z: integer; begin Picture1.Visible:-false; //так для всех картинок ... try x:=strtoint(Edit1.Text); except x:=0 end; try y:=strtoint(Edit2.Text); except y:=0 end; z:=x+y; if z>0 then Picture1.Visible:=True; if z>1 then Picture2.Visible:=True; if z>2 then Picture3.Visible:=True; if z>3 then Picture4.Visible:=True; if z>4 then Picture5.Visible:=True; if z>5 then Picture6.Visible:=True; if z>6 then Picture7.Visible:=True; if z>7 then Picture8.Visible:=True; if z>8 then Picture9.Visible:=True; if z>9 then Picture10.Visible:=True; if z>10 then Picture11.Visible:=True; if z>11 then Picture12.Visible:=True; if z>12 then Picture13.Visible:=True; if z>13 then Picture14.Visible:=True; if z>14 then Picture15.Visible:=True; if z>15 then Picture16.Visible:=True; if z>16 then Picture17.Visible:=True; if z>17 then Picture18.Visible:=True; if z>18 then Picture19.Visible:=True; if z>19 then Picture20.Visible:=True; end; Вот так вот. Вопросы? |
|
#5
|
|||
|
|||
|
Цитата:
Какой то код не красивый, а нельзя ли через цикл for например это сделать? И как выполнить проверку? |
|
#6
|
||||
|
||||
|
Picture через цикл не перебирается, что и стоило мне кучи нервных клеток (у меня на одной из форм 420 картинок)
![]() Так что я думаю, что красиво тут надо как-то совсем по другому или никак ![]() Хотя я могу и ошибаться - я самоучка (и относительно новичок). |
|
#7
|
|||
|
|||
|
кстати еще как выполнить проверку?
|
|
#8
|
||||
|
||||
|
Какую проверку?
|
|
#9
|
|||
|
|||
|
А если я имею ввиду через цикл for и рисовать круги с помощью canvas.Ellipse
|
|
#10
|
|||
|
|||
|
Потом выполняется проверка и выдается сообщение (вместо + - знак mod).
|
|
#11
|
||||
|
||||
|
По ходу тогда у тебя круги будут уходить за край окна
![]() Хотя кто знает, я могу и ошибаться. |
|
#12
|
|||
|
|||
|
Код:
var x1,y1,i:integer;
begin
try
StrToInt(edit1.Text);
except
edit1.Text:='0';
end;
try
StrToInt(edit2.Text);
except
edit2.Text:='0';
end;
x1:=10;
y1:=Edit1.Height+Edit1.Top+10;
Edit3.Text:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));
Canvas.Brush.Color := ClBtnFace;
Canvas.FillRect(Canvas.ClipRect);
Canvas.Brush.Color:=clRed;
for i:=1 to StrToInt(edit3.text) do begin
if x1+20>form1.ClientWidth then begin
y1:=y1+30;
x1:=10;
end;
form1.Canvas.Ellipse(x1,y1,x1+20,y1+20);
x1:=x1+30;
end;Последний раз редактировалось stil, 24.12.2010 в 20:51. |
|
#13
|
|||
|
|||
|
Потом выполняется проверка и выдается сообщение (вместо + - знак mod).
Сам не понимаю какую проверку надо сделать, вот в задание написано и понимай как хочешь, а как вы понимаете господа? |
|
#14
|
||||
|
||||
|
Может типа правильно/неправильно?
|
|
#15
|
|||
|
|||
|
Может быть но причем здесь mod не могу понять!!!
|