Вопрос по анимации

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ronald, 30 Sep 2008.

  1. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    Всем привет!
    В общем написал я анимацию, шарик летет и отталкивается от стенок формы, помогите плиз сделать, чтобы форму не было видно, и её как бы вообще не было, а шарик летал бы по раб.столу
    Delрhi
     
    #1 ronald, 30 Sep 2008
    Last edited by a moderator: 1 Oct 2008
    2 people like this.
  2. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    http://www.delphisources.ru/forum/showthread.php?t=5029 это если правильно понял
     
    1 person likes this.
  3. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    в общем, я решил поэкспериментировать со свойствами формы, и пришёл к выводу, что нужно присвоить ей bsNone. Теперь интересует, как её саму убрать, а рабочий стол было бы видно? вместе с нариком-шариком)
     
  4. paulzey

    paulzey Elder - Старейшина

    Joined:
    30 Oct 2007
    Messages:
    52
    Likes Received:
    16
    Reputations:
    5
    Можно рисовать на любом устройстве/окне, получив его контекст функцией GetDC. Потому не имеет смысла делать форму прозрачной, когда проще рисовать прямо на окне.
    К сожалению, на работе у меня образцов кода нет, но это всё вполне реализуемо.
     
  5. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    в общем вот исходник
    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 сделать, а то искал исоднеки у меня не пашит((
     
  6. vikseriq

    vikseriq Elder - Старейшина

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Изменяем вид формы полигонально. И все дела.
    Пример на VB : http://www.codenet.ru/progr/vbasic/adv_windows.php