Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Form create buton visible durumu
#1
Hayırlı geceler,

Form create ederek formdaki edit içindeki eski verileri temizlenmesini sağlıyorum!.
Forumun iki giriş yöntemi var save ve update.
Fakat form show olduğunda save butonuna basıldığında update enabled false olması lazımken, update butonu enabled true yani buton aktif bu sorunu nasıl çözerim?



procedure TForm7.BtnSaveClick(Sender: TObject);
var
  MyForm: TForm8;
begin
  MyForm := TForm8.Create(Nil);
  try
    MyForm.ShowModal;
    MyForm.BtnPGSave.Enabled := True;
    MyForm.BtnPGUpdate.Enabled := False;
  finally
    MyForm.Free;
  end;
end;

procedure TForm7.BtnUpdateClick(Sender: TObject);
var
  MyForm: TForm8;
begin
  MyForm := TForm8.Create(Nil);
  try
    MyForm.ShowModal;
    MyForm.BtnPGSave.Enabled := False;
    MyForm.BtnPGUpdate.Enabled := True;
  finally
    MyForm.Free;
  end;
end;
Cevapla
#2

procedure TForm7.BtnSaveClick(Sender: TObject);
var
  MyForm: TForm8;
begin
  MyForm := TForm8.Create(Nil);
  try
    MyForm.BtnPGSave.Enabled := True;
    MyForm.BtnPGUpdate.Enabled := False;
    MyForm.ShowModal;
  finally
    MyForm.Free;
  end;
end;

procedure TForm7.BtnUpdateClick(Sender: TObject);
var
  MyForm: TForm8;
begin
  MyForm := TForm8.Create(Nil);
  try
    MyForm.BtnPGSave.Enabled := False;
    MyForm.BtnPGUpdate.Enabled := True;
    MyForm.ShowModal;
  finally
    MyForm.Free;
  end;
end;

Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.

Cevapla
#3
(27-01-2019, Saat: 00:18)Yeliz Adlı Kullanıcıdan Alıntı: Hayırlı geceler,

Form create ederek formdaki edit içindeki eski verileri temizlenmesini sağlıyorum!.
Forumun iki giriş yöntemi var save ve update.
Fakat form show olduğunda save butonuna basıldığında update enabled false olması lazımken, update butonu enabled true yani buton aktif bu sorunu nasıl çözerim?



procedure TForm7.BtnSaveClick(Sender: TObject);
var
  MyForm: TForm8;
begin
  MyForm := TForm8.Create(Nil);
  try
    MyForm.ShowModal;
    MyForm.BtnPGSave.Enabled := True;
    MyForm.BtnPGUpdate.Enabled := False;
  finally
    MyForm.Free;
  end;
end;

procedure TForm7.BtnUpdateClick(Sender: TObject);
var
  MyForm: TForm8;
begin
  MyForm := TForm8.Create(Nil);
  try
    MyForm.ShowModal;
    MyForm.BtnPGSave.Enabled := False;
    MyForm.BtnPGUpdate.Enabled := True;
  finally
    MyForm.Free;
  end;
end;

Selamlar,

try işleminden sonra
    MyForm.BtnPGSave.Enabled := False;
    MyForm.BtnPGUpdate.Enabled := True; 
    MyForm.ShowModal;

şeklinde yapıyı değiştirin her iki buton kodunda da. Showmodal olmadan önce yapılması gerekiyor. Bu şekilde yaptığınızda doğru çalışacak. Test ettim.
Cevapla
#4
Teşekkür ederim. Allah razı olsun.

Formun ShowModal olmadan butonları enabled true yapmak aklıma gelmişti ama denemedim, nedeni form Create etmeden bana mantıklı gelmemişti.
Cevapla
#5
Pardon ben soruyu yanlış gördüm ve anladım..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#6
(27-01-2019, Saat: 12:53)Yeliz Adlı Kullanıcıdan Alıntı: Teşekkür ederim. Allah razı olsun.

Formun ShowModal olmadan butonları enabled  true yapmak aklıma gelmişti ama denemedim, nedeni form Create etmeden bana mantıklı gelmemişti.

"ShowModal" komutu : ShowModal ile Çağrdığın Form kapatana kadar ShowModal'dan sonraki kodlar çalışmaz... ShowModal olarak çağırdığın ekranı kapattıktan sonra ShowModal dan sonra ki kodlar çalışmaya devam eder... 

Ayrıca Showmodal geriye Integer değer döndürür Wink

Mesela : Fatura ekranında Müşteri seçmek için Müşteri Arama ekranını ShowModal olarak açarsın, Müşteri Arama ekranında Müşteri seçtiğinde ModalResult := MusteriId ataması yaparak, Seçillen Müşteri ID bilgisini fatura ekranına aktarabilirsin... Sonra da MusteriId bilgisine göre Müşteri Bilgilerini yüklersin...

procedure TFormFatura.Button1Click(Sender: TObject);
var 
 musteriId : integer;

begin
  with TForm_Musteri.Create(Nil) do
    begin
        musteriId := Showmodal;

        queryMusteri.Close;
        queryMusteri.Sql.Text := 'SELECT * FROM musteri WHERE id = ' + inttostr( musteriId ) ;
        queryMusteri.Open;

        editMusteriAdi.Text := queryMusteri.FieldByName('MusteriAdi').asstring;
        queryMusteri.Close;
    end;
end;

Müşteri Arama ekranında Müşteri Seçim İşlemi ;
procedure TFormMusteri.ButtonMusteriSecClick(Sender: TObject);
begin
        ModalResult := queryMusteriListesi.FieldByName('id').AsInteger;
end;

ModalResult yazdığımızda CLOSE; komutu yazmıyoruz!!! ModalResult komutu formu Close ediyor...

2. olarak FormCreate etmeden form içerisinde ki bir nesneyi Enable - Disable edemezsin... 

ShowModal ve FormCreate güle güle kullanman dileğiyle...
Girdim İlim Meclisine, 
Eyledim Kıldım Talep, 

Dediler İlim Geride, 
İlla Edep İlla Edep.

Yunus Emre
Cevapla
#7
Elinize dilinize sağlık +4 rep
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FDEventAlerter ağdan form kapanmıyor info@guzelceker.com 1 47 Dün, Saat: 11:27
Son Yorum: info@guzelceker.com
  Delphi7 DBGrid'e sağ tık yaparak form açmak batuhann 6 426 18-04-2020, Saat: 22:17
Son Yorum: denizfatihi
  ekranın köşesine yapışık bir button, form erdogan 4 459 03-03-2020, Saat: 15:56
Son Yorum: erdogan
  Form yada panel içinde taşıma info@guzelceker.com 2 503 13-12-2019, Saat: 15:15
Son Yorum: ozcanm
  Sekmeler Halinde Form Açılması apachi2006 17 2.403 28-10-2019, Saat: 12:16
Son Yorum: apachi2006



Konuyu Okuyanlar: 1 Ziyaretçi