Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DBGrid Hücre Kontrolü
#1
Merhaba Arkadaşlar;

Stok Tablosunu DBGrid1 listeledim ve DBGrid1 de istediğim hücreyi düzeltmeye açma veya kapatmak istiyorum. 

STOK KODU / STOK ISMI / FIYAT1 /FIYAT2

Bana bu konuda yardımcı olabilir misiniz?
Cevapla
#2
https://www.delphican.com/showthread.php?tid=4403

YouTube Delphi Tips

"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" P.Safa
WWW
Cevapla
#3
Lütfen sorunuzu sorarken Uğur Hocamın da linkini verdiği forum kurallarına uyarak sorun.

Hem sorunuz kolay anlaşılır hemde okuyan arkadaşlar size yardımcı olma konusunda daha faydalı olur. Cevabınıza gelince yanlış anlamadıysam aşağıdaki gibi çözülebilir.
veya bunu yapacak ücretli bileşenler de var.

Devexpress firmasındaki CxGrid bileşeninde bu özelik var.  

JlKXjR.png
Cevapla
#4
Öncelikle herkes den Özür diliyorum. Soru sorma da daha dikkatli olacağım.
Emeği geçen arkadaşlara çok teşekkür ederim.
Cevapla
#5
Arkadaşlar bir şey daha rica edebilir miyim ? DBGrid1 de SATIS_FIYAT1 ,SATIS_FIYAT2 ,SATIS_FIYAT3 de sadece değişiklik yapmak istiyorum. OnKeyPress alanına şu şekilde bir kod yazdım doğrumu ? Başka şekilde çözümü var mı?


procedure TForm26.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
IF Key=#13 Then
DBGrid1.ReadOnly :=False;
end;

Hata yapmamak için kontrol nasıl sağlayabilirim?
Cevapla
#6
(01-04-2020, Saat: 10:54)Bay_Y Adlı Kullanıcıdan Alıntı: Lütfen sorunuzu sorarken Uğur Hocamın da linkini verdiği forum kurallarına uyarak sorun.

Hem sorunuz kolay anlaşılır hemde okuyan arkadaşlar size yardımcı olma konusunda daha faydalı olur. Cevabınıza gelince yanlış anlamadıysam aşağıdaki gibi çözülebilir.
veya bunu yapacak ücretli bileşenler de var.

Devexpress firmasındaki CxGrid bileşeninde bu özelik var.  

JlKXjR.png


(01-04-2020, Saat: 13:34)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar bir şey daha rica edebilir miyim ? DBGrid1 de SATIS_FIYAT1 ,SATIS_FIYAT2 ,SATIS_FIYAT3 de sadece değişiklik yapmak istiyorum. OnKeyPress alanına şu şekilde bir kod yazdım doğrumu ? Başka şekilde çözümü var mı?


procedure TForm26.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
IF Key=#13 Then
DBGrid1.ReadOnly :=False;
end;

Hata yapmamak için kontrol nasıl sağlayabilirim?

Onunda cevabını üstad vermiş.
Atılan resme iyi bakınız Smile
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla
#7
Şu Şekilde yapmaya çalıştım ama bir yerde yanlışım var sanırım bir türlü yapamadım. Bana Yardımcı olabilir misiniz?

procedure TForm26.DBGrid1KeyPress(Sender: TObject; var Key: Char);
Var
SabitCevap:Byte;
begin
IF Key=#13 Then
begin
SabitCevap:=Application.MessageBox('Stok Bilgileri Güncellenecek Eminmisiniz ?','Stok Sabit Güncelle', MB_YESNO or MB_ICONQUESTION);
 IF SabitCevap = MrYes Then  // cevap evetse
Begin
DBGrid1.Enabled:=True;
DBGrid1.Columns[0].ReadOnly:=True;
DBGrid1.Columns[1].ReadOnly:=True;
DBGrid1.Columns[2].ReadOnly:=True;
//Exit;
END
Else IF SabitCevap = MrNo Then
DBGrid1.Enabled:=True;
DBGrid1.Columns[3].ReadOnly:=False;
DBGrid1.Columns[4].ReadOnly:=False;
DBGrid1.Columns[5].ReadOnly:=False;
Application.MessageBox('Stok Güncelle Kapalı !!!','Bilgilendirme Mesajı',MB_ICONINFORMATION); // hayır seçilirse ( kaydedilmesin
Exit;
End;
End;
Cevapla
#8
(01-04-2020, Saat: 18:19)OZCANK Adlı Kullanıcıdan Alıntı: Şu Şekilde yapmaya çalıştım ama bir yerde yanlışım var sanırım bir türlü yapamadım. Bana Yardımcı olabilir misiniz?

procedure TForm26.DBGrid1KeyPress(Sender: TObject; var Key: Char);
Var
SabitCevap:Byte;
begin
IF Key=#13 Then
begin
SabitCevap:=Application.MessageBox('Stok Bilgileri Güncellenecek Eminmisiniz ?','Netsis Stok Sabit Güncelle', MB_YESNO or MB_ICONQUESTION);
 IF SabitCevap = MrYes Then  // cevap evetse
Begin
DBGrid1.Enabled:=True;
DBGrid1.Columns[0].ReadOnly:=True;
DBGrid1.Columns[1].ReadOnly:=True;
DBGrid1.Columns[2].ReadOnly:=True;
//Exit;
END
Else IF SabitCevap = MrNo Then
DBGrid1.Enabled:=True;
DBGrid1.Columns[3].ReadOnly:=False;
DBGrid1.Columns[4].ReadOnly:=False;
DBGrid1.Columns[5].ReadOnly:=False;
Application.MessageBox('Stok Güncelle Kapalı !!!','Bilgilendirme Mesajı',MB_ICONINFORMATION); // hayır seçilirse ( kaydedilmesin
Exit;
End;
End;
 True'leri false, False'leri true yapmanız gerekiyor.
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla
#9
(01-04-2020, Saat: 20:29)Halil Han Badem Adlı Kullanıcıdan Alıntı:
(01-04-2020, Saat: 18:19)OZCANK Adlı Kullanıcıdan Alıntı: Şu Şekilde yapmaya çalıştım ama bir yerde yanlışım var sanırım bir türlü yapamadım. Bana Yardımcı olabilir misiniz?

