![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
![]() Freedom Fighter Сообщений: 1 852 Спасибо сказали: 4031 раз ![]() |
Задача чуть-чуть сложнее, но это не суть... Заткнулся на кусочке где нужно шэйп раз в шаг таймера двигать на 1 вверх или вниз и на 1 влево или вправо, вроде всё должно быть просто, но не работает: постоянно движется вверх-влево... Никак не пойму в чём может быть проблема...
Код procedure TForm1.Timer1Timer(Sender: TObject);
begin randomize; if random(1)>0 then Shape1.Top:=Shape1.Top+1 else Shapes.Top:=Shapes[1].Top-1; randomize; if random(1)>0 then Shape1.Top:=Shape1.Top+1 else Shapes.Top:=Shapes[1].Top-1; end; -------------------- In this wild and woolly universe of ours, there are only three things you can count on: your brains, your bros, and your bike! |
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Freedom Fighter Сообщений: 1 852 Спасибо сказали: 4031 раз ![]() |
И снова я...
Нужно ограничить пользователя при вводе данных в стринггрид: ввод минуса не в первую позицию, ввод второго минуса, ввод чисел перед минусом. Для эдита я решал это так: Код procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin case key of '0'..'9', #8: if (Edit1.SelStart=0)and(pos('-',Edit1.Text)>0) then Key:=#0; '-': if (Edit1.SelStart<>0)or(pos('-',Edit1.Text)>0) then Key:=#0; else Key:=#0; end; end; А в стринггриде нет селстарта, потому единственное что работает так же это запрет ввода 2-го минуса: Код '-': if pos('-',StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row])>0 then Key:=#0; Не подскажете, что можно сделать для оставшихся 2-х ситуаций? -------------------- In this wild and woolly universe of ours, there are only three things you can count on: your brains, your bros, and your bike! |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 28 August 2025 - 16:28 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|