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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 23:05   #11
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
от Sazary Совет: вы бы сначала паскаль как следует изучили.
и русский язык, а то вместо "методички" получится куръез.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 03.05.2009, 23:36   #12
бедный_студент
Форумчанин
 
Регистрация: 09.02.2009
Сообщений: 143
По умолчанию

вот программа скомпилированная.
в принципе реагирует как расчитывал но работает не совсем адекватно :
1)картинка на заднем фоне наоборот должна прорисовываться
2)по центру внизу угол образуется от функции - как его убрать
3) таймер не реагирует на изменение интервала хочу скорость поднятия увеличить


Код:
unit Shtora;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    Button2: TButton;
    Image2: TImage;
    procedure FormShow(Sender: TObject);
       procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
W,H : integer;

dd : integer;


procedure TForm1.FormShow(Sender: TObject);
begin
W := Image1.Width;
H := Image1.Height;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.Brush.Color := clBlack;
Image1.Canvas.FillRect(Canvas.ClipRect);
dd := H;
Timer1.Enabled := not Timer1.Enabled;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var x1,x2: double;
y,x : integer;
i : integer;
begin
x1 := 0.0009;
x2 := -0.0009;
y := dd;
x := W div 2;
while (y<=H) and (x>=0) and (x<=W) do
 begin

 x := round(x1*W/7) + (W div 2);
 //y := round(exp(1.5*ln(abs(x1)))*H/200) + dd;
 y := -round(abs(2/x1)*H/30) + dd;
 Image1.Canvas.Pixels[x,y] := clWhite;

 x := round(x2*W/7) + (W div 2);
 //y := round(exp(1.5*ln(abs(x2)))*H/200) + dd;
 y := -round(abs(2/x2)*H/30) + dd;
 Image1.Canvas.Pixels[x,y] := clWhite;

 x1 := x1 + 000.001;
 x2 := x2 - 000.001;
 end;

dec(dd);
if dd<=0 then Timer1.Enabled := false;
end;



end.
Вложения
Тип файла: zip ShtoraProject.zip (269.7 Кб, 10 просмотров)
бедный_студент вне форума Ответить с цитированием
Старый 03.05.2009, 23:44   #13
бедный_студент
Форумчанин
 
Регистрация: 09.02.2009
Сообщений: 143
По умолчанию

Цитата:
и русский язык, а то вместо "методички" получится куръез.
хы! яж писал для себя и других а на граматику мне мягко говоря кучки делать)
бедный_студент вне форума Ответить с цитированием
Старый 03.05.2009, 23:55   #14
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

бедный_студент, вы прикрепили только exe-файл.
Цитата:
1)картинка на заднем фоне наоборот должна прорисовываться
Я вообще не вижу, где у вас в коде она загружается.
Цитата:
3) таймер не реагирует на изменение интервала хочу скорость поднятия увеличить
Происходит попиксельная прорисовка. Интервал в таймере и так 1 миллисекунда. Быстрее врядли сделаете.

Нужно переделывать. Все изменения делать на TBitmap (также, как сделано сейчас) и через определенный интервал сбрасывать на Image.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 00:24   #15
бедный_студент
Форумчанин
 
Регистрация: 09.02.2009
Сообщений: 143
По умолчанию

сорри
глаза слипаются соображалка слиплась, пинг большой

по поводу таймера мне кажется при1 милисек быстрей должно работать(на 10, 100 также работает)
Вложения
Тип файла: zip Новая папка (3).zip (301.7 Кб, 4 просмотров)

Последний раз редактировалось бедный_студент; 04.05.2009 в 00:28.
бедный_студент вне форума Ответить с цитированием
Старый 04.05.2009, 00:27   #16
бедный_студент
Форумчанин
 
Регистрация: 09.02.2009
Сообщений: 143
По умолчанию

Image1.Canvas.Pixels[x,y] := Bitmap.Canvas.Pixels[x,y];
вот тут кстати не рабоатет жалуется на ошибку не понятно какую может всесто bitmap что то другое писать надо ?
бедный_студент вне форума Ответить с цитированием
Старый 04.05.2009, 00:55   #17
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от бедный_студент
по поводу таймера мне кажется при1 милисек быстрей должно работать(на 10, 100 также работает)
Скорость зависит не только от интервала таймера, но и от самой скорости прорисовки. Быстрее не будет.
Цитата:
Image1.Canvas.Pixels[x,y] := Bitmap.Canvas.Pixels[x,y];
вот тут кстати не рабоатет жалуется на ошибку не понятно какую может всесто bitmap что то другое писать надо ?
А вы этот Bitmap создаете? Из воздуха он не возникнет.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 01:09   #18
бедный_студент
Форумчанин
 
Регистрация: 09.02.2009
Сообщений: 143
По умолчанию

вот тут пожалуйста уточните: это отдельный компонент если да то где он находится я его не нашел
или это параметр имиджа если так то картинку поставил туда
бедный_студент вне форума Ответить с цитированием
Старый 04.05.2009, 01:17   #19
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
вот тут пожалуйста уточните: это отдельный компонент если да то где он находится я его не нашел
или это параметр имиджа если так то картинку поставил туда
Это битовый образ. Его нужно создавать. Простой пример вы можете посмотреть тут:
http://programmersforum.ru/showthread.php?t=47949

Собственно, с ним все будет работать быстрее.
Суть в том, что все прорисовки вы делаете на нем. И уже конечный результат сбрасываете на Image.

---------------------
Сразу скажу: сначала почитайте о нем. Как создавать, как использовать..
А потом уже пробуйте применить.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
лаба на паскале dvuser10 Помощь студентам 4 31.03.2009 14:11
Лаба в Delphi сер4ей Помощь студентам 3 08.03.2009 13:44
2-моя лаба на С++ densan Помощь студентам 3 16.02.2009 18:16