Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Вопрос по анимации (https://forum.antichat.xyz/showthread.php?t=86928)

ronald 30.09.2008 18:30

Вопрос по анимации
 
Всем привет!
В общем написал я анимацию, шарик летет и отталкивается от стенок формы, помогите плиз сделать, чтобы форму не было видно, и её как бы вообще не было, а шарик летал бы по раб.столу
Delрhi

P3L3NG 30.09.2008 18:49

http://www.delphisources.ru/forum/showthread.php?t=5029 это если правильно понял

ronald 01.10.2008 16:26

в общем, я решил поэкспериментировать со свойствами формы, и пришёл к выводу, что нужно присвоить ей bsNone. Теперь интересует, как её саму убрать, а рабочий стол было бы видно? вместе с нариком-шариком)

paulzey 01.10.2008 17:34

Можно рисовать на любом устройстве/окне, получив его контекст функцией GetDC. Потому не имеет смысла делать форму прозрачной, когда проще рисовать прямо на окне.
К сожалению, на работе у меня образцов кода нет, но это всё вполне реализуемо.

ronald 02.10.2008 16:00

в общем вот исходник
PHP код:

unit Unit1;    interface    uses    WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms,    DialogsExtCtrls;    type    Tsharik = class(TForm)      Shape1TShape;      Timer1TTimer;      procedure FormCreate(SenderTObject);      procedure Timer1Timer(SenderTObject);    private      { Private declarations }      procedure shar();    public      { Public declarations }    end;    var    sharikTsharik;    PosXPosyVelXVelysingle;    implementation    {$R *.dfm}    procedure Tsharik.FormCreate(SenderTObject);  begin  Posx:=3;  PosY:=5;  VelX:=2;  VelY:=2;  end;    procedure Tsharik.shar;  begin  PosX:= PosX+VelX;  PosY:= PosY+VelY;    // Что бы шарик не вылетал за границы поля по ширине  // Если X координата шарика больше ширины формы - ширины самого //шарика то  if PosX > ClientWidth - Shape1.Width then  begin  //X координата шарика присвоит значение ширина формы - ширина //шарика  PosX:= ClientWidth - Shape1.Width;  // НАЗАД!!!  VelX:= - VelX;  end  else if PosX < 0 then  begin  POsX:= 0;  VelX:= - VelX;  end;    //   работаем с Y координатой  if PosY > ClientHeight - Shape1.Width then  begin  POsY:= ClientHeight - Shape1.Width;  VelY:= - VelY;  end  else if PosY < 0 then  begin  POsY:= 0;  VelY:= - VelY;  end;  // Перемещаем шарик в пространстве  Shape1.Left:= Round(PosX);  Shape1.Top:= Round(PosY);  end;    procedure Tsharik.Timer1Timer(Sender: TObject);  begin  shar;  end;    end. 

помогите с GetDC сделать, а то искал исоднеки у меня не пашит((

vikseriq 04.10.2008 17:04

Изменяем вид формы полигонально. И все дела.
Пример на VB : http://www.codenet.ru/progr/vbasic/adv_windows.php


Время: 08:42