Formun pozisyonunu saklamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Formun pozisyonunu saklamak

Mesaj gönderen hdayi »

Merhaba arkadaşlar,
yaptığım programın pozisyonunu kullanıcı değiştirdiğinde bunu saklayıp bir dahaki sefere program açıldığında bu pozisyonda açılmasını istiyorum.

OnResize olayında yazdığım kod ile formun genişlik ve yüksekliğini registry'ye yazıyorum ancak, formun taşındığını nasıl anlayacağım, bulamadım bi türlü..

OnMove diye bir olay olsa ne güzel olurdu :(

Teşekkürler
En son hdayi tarafından 18 Eki 2005 02:32 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
Serim
Üye
Mesajlar: 194
Kayıt: 08 Ara 2004 03:32
Konum: Konya

Mesaj gönderen Serim »

RX'in Formstorage nesnesi ile formun pozisyonunu saklayabilirsiniz..
Bilginin temelini sağlam at depremde zarar görmesin
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Formun Left ve Top unu da saklarsanız birdahaki değerlere bunları atadığınızda sürüklenen yerde açılmış olur.
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Ne diyim bilmiyorum, basit düşünmek lazım basit.
Tam "Ben de biliyorum saklamak lazım ama nasıl" diyecekken aklıma geldi, OnClose'da sakla...
Teşekkürler :D :D :D
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

OnCloseQuery tasviye olunur.
Kolay gele.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Selamlar Benimde Kullanıcılar arasında bir şey dikkatimi çekti ,Formu Monitör Ekranından Taşırıyorlar, Hatta Formun Taşıma bandını Windowsun Başlat Buttununa Yakın tutup geri kalan kısmını ekranın dışında tutuyorlar bunun O pozisyondayken Ekrana otomatik gelmesinin bir yolu yokmu,Yani aşağıya veya yanlara taşırıp bırakınca Form tekrar ortaya gelsin?..
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Left ve Top değerleri sıfırdan küçük olunca sıfıra eşitle diyebilirsiniz, yada ,istediğiniz bir değere :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

Formun pozisyonunu saklaman için önce formun position özelliğini
poDesigned yapmalısın; bundan sonra formun show olayında
left ve top değerlerine, register yada ini dosyasında sakladığın değerleri atarsın.
Yine formun close olayında da formun left ve top değerlerini register yada
ini dosyasına kaydedersin, bu kadar.
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: Formun pozisyonunu saklamak

Mesaj gönderen ZeynelAbidin »

Peki arkadaşlar formu kullanıcı hem taşıyor hem boyutlarını değiştiriyor hemde ekranı kaplama haline alıyor ve ekranı kapladığı anda kapatıyor.Eğer formun close ndaki değerleri kaydedersek formu kullanıcı daha sonra wsnormale ayarlamak isterse kaydettiğimiz değerler yani ekranı kapla şeklindeki haliyle görünmeyecekmi?Ben daha önce eğer form ekranı kapla halinde kapanıyorsa onu normale alıp o şekilde kapatıyordum ve wsnormal halinide kaydetmiş oluyordum.Ama bu görsellik olarak güzel olmuyor.
Budurum için ben bir form ekranı kaplamadan önceki değerlerini almak lazım diye düşünüyorum.Ancak bunu nasıl yapılacağını bulamadım.Yardımcı olursanız sevinirim.
Kullanıcı avatarı
quadr
Üye
Mesajlar: 69
Kayıt: 21 Haz 2003 10:12
İletişim:

Re: Formun pozisyonunu saklamak

Mesaj gönderen quadr »

kullanıcının formu taşıdığını anlamanıza gerek yok.kullanıcı istediğini yapsın sonunda bu formu destroy etmesi lazım.bu destroy etme esnasında form özelliklerini bir yerde tututn.tekrar form create edilirken okuyun.eğer bunu bütün projenize uygulamak istersenizde bir ana form oluşturun diğer formları bu ana formdan create edin.formların class isimleri ile file a kaydedin böylelikle her forma ayrı ayrı kod yazmazsınız ve ana formda yaptığınız bir değişiklik diğer bütün formlara uygulanmış olur.

Kod: Tümünü seç

var
AyarlarIni: TIniFile;

procedure TFrm.FormCreate(Sender: TObject);
begin
  AyarlarIni := TIniFile.Create('./ayarlar.ini');
  with AyarlarIni do
  begin
    if FileExists('./ayarlar.ini') then
    begin
      Top     := ReadInteger(Self.ClassName, 'Top', WindowPos.Top);
      Left    := ReadInteger(Self.ClassName, 'Left', WindowPos.Left);
      Height  := ReadInteger(Self.ClassName, 'Height', WindowPos.Height);
      Widht   := ReadInteger(Self.ClassName, 'Width', WindowPos.Widht);
    end;
  end;
  AyarlarIni.Free;
end;

procedure TFrm.FormDestroy(Sender: TObject; var Action: TCloseAction);//formun FormClose olayınada yazsanız aynı işi görür
begin
  AyarlarIni := TIniFile.Create('./ayarlar.ini');
  with AyarlarIni do
  begin
    if not FileExists('./ayarlar.ini') then
    begin
      WriteInteger(Self.ClassName, 'Top',     Top);
      WriteInteger(Self.ClassName, 'Left',    Left);
      WriteInteger(Self.ClassName, 'Height',  Height);
      WriteInteger(Self.ClassName, 'Width',   Width)
    end;
  end;
  AyarlarIni.Free;
end;
kolay gelsin...

Ayakkabıyı sefaletten
Çok sonraları tanıdım
Öyle ufuklarda mı olurmuş Allah'ım
Giyer giyer koşardım
Toprağın dostluğundan
Oyuncaklar yaptım çamurdan
Tenimin rengini aldım topraktan
Sen bakma esmerliğim sonradan...

http://www.tcct.us
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: Formun pozisyonunu saklamak

Mesaj gönderen Lost Soul »

jedinin formstoragemiydi tam hatırlamıyorum adını öyle bir bileşeni far.
Fromun pozisyonunu, maximize normal vs. özelliklerini annesinin kızlık osyadını vs. ve isteğe bağlı olurak nesnelerin belirtilen değerlerini gene isteğe bağlı olarak registry,ini dosyasına otomatik olarak saklıyor ve yüklüyor.
Tek satır kod yazmıyorsunuz.
Ayrıca bu nesne üzerinde kendiniz de registry (ya da ini) dosyasına istediğiniz değerleri kod ile yazabiliyorsunuz.
Cevapla