Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2010, 23:57   #11
Iamloli
Пользователь
 
Аватар для Iamloli
 
Регистрация: 22.12.2009
Сообщений: 15
По умолчанию

Да. А под b, программа должна читать присвоенное условие.
Iamloli вне форума Ответить с цитированием
Старый 17.01.2010, 00:11   #12
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Слушайте, почитайте-ка хоть одну книжку из выложенных на форуме и на сайте нашего клуба
http://programmersclub.ru/book/
Ну сколько можно задавать элементарные вопросы7
Повторюсь - мы помогаем, но у нас тут не ликбез...
Хотите сразу бан схлопотать ?
mihali4 вне форума Ответить с цитированием
Старый 17.01.2010, 00:19   #13
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Цитата:
Сообщение от Iamloli Посмотреть сообщение
Но попрошу паралельно исправить мой код)
А я бы сделал так:
Код:
procedure GrowLine(const ALine : TRect; AStep, ADelay, APointSize : Integer; ACanvas : TCanvas);

  function Sign(AValue : Single) : Single; inline;
  begin
    if AValue <> 0 then
      Result := AValue / Abs( AValue )
    else
      Result := 0;
  end;

var
  XStep, YStep : Single;
  X, Y : Single;
begin
  Assert( Assigned( ACanvas ) );
  if ( ALine.Left = ALine.Right ) and ( ALine.Top = ALine.Bottom ) then Exit;
  if AStep <= 0 then Exit;
  if APointSize <= 0 then APointSize := 1;

  XStep := Sign( ALine.Right - ALine.Left ) * AStep;
  YStep := Sign( ALine.Bottom - ALine.Top ) * AStep;
  YStep := YStep * Abs( ( ALine.Bottom - ALine.Top ) / ( ALine.Right - ALine.Left ) );

  X := ALine.Left; Y := ALine.Top;
  ACanvas.MoveTo( Round( X ), Round( Y ) );
  ACanvas.Pen.Width := APointSize;
  repeat
    X := X + XStep;
    Y := Y + YStep;

    if Abs( ALine.Right - X ) < AStep then
      begin
        X := ALine.Right;
        Y := ALine.Bottom;
      end;

    ACanvas.LineTo( Round( X ), Round( Y ) );
    Application.ProcessMessages;

    Sleep( ADelay );
  until ( ALine.Right = X ) and ( ALine.Bottom = Y );
end;
Использовать так:
Код:
GrowLine( Rect( 10, 10, 200, 100 ), 2, 20, 2, Form.Canvas );
maxionans вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
условия glupayastudentka Помощь студентам 7 25.06.2009 09:43
условия combobox Mihailhome Общие вопросы Delphi 3 12.06.2009 20:09
Для аргумента Х, изменяющегося от -0.6 с шагом 0.05, вычислить 20 значений функции J@ck Помощь студентам 2 13.05.2009 14:14
Вычислить значение функции Y=F(x) для аргумента x, изменяющегося от xн до xк с шагом изменения Hx. dr.Chas Общие вопросы по программированию, компьютерный форум 1 12.12.2008 13:58