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
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
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
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?..
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.
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ı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.
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...
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.