GD Star Rating
loading...
loading...
Котоны выручайте. Проэкт на delphi.
Суть задачи:
Есть сетка из квадратов 3х3(9шт). По клику мышки на один из квадратов закрашивает его, а после нажатия на кнопку рисует в выбраном квадрате копию сетки(в соотношении 1:3) с выбранным квадратом. Если выбрано несколько, то должно сработать для нескольких квадратов.
При след. нажатии на кнопку должен уже в нарисованном квадрате нарисовать аналогичную сетку, то есть уйти в рекурсию.
Пример, как должно выглядеть:
Не понимаю, как сделать несколько итераций. Для одного прохода не сложно, а вот для нескольких уже не получается.
Может быть подскажет кто-нибудь, или натолкнет на мысль?
Я бы делал так
1. создать массив квадратиков:
var
Form1: TForm1;
a: array[0..8] of Tpanel;
2. Создать обработчик нажатия на квадрат:
procedure MyForm.MyClick(Sender: TObject);
begin
Myclick.Color:=clRed;
end;
3. Пройтись циклом по массиву
a[i].OnClick:=MyClick;
4. По нажатию на кнопку перебрать массив и найти красные объекты:
for i:=0 to Length(a) do
begin
Pressed:=i
5. Создать новые квадратики на месте выбранных
SetLength(a, Length(a)+9);
a[last]:=TPanel.Create(nil);
6. Присвоить новым квадратикам обработчик
a[i].OnClick:=MyClick;
7. Долго трахаться с размещением панелек на формочке
8. Profit!
Спасибо тебе, чувак!
Ты заставил меня поставить Delphi и вспомнить что это такое!
: а что у тебя за de такое?
: делфи же.
: я про desktop environment
: а! Windows 3.11.
: круто блин) я уже и забыл как он выглядит, подумал что это какой-то древний линукс
: Конечно, не за что, а кодом не поделишься?
: я не совсем уверен что правильно понял что ты хочешь, точнее я уверен что я не понял. Поэтому там наверняка совсем не то, что тебе надо.
Объясни ещё раз 🙂
: Нет, как раз все правильно.
: откуда ты знаешь? 🙂 Я реально не понял часть условия. Ладно, завтра вытащу с работы исходники.
: если как на скрине, то очень похожа на правду.
Хотя вроде у самого получается, с помощью динамической матрицы, аля 5-ый шаг
В любом случае жду код, любопытно посмотреть твой вариант.
:http://dl.dropbox.com/u/3933466/trash/sq… ;
Огромное спасибо за оказанную помощь.
Вы абсолютно правильно поняли и помогли решить задачу(=
: там нет деструктора и еще глючит когда сетка маленькая (там деление на 0 или еще что-то в этом роде), винда 3.11 виснет намертво 🙂
: на то она и 3.11. А вообще я думал что делфи мертв уже.