Panellere animasyon verme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Panellere animasyon verme

Mesaj gönderen dogan »

Merhaba...

Panel1 ve panel2 ye animasyon vererek projeme görsellik kazandırmak istiyorum, panel2 yukarıdan aşağıya açılacak şekilde animasyonu tamamladım. Panel1 de animasyon vermek istiyorum ancak bunu "Panel1.Width + 400 ve Panel1.Width - 400" olacak şekilde yapabildim...

Bu animasyonu panel1 yukarı gittiğinde panel2 nin Width tini animasyon vererek genişlemesini ve daralmasını nasıl yaptırabilirim?

Kod: Tümünü seç

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  try
    with Panel2 do
    begin
      if ToolButton1.Tag = 0 then
      begin
        ListView2.Items.Clear;
        AnimateWindow(Handle, 300, AW_HIDE or AW_VER_NEGATIVE or AW_SLIDE);
        Visible := False;
        Panel1.Width := Panel1.Width + 400;
        ToolButton1.Tag := 1;
      end
      else
      begin
        Panel1.Width := Panel1.Width - 400;
        AnimateWindow(Handle, 300, AW_VER_POSITIVE or AW_SLIDE);
        Visible := True;
        ToolButton1.Tag := 0;
      end;
    end;
  except
  end;
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Panellere animasyon verme

Mesaj gönderen mrmarman »

Şunu dener misin ? Böyle bir şey mi olmalı.
Resim

Kod: Tümünü seç

Var
  iwPanel1 : Integer;
begin
  try
    if TToolButton(Sender).Tag = 0 then
    begin
      ListView2.Items.Clear;
      AnimateWindow(Panel2.Handle, 300, AW_HIDE or AW_VER_NEGATIVE or AW_SLIDE);
      Panel2.Visible := False;
      iwPanel1 := Panel1.Width + 200;
      while Panel1.Width <= iwPanel1 do
      begin
        Sleep(2);
        Application.ProcessMessages;
        Panel1.Width := Panel1.Width + 1;
      end;
      TToolButton(Sender).Tag := 1;
    end
    else
    begin
      iwPanel1 := Panel1.Width - 200;
      while Panel1.Width >= iwPanel1 do
      begin
        Sleep(2);
        Application.ProcessMessages;
        Panel1.Width := Panel1.Width - 1;
      end;
      AnimateWindow(Panel2.Handle, 300, AW_VER_POSITIVE or AW_SLIDE);
      Panel2.Visible := True;
      TToolButton(Sender).Tag := 0;
    end;
  except
  end;
end;
Resim
Resim ....Resim
Cevapla