1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Как Упростить Задачу?

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем NeuroSystem, 18 янв 2014.

  1. NeuroSystem

    NeuroSystem New Member

    Репутация:
    0
    Регистрация:
    12 апр 2013
    Сообщения:
    3
    Симпатии:
    0
    Есть такой код:
    Код:
     with TDXVideoPanel(Sender) do
    begin
    if InFrames(0, 1000) then
    begin
    LeftTop := Point(0, 0);
    lLeftTop := CheckLeftTop(ClientWidth, ClientHeight);
    end;
    if InFrames(3, 200) then
    begin
    lHeaderLeftTop := lLeftTop;
    lHeaderSize := Point(200, 30);
    Result := RenderCell(lHeaderLeftTop, lHeaderSize, DynamicList);
    if Failed(Result) then Exit;
    end;
    if InFrames(7, 200) then
    begin
    lHeaderTextRect.Left := lLeftTop.X;
    lHeaderTextRect.Top := lLeftTop.Y;
    lHeaderTextRect.Right := lHeaderTextRect.Left + lHeaderSize.X + 18;
    lHeaderTextRect.Bottom := lHeaderTextRect.Top + lHeaderSize.Y + 20;
    Result := RenderLabel('ЛИЧНЫЙ КАБИНЕТ', lHeaderTextRect, lLabel);
    if Failed(Result) then Exit;
    end;
    if InFrames(9, 200) then
    begin
    lBodyMove.X := Min(lHeaderSize.X + (Frame - 9) * 8, 660);
    lBodyMove.Y := Min((Frame - 9) * 4, 200);
    lBodyLeftTop.X := lLeftTop.X;
    lBodyLeftTop.Y := lLeftTop.Y + lHeaderSize.Y + 20;
    lBodySize.X := lBodyMove.X;
    lBodySize.Y := lBodyMove.Y;
    Result := RenderCell(lBodyLeftTop, lBodySize, DynamicList);
    if Failed(Result) then Exit;
    end;
    if InFrames(30, 200) then
    begin
    lTimeSize.X := 280;
    lTimeSize.Y := 35;
    lTimeLeftTop.X := lBodyLeftTop.X + 16;
    lTimeLeftTop.Y := lBodyLeftTop.Y + 16;
    if InFrames(30, 50) then
    begin
    Result := RenderDynamicLabel('', lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end
    else if InFrames(50, 200) then
    begin
    Result := RenderDynamicLabel('Выполнен запуск приложения:', lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end;
    if Failed(Result) then Exit;
    if InFrames(80, 200) then
    begin
    lTimeLeftTop.X := lBodyLeftTop.X + 16 + 320;
    lTimeLeftTop.Y := lBodyLeftTop.Y + 16;
    if InFrames(80, 100) then
    begin
    Result := RenderDynamicLabel('', lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end
    else if InFrames(100, 200) then
    begin
    Result := RenderDynamicLabel(DateToStr(StartLocal) + ' в ' + TimeToStr(StartLocal), lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end;
    end;
    if Failed(Result) then Exit;
    end;
    if InFrames(60, 200) then
    begin
    lTimeSize.X := 280;
    lTimeSize.Y := 40;
    lTimeLeftTop.X := lBodyLeftTop.X + 16;
    lTimeLeftTop.Y := lBodyLeftTop.Y + 16 + 55;
    if InFrames(60, 70) then
    begin
    Result := RenderDynamicLabel('', lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end
    else if InFrames(70, 200) then
    begin
    Result := RenderDynamicLabel('Состояние счетчика процессора:', lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end;
    if Failed(Result) then Exit;
    if InFrames(100, 200) then
    begin
    lTimeLeftTop.X := lBodyLeftTop.X + 16 + 320;
    lTimeLeftTop.Y := lBodyLeftTop.Y + 16 + 55;
    if InFrames(80, 100) then
    begin
    Result := RenderDynamicLabel('', lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end
    else if InFrames(100, 200) then
    begin
    Result := RenderDynamicLabel(IntToStr(StartTickCounter) + ' тактов.', lTimeLeftTop, @lTimeSize, HeaderLabel, ActiveString);
    end;
    end;
    if Failed(Result) then Exit;
    end;
    Такого кода много.
    Как его упросить? Или может быть рисовать можно как-то иначе. Подскажите мне что-нибудь.
     
Загрузка...

Поделиться этой страницей