Tam ekran bir form.Nesnelerin yeri değişmeden

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mbt
Üye
Mesajlar: 165
Kayıt: 27 Şub 2004 01:23

Tam ekran bir form.Nesnelerin yeri değişmeden

Mesaj gönderen mbt »

iyi günler,
bir sorum olacak. 800x600 boyutunda bir form hazırladım. Bu formu masaüstünde ortaladım. Formun hepsini beyaza kapladım ve "borderstyle" none yaparak formun başlık kısmını yok ettim. Ekranda sadece beyaz bir alan görünmekte. Ekran görüntüm sadece bu.

Soruma gelecek olursam, 1024x768 çözünürlüklü bir ekranda çalışmaktayım. Ekranda hazırlamış olduğum 800x600'lük beyaz formumun arta kalan kısımlarında masaüstü olağan olarak görünmekte. Bu kısımları da beyaz yapmak istiyorum nasıl olacak.

Diyeceksiniz formu 1024x768'de hazırla. O zaman 800x600 çözünürlüklü bilgisayarda çalışan biri için görüntü karışır.

Bunu nasıl yaparız. Kod var mı veya fikir ?
En son mbt tarafından 02 May 2004 07:07 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

Merhaba

Kod: Tümünü seç

procedure TMain_Form.FormCreate(Sender: TObject);
begin
  Main_Form.Height:=Screen.Height;
  Main_Form.Width:=Screen.Width;
end;
Kolay gelsin
Kullanıcı avatarı
akgun83
Üye
Mesajlar: 106
Kayıt: 26 Eyl 2003 11:34

Mesaj gönderen akgun83 »

Merhaba,
Eğer form bütün ekranı kaplayacaksa WindowState özelliğini maximize yapın olsun bitsin?
Kolay Gelsin
mcihad
Üye
Mesajlar: 283
Kayıt: 18 Tem 2003 03:28
Konum: Sivas

Mesaj gönderen mcihad »

form1.scaleBy(deger1,deger2);
bilgisayarın ekran çözünürlüğünü ala degerleri ona göre ver
daha önce bi dene istersen mesela form1.scaleBy(800,1024); şeklinde
Bize iyilik yaraşır.
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

Mesaj gönderen hakkus »

Merhabalar,
Aşağıdaki kod işine yarabilir.
Her durumda bütün ekranı kaplar ve form dışında bütün kontrolleri kapatır

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
application.terminate; // burası önemli aksi halde formu kapatamazsın
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 HTaskbar : HWND;
 OldVal : LongInt;
begin
TRY
 HTaskBar:=FindWindow('Shell_TrayWnd',nil);
  SystemParametersInfo (97, Word (True), @OldVal, 0) ;
  EnableWindow(HTaskBar,False);
  ShowWindow(HTaskbar,SW_HIDE);
FINALLY
 With FORM1 do begin
  BorderStyle :=bsNone;
  FormStyle   :=fsStayOnTop;
  Left        :=0;
  Top         :=0;
  Height      :=Screen.Height;
  Width       :=Screen.Width;
 end;
END{FINALLY}
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
 HTaskbar : HWND;
 OldVal : LongInt;
begin
  HTaskBar:=FindWindow('Shell_TrayWnd',nil);
  SystemParametersInfo (97, Word (False), @OldVal, 0);
  EnableWindow(HTaskBar,True);
  ShowWindow(HTaskbar,SW_SHOW);
end;
saygılar
mbt
Üye
Mesajlar: 165
Kayıt: 27 Şub 2004 01:23

Mesaj gönderen mbt »

Eğer form bütün ekranı kaplayacaksa WindowState özelliğini maximize yapın olsun bitsin?
Sorum eksik anlanmış. Tam ekran yapmada sorun yok; ama nesneler tam ekran olunca sol üst köşeye kaymamalı. Halen ortada olmalı.
Macromedia Flash ile hazırlanan bir program düşünün. "CD-ROM DATA" multimedya dergi CD'sini örnek vereyim. Bu programı hangi çözünürlükte çalışırsa çalışsın. Tam ekran olmakta ve nesnelerde çözünürlüğe göre yerleştirilen yerde olmakta.

Mcihad'ın verdiği:
form1.scaleby(deger1,deger2);
nefis bir kod. Kendisine teşekkür ediyorum. Farklı açılardan bu kod işime yarar.

Diğer arkadaşların verdiği tüm kodlar, tam ekran yapıyor ama nesneler ayarladığım gibi durmuyor. Ekranın sol üst köşesinde olmakta. Başka fikir veya kod var mı ? Sorumdaki eksiklik şimdi giderildi :)
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

Merhaba

O halde formun içine bir panel yerlestir 800x600
formun Autosize True iken
panelinkini False yap
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

Ben her çözünürlükte çalışacak şekilde şöyle çalışıyorum.

Ör: bir panelim bir de memo bileşenim olsun

formun oncreate olayına
width:=screen.width;
height:=screen.height;


formun active olayına aşağıdaki gibi gerekli kodları yazıyorum.


panel1.height:=form1.height-40;
panel1.width:=form1.widht div 3;
memo1.left:=(form1.width-memo1.width) div 2;
memo1.height:=form1.height-60;

yukarıdakileri örnek olsun diye yazdım. yanlış olabilir.

bu şekilde yaptığımda program her çözünürlükte tam ekran çalışıyor ve üzerindeki bileşenlerde ona göre konumlanıyor.
Bilgi paylaşıldıkça güzeldir.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- formadaki her nesnenin Anchors (çapa) değerlerinin dördünü de false yapın, herhangi bir yana yanaşma olmaz...
Resim
Resim ....Resim
mbt
Üye
Mesajlar: 165
Kayıt: 27 Şub 2004 01:23

Mesaj gönderen mbt »

Herkese teşekkür ediyorum. Verilen kodlar işime yaradı. Sorun çözüldü.
Cevapla