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.
https://play.google.com/store/apps/developer?id=ONGUN
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.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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
WWW
Cevapla
#7
Elinize dilinize sağlık +4 rep
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  form close de form bosalmiyor sadikacar60 11 2.160 24-01-2025, Saat: 19:25
Son Yorum: sadikacar60
  Main form status barında mdichild isimlerini görüntüleme nevzatc 2 911 15-12-2024, Saat: 20:36
Son Yorum: nevzatc
  Delphi ile Web Form Alanlarını Doldurma bünyamin68 13 3.177 30-09-2024, Saat: 14:14
Son Yorum: yhackup
  Buton Oluşturma Konusunda Yardım İhtiyacı cemakkus 31 9.433 27-09-2024, Saat: 21:00
Son Yorum: cemakkus
  lazarusda form create sorunu sadikacar60 1 745 28-06-2024, Saat: 18:22
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi