Mesajı oldukça geç gördüm, konu kapanmış ama bir örnek de ben vermek istedim.
Herhangi bir nesnenin ANCHOR özelliğini bu istediğiniz MSN tarzı POPUP efekti elde etmek için kullanabilirsiniz.
ANCHOR yani çapa özelliğini bilmeyenler için yinleyim, bir nesneyi sağ, sol, üst, alt olmak üzere dört farklı taraftan dilediğiniz taraf(lar)ı bir forma bağlayabilir, boyutlandırma yapılırken bu taraf(lar)ın sabit kalmasını sağlayabilirsiniz.
Örneğimizde bir tane resim koyduk ve resmin Anchor özelliğini [akTOP] olarak tepeden sabitledik. Bu şekildeyken formun height (yükseklik) değeriyle oynadığınızda, TImage nesnesinin bir taraftan sabit kaldığını ancak diğer taraftan eridiğini göreceksiniz.
Örnek uygulama size referans olacaktır. Bunun için forma bir tane TImage nesnesi koyduk ve aşağıdaki resmi içine koyup formun BorderStyle özelliğini bsNone yaparak sadece resmin görünmesini sağladık.

FormCreate olayındaki ayarlamalar aşağıdaki şekilde yapıldı. Formun büyüklüğünün resim kadar olması sağlandı. Resim üzerine de dilediğimiz mesajı ekledik.
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.BorderStyle := bsNone;
Form1.Width := Image1.Width;
Form1.Height := Image1.Height;
KeyPreview := True;
With Image1.Picture.Bitmap.Canvas do begin
Brush.Style := bsClear;
Font.Size := 7;
Font.Color := clMaroon;
Font.Style := [fsBold];
TextOut( 70, 25, 'F1 PopUP');
TextOut( 80, 37, 'F2 PopDOWN + Çıkış');
TextOut( 90, 49, 'ESC çıkış');
end;
end;
Kod: Tümünü seç
Procedure FormAnimasyon( Form :TForm; Goster:Boolean );
Var
i,x,y : integer;
begin
x := GetSystemMetrics (SM_CXFULLSCREEN);
y := GetSystemMetrics (SM_CYFULLSCREEN);
Form1.Image1.Anchors := [akTop];
case Goster of
true : begin
for i := 0 to Form.Height do begin
SetWindowPos( Form.Handle, HWND_TOPMOST, x - Form.Width - 19, y - Form.Height + 20, 0, 0, SWP_NOSIZE);
Form.Height := i;
Application.ProcessMessages;
sleep(10);
end;
end;
false : begin
for i := Form.Height downto 0 do begin
SetWindowPos( Form.Handle, HWND_TOPMOST, x - Form.Width - 19, y - Form.Height + 20, 0, 0, SWP_NOSIZE);
Form.Height := i;
Application.ProcessMessages;
sleep(10);
end;
end;
end;
end;
Çalışmalarınızda başarılar dilerim.