GD Star Rating
loading...

Котоны выручайте. Проэкт на delphi.
Суть задачи:
Есть сетка из квадратов 3х3(9шт). По клику мышки на один из квадратов закрашивает его, а после нажатия на кнопку рисует в выбраном квадрате копию сетки(в соотношении 1:3) с выбранным квадратом. Если выбрано несколько, то должно сработать для нескольких квадратов.
При след. нажатии на кнопку должен уже в нарисованном квадрате нарисовать аналогичную сетку, то есть уйти в рекурсию.

Пример, как должно выглядеть: http://d.pr/i/ytL0

Не понимаю, как сделать несколько итераций. Для одного прохода не сложно, а вот для нескольких уже не получается.

Может быть подскажет кто-нибудь, или натолкнет на мысль?

16 Responses to Котоны выручайте.

  1. Gr3All:

    Я бы делал так

    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!

  2. Ebahlam:

    Спасибо тебе, чувак!
    Ты заставил меня поставить Delphi и вспомнить что это такое!

  3. N0ibad:

    : а что у тебя за de такое?

  4. N0ibad:

    : я про desktop environment

  5. N0ibad:

    : круто блин) я уже и забыл как он выглядит, подумал что это какой-то древний линукс

  6. OozFcuk:

    : Конечно, не за что, а кодом не поделишься?

  7. Ebahlam:

    : я не совсем уверен что правильно понял что ты хочешь, точнее я уверен что я не понял. Поэтому там наверняка совсем не то, что тебе надо.
    Объясни ещё раз 🙂

  8. OozFcuk:

    : Нет, как раз все правильно.

  9. Ebahlam:

    : откуда ты знаешь? 🙂 Я реально не понял часть условия. Ладно, завтра вытащу с работы исходники.

  10. OozFcuk:

    : если как на скрине, то очень похожа на правду.
    Хотя вроде у самого получается, с помощью динамической матрицы, аля 5-ый шаг
    В любом случае жду код, любопытно посмотреть твой вариант.

  11. OozFcuk:

    Огромное спасибо за оказанную помощь.
    Вы абсолютно правильно поняли и помогли решить задачу(=

  12. Ebahlam:

    : там нет деструктора и еще глючит когда сетка маленькая (там деление на 0 или еще что-то в этом роде), винда 3.11 виснет намертво 🙂

  13. N0ibad:

    : на то она и 3.11. А вообще я думал что делфи мертв уже.

Добавить комментарий