procedure TForm26.DBGrid1KeyPress(Sender: TObject; var Key: Char);
Var
SabitCevap:Byte;
begin
IF Key=#13 Then
begin
SabitCevap:=Application.MessageBox('Stok Bilgileri Güncellenecek Eminmisiniz ?','Netsis Stok Sabit Güncelle', MB_YESNO or MB_ICONQUESTION);
 IF SabitCevap = MrYes Then  // cevap evetse
Begin
DBGrid1.Enabled:=True;
DBGrid1.Columns[0].ReadOnly:=True;
DBGrid1.Columns[1].ReadOnly:=True;
DBGrid1.Columns[2].ReadOnly:=True;
//Exit;
END
Else IF SabitCevap = MrNo Then
DBGrid1.Enabled:=True;
DBGrid1.Columns[3].ReadOnly:=False;
DBGrid1.Columns[4].ReadOnly:=False;
DBGrid1.Columns[5].ReadOnly:=False;
Application.MessageBox('Stok Güncelle Kapalı !!!','Bilgilendirme Mesajı',MB_ICONINFORMATION); // hayır seçilirse ( kaydedilmesin
Exit;
End;
End;
 True'leri false, False'leri true yapmanız gerekiyor.

Denedim olmadı. Sad
Cevapla
#10
(01-04-2020, Saat: 18:19)OZCANK Adlı Kullanıcıdan Alıntı: Şu Şekilde yapmaya çalıştım ama bir yerde yanlışım var sanırım bir türlü yapamadım. Bana Yardımcı olabilir misiniz?

procedure TForm26.DBGrid1KeyPress(Sender: TObject; var Key: Char);
Var
SabitCevap:Byte;
begin
IF Key=#13 Then
begin
SabitCevap:=Application.MessageBox('Stok Bilgileri Güncellenecek Eminmisiniz ?','Stok Sabit Güncelle', MB_YESNO or MB_ICONQUESTION);
 IF SabitCevap = MrYes Then  // cevap evetse
Begin
DBGrid1.Enabled:=True;
DBGrid1.Columns[0].ReadOnly:=True;
DBGrid1.Columns[1].ReadOnly:=True;
DBGrid1.Columns[2].ReadOnly:=True;
//Exit;
END
Else IF SabitCevap = MrNo Then
DBGrid1.Enabled:=True;
DBGrid1.Columns[3].ReadOnly:=False;
DBGrid1.Columns[4].ReadOnly:=False;
DBGrid1.Columns[5].ReadOnly:=False;
Application.MessageBox('Stok Güncelle Kapalı !!!','Bilgilendirme Mesajı',MB_ICONINFORMATION); // hayır seçilirse ( kaydedilmesin
Exit;
End;
End;

Merhaba.

Sistem mesajlarına verilen cevapları if ile sorgularken bir tane cevap için yapı kurmanız yeterli olacaktır. Evet ve Hayır cevabı için ayrı ayrı incelemenize gerek yoktur.

procedure TForm26.DBGrid1KeyPress(Sender: TObject; var Key: Char);
Var
SabitCevap:Byte;
begin
IF Key=#13 Then
  Begin
SabitCevap:=Application.MessageBox('Stok Bilgileri Güncellenecek Eminmisiniz ?','Stok Sabit Güncelle', MB_YESNO+MB_ICONQUESTION);
IF SabitCevap = MrYes Then  // cevap evetse
Begin
DBGrid1.Enabled:=True;
DBGrid1.Columns[0].ReadOnly:=True;
DBGrid1.Columns[1].ReadOnly:=True;
DBGrid1.Columns[2].ReadOnly:=True;
//Exit;
End Else 
Begin
DBGrid1.Enabled:=True;
DBGrid1.Columns[3].ReadOnly:=False;
DBGrid1.Columns[4].ReadOnly:=False;
DBGrid1.Columns[5].ReadOnly:=False;
Application.MessageBox('Stok Güncelle Kapalı !!!','Bilgilendirme Mesajı',MB_ICONINFORMATION+MB_ok); // hayır seçilirse ( kaydedilmesin
Exit;
End;
End; 
End;

Bu şekilde işinizi görür diye düşünüyorum.

İyi çalışmalar.
Bazen daha ileriye ulaşmak için bir kaç adım geri gitmek mecburidir. Çünkü en ileri sıçrayışlar iki adım geriden başlar.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  DbGrid Satır renklendirmede sütun seçimi delphicim 1 150 06-09-2020, Saat: 09:28
Son Yorum: mrmarman
  DBgrid sadece ekrandaki görüntüler info@guzelceker.com 2 486 29-06-2020, Saat: 17:47
Son Yorum: info@guzelceker.com
  DbGrid To Excel & DataSet To Excel yhackup 18 7.239 26-05-2020, Saat: 21:12
Son Yorum: onur balkan
  Delphi7 DBGrid'e sağ tık yaparak form açmak batuhann 6 1.191 18-04-2020, Saat: 22:17
Son Yorum: denizfatihi
  Dbgrid Kolonlar arasında ENTER tuşu ile dolaşma Bay_Y 5 1.225 26-12-2019, Saat: 10:05
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi