Delphi Can
Combobox veri kaydetme - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Combobox veri kaydetme (/showthread.php?tid=5332)

Sayfalar: 1 2


Combobox veri kaydetme - Gumiho309 - 14-10-2020

Merhaba, Yazdığım kodu çalıştıramadığım için bir tavsiye almıştım fakat önerilen şeyi nasıl yapacağımı bilmiyorum. Aşağıya öneriyi ve kodu bırakıyorum. Şimdiden teşekkür ederim. 

 Uygulamam gereken işlem bu ; ''Aidat tanımlarının veri girişlerini yaptığınız yerde dairelerin yer aldığı bir combobox yerleştirerek seçilen dairenumarasını da ele alarak aidat kaydını yapmalısınız.''

procedure TForm7.Button1Click(Sender: TObject);
var
daireNo: variant;
begin
 DataModule8.Qaidat.First;
while not DataModule8.Qaidat.EOF do
begin
 DataModule8.Qdaire.Open();
 daireNo:=DataModule8.Qdaire.Lookup('OTURAN', DataModule8.Qaidat.fieldByName('AÇIKLAMA').AsString.ToLower, 'DAİRENO');
 if not(VarIsNull (daireNo)) then
 begin
   DataModule8.Qaidat.FieldByName('DAİRENO').AsString:=daireNo[0];
   DataModule8.Qaidat.Edit;
   DataModule8.Qaidat.Post;
 end;
 DataModule8.Qaidat.Next;
end;


Delphi 10.3 kullanıyorum. Verilerimi sqlite ile alıyorum. Daha önce combobox kullanmadım bir şeyler yapmayı denedim ama bir sonuca ulaşamadım. Delphiye hakim olmadığım için düzeltmeyi yapamıyorum. Veri girişi diye kastedilen satır neresi? Kaydı nasıl yapacağım bir örnek ya da düzeltme gösterebilirseniz çok iyi olur. Yardımcı olursanız çok sevinirim


Cvp: Combobox veri kaydetme - shooterman - 14-10-2020

(14-10-2020, Saat: 10:33)Gumiho309 Adlı Kullanıcıdan Alıntı: Merhaba, Yazdığım kodu çalıştıramadığım için bir tavsiye almıştım fakat önerilen şeyi nasıl yapacağımı bilmiyorum. Aşağıya öneriyi ve kodu bırakıyorum. Şimdiden teşekkür ederim. 

 Uygulamam gereken işlem bu ; ''Aidat tanımlarının veri girişlerini yaptığınız yerde dairelerin yer aldığı bir combobox yerleştirerek seçilen dairenumarasını da ele alarak aidat kaydını yapmalısınız.''

Kod:
procedure TForm7.Button1Click(Sender: TObject);
var
daireNo: variant;
begin
  DataModule8.Qaidat.First;
while not DataModule8.Qaidat.EOF do
begin
  DataModule8.Qdaire.Open();
  daireNo:=DataModule8.Qdaire.Lookup('OTURAN', DataModule8.Qaidat.fieldByName('AÇIKLAMA').AsString.ToLower, 'DAİRENO');
  if not(VarIsNull (daireNo)) then
  begin
    DataModule8.Qaidat.FieldByName('DAİRENO').AsString:=daireNo[0];
    DataModule8.Qaidat.Edit;
    DataModule8.Qaidat.Post;
  end;
  DataModule8.Qaidat.Next;
end;

Delphi 10.3 kullanıyorum. Verilerimi sqlite ile alıyorum. Daha önce combobox kullanmadım bir şeyler yapmayı denedim ama bir sonuca ulaşamadım. Delphiye hakim olmadığım için düzeltmeyi yapamıyorum. Veri girişi diye kastedilen satır neresi? Kaydı nasıl yapacağım bir örnek ya da düzeltme gösterebilirseniz çok iyi olur. Yardımcı olursanız çok sevinirim
Veri girişi diye kastedilen yer, sanırım formdur. Formun üzerine koyacağınız bir combobox içine öncelikle verileri insert edin
örnekleme:
  ComboBox1.Items.Clear;
  ComboBox1.Items.Add('Alpha');
 ComboBox1.Items.Add('Beta');
 ComboBox1.Items.Add('Gamma');
 ComboBox1.Items.Add('Delta');



Cvp: Combobox veri kaydetme - Gumiho309 - 14-10-2020

(14-10-2020, Saat: 11:04)wiseman Adlı Kullanıcıdan Alıntı:
(14-10-2020, Saat: 10:33)Gumiho309 Adlı Kullanıcıdan Alıntı: Merhaba, Yazdığım kodu çalıştıramadığım için bir tavsiye almıştım fakat önerilen şeyi nasıl yapacağımı bilmiyorum. Aşağıya öneriyi ve kodu bırakıyorum. Şimdiden teşekkür ederim. 

 Uygulamam gereken işlem bu ; ''Aidat tanımlarının veri girişlerini yaptığınız yerde dairelerin yer aldığı bir combobox yerleştirerek seçilen dairenumarasını da ele alarak aidat kaydını yapmalısınız.''

Kod:
procedure TForm7.Button1Click(Sender: TObject);
var
daireNo: variant;
begin
  DataModule8.Qaidat.First;
while not DataModule8.Qaidat.EOF do
begin
  DataModule8.Qdaire.Open();
  daireNo:=DataModule8.Qdaire.Lookup('OTURAN', DataModule8.Qaidat.fieldByName('AÇIKLAMA').AsString.ToLower, 'DAİRENO');
  if not(VarIsNull (daireNo)) then
  begin
    DataModule8.Qaidat.FieldByName('DAİRENO').AsString:=daireNo[0];
    DataModule8.Qaidat.Edit;
    DataModule8.Qaidat.Post;
  end;
  DataModule8.Qaidat.Next;
end;

Delphi 10.3 kullanıyorum. Verilerimi sqlite ile alıyorum. Daha önce combobox kullanmadım bir şeyler yapmayı denedim ama bir sonuca ulaşamadım. Delphiye hakim olmadığım için düzeltmeyi yapamıyorum. Veri girişi diye kastedilen satır neresi? Kaydı nasıl yapacağım bir örnek ya da düzeltme gösterebilirseniz çok iyi olur. Yardımcı olursanız çok sevinirim
Veri girişi diye kastedilen yer, sanırım formdur. Formun üzerine koyacağınız bir combobox içine öncelikle verileri insert edin
örnekleme:
  ComboBox1.Items.Clear;
  ComboBox1.Items.Add('Alpha');
 ComboBox1.Items.Add('Beta');
 ComboBox1.Items.Add('Gamma');
 ComboBox1.Items.Add('Delta');

Yeni bir form oluşturdum combobox koydum bunu denemiştim ama 2 tane form ve 1 datamodule üm olmuş oluyor bunu yaptığımda. Çalıştırdığımda combobox olan form ekranı gelmiyor gelmesi için ne yapmam gerekiyor?  Bir de alpha beta yazdıgınız yerlere ben gelmesini istediğim sütunları yazacağım değil mi? İnstert etme işleminden sonra nasıl devam etmeliyim?


Combobox veri kaydetme - shooterman - 14-10-2020

formunuzun bir görüntüsünü ekler misiniz. Ayrıca, sizden isteneni de tam olarak anlatırsanız daha hızlı ilerleriz.
Bir de şu linki izlemeni rica ediyorum.

http://www.webteders.com/dersler/ders/Delphi-Birbiriyle-Etkilesimli-2-Combobox-Kullanimi/194


Cvp: Combobox veri kaydetme - DelphiCan - 14-10-2020

@Gumiho309,
@AYHAN_ASLAN 
Form editörümüz üzerinde kod biçimlendirme amacı ile kullandığımız 2 adet buton bulunmaktadır. Delphi Logolu olan (Delphi Kod Ekle) buton ile Delphi kodu, Süslü Parantez simgeli buton (Kod Biçimlendirme) ile de diğer dillere ait (SQL'de dahil) kodlar eklenerek (aşağıdaki ekran görüntüsünde işaretlenmişir), kod biçimlendirme yapılmaktadır. 
Bu kapsamda;

kodbicim.jpg

Daha önce kullanmış olduğunuz [code] taglarını kod biçimlendirme Tag'ları ile değiştirilmiştir.
Sonraki kod kullanımlarında doğru kod tag'larını kullanarak bize yardımcı olursanız memnun oluruz.
Aksi durumda DelphiCan Forum Kurallarında belirtilen yaptırımlar uygulanacaktır.
İlgi ve anlayışınız için şimdiden teşekkür eder, iyi çalışmalar dileriz.

Önemli Not: Herhangi bir yerden kopyaladığınız metni, DelphiCan metin editörüne yapıştırmadan önce, metin editörünün araç çubuğunda bulunan "Kaynağı Görüntüle" butonuna tıklayın. Daha sonra kopyaladığınız metni yapıştırın. Böylece harici bir kaynaktan aldığınız metin biçimlendirmesi yok sayılacaktır.


Cvp: Combobox veri kaydetme - Gumiho309 - 14-10-2020

(14-10-2020, Saat: 11:35)wiseman Adlı Kullanıcıdan Alıntı: formunuzun bir görüntüsünü ekler misiniz. Ayrıca, sizden isteneni de tam olarak anlatırsanız daha hızlı ilerleriz.
Bir de şu linki izlemeni rica ediyorum.

http://www.webteders.com/dersler/ders/Delphi-Birbiriyle-Etkilesimli-2-Combobox-Kullanimi/194

En baştan anlatayım. Attığım kodu bir uygulamada kullanacağım. apartman yönetim uygulaması yapmaya çalışıyorum.

 2 adet tablom var birinci tablomda 5 sütun var; daireno, tarih, açıklama(Bu kısımda aidat yatıranların isimleri ve bilgileri yazıyor), tutar ve güncel bakiye. Daireno sütunum boş diğerlerinde veri var. 

İkinci tablomda da 5  sütun var ıd, daireno, dairesahibi, oturan, katmaliki sütunlarım mevcut. TabControlde 3 adet tabİtem'a Bu iki tabloyuda stringgrid üzerine ayrı ayrı aktardım. 3.tabItem'a bir grid ve button ekledim.

Yapmak istediğim şey şuydu 2.tablomda yer alan oturan sütunundaki kişi ismini 1.tablomdaki açıklama kısmında bulsun iki tabloda da aynı isimler var. Bulduğunda 2.tablomdaki isme karşılık gelen daireno'sunu 1.tablomdaki boş olan daireno sütunuma yazdırsın istiyorum. Bunun için ilk başta yazdığım kodu kullandım. 
Bu sorunumu çözmem içinde daha düzenli haliyle aşağıdaki adımları yaptığımda çözebileceğim söylendi.

    1. birinci tablonuz olan aidatların tutulduğu tablonun veri girişi için bir form oluşturun.
    2. Verilerinizi kaydederken Combobox’ta seçtiğiniz daire numarasını Aidat sorgunuzdaki daireno alanına ekleyerek kaydedin.
    3. Bu formun içerisinde Combobox olarak dairelerin numaralarını listeleyin.
Yeni bir form oluşturup içine combobox yerleştiriyorum ve sonrasında hiçbir şey yapamıyorum. Combobox kullanmadım hiç içine veri kaydetmeyi bilmiyorum biraz araştırdım fakat yapamadım. Sizin attığınız videoyuda şimdi izleyeceğim.  Yeni oluşturduğum formda sadece combobox var. Bir tanede tablolarımı aktardığım form var onu da isterseniz atabilirim. Sorunum aslında attığım kodu çalıştırabilmek, bu adımları uyguylayarakta çalıştırmayı umut ediyorum.

(14-10-2020, Saat: 12:11)DelphiCan Adlı Kullanıcıdan Alıntı: @Gumiho309,
@AYHAN_ASLAN 
Form editörümüz üzerinde kod biçimlendirme amacı ile kullandığımız 2 adet buton bulunmaktadır. Delphi Logolu olan (Delphi Kod Ekle) buton ile Delphi kodu, Süslü Parantez simgeli buton (Kod Biçimlendirme) ile de diğer dillere ait (SQL'de dahil) kodlar eklenerek (aşağıdaki ekran görüntüsünde işaretlenmişir), kod biçimlendirme yapılmaktadır. 
Bu kapsamda;

kodbicim.jpg

Daha önce kullanmış olduğunuz [code] taglarını kod biçimlendirme Tag'ları ile değiştirilmiştir.
Sonraki kod kullanımlarında doğru kod tag'larını kullanarak bize yardımcı olursanız memnun oluruz.
Aksi durumda DelphiCan Forum Kurallarında belirtilen yaptırımlar uygulanacaktır.
İlgi ve anlayışınız için şimdiden teşekkür eder, iyi çalışmalar dileriz.

Önemli Not: Herhangi bir yerden kopyaladığınız metni, DelphiCan metin editörüne yapıştırmadan önce, metin editörünün araç çubuğunda bulunan "Kaynağı Görüntüle" butonuna tıklayın. Daha sonra kopyaladığınız metni yapıştırın. Böylece harici bir kaynaktan aldığınız metin biçimlendirmesi yok sayılacaktır.

Bunu dikkate alacağım kusura bakmayın.


Combobox veri kaydetme - shooterman - 14-10-2020

Tekrar selamlar
Öncelikle benim böyle birşeye ihtiyacım olmadığı için örnekleme yapmamıştır. Ancak kendimi sizin yerinize koydum. Yapmam gereken şey hemen internetten birkaç kelime sorgulamak oldu.
"delphi stringgrid cells text"
"delphi stringgrid find text"
bu iki cümle ile dünyanın örneği çıktı karşıma. Bu örnekleri isteğime göre değiştirerek düzenledim. 1 saatimi aldı ama, sonra bir bakmışım ki, sorunum çözülmüş. Sizlerin de, öncelikle bu yöntemleri kullanarak başlamanız çok daha uygun olacaktır.
[attachment=1391]

Form üzerine 2 tane stringgrid koyun. 1 tane de buton.
Kodları şu şekilde vereyim.
unit Unit1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls;

type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   StringGrid2: TStringGrid;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure StringGrid1DblClick(Sender: TObject);
   procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
     var CanSelect: Boolean);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
  kiraciadi: string;
  daireno: string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.Cells[1,0]:='Kiracı';
StringGrid1.Cells[2,0]:='Daireno';
StringGrid1.Cells[1,1]:='Ali';
StringGrid1.Cells[1,2]:='Veli';
StringGrid1.Cells[1,3]:='Hasan';
StringGrid2.Cells[1,1]:='Ali';
StringGrid2.Cells[1,2]:='Veli';
StringGrid2.Cells[1,3]:='Hasan';
StringGrid1.Cells[2,1]:='1';
StringGrid1.Cells[2,2]:='2';
StringGrid1.Cells[2,3]:='3';
StringGrid2.Cells[1,0]:='Kiracı';
StringGrid2.Cells[2,0]:='Daireno';
end;

procedure TForm1.StringGrid1DblClick(Sender: TObject);
var
I:      Integer;
J:      Integer;
isFound: Boolean;
FndRect: TRect;
begin
 for I := 1 to StringGrid2.ColCount-1 do
   for J := 1 to StringGrid2.RowCount-1 do
     if (StringGrid2.Cells[I,J] = kiraciadi) then
     begin
       FndRect:= StringGrid2.CellRect(I,J);
       StringGrid2.Canvas.Brush.Color:= clNavy;
       StringGrid2.Canvas.FillRect(FndRect);
       StringGrid2.Canvas.Font.Color:= clWhite;
       StringGrid2.Canvas.TextOut(FndRect.Left + 3, FndRect.Top + 3, kiraciadi);
       StringGrid2.Cells[I+1,J] := daireno;
     end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
 var CanSelect: Boolean);
begin
kiraciadi:= StringGrid1.Cells[ACol,ARow];
daireno:= StringGrid1.Cells[ACol+1,ARow];
end;

end.

Eğer ki çözemezsen, mail adresini yaz. mail göndereyim programı.
Kolay gelsin.


Cvp: Combobox veri kaydetme - Gumiho309 - 14-10-2020

(14-10-2020, Saat: 15:40)wiseman Adlı Kullanıcıdan Alıntı: Tekrar selamlar
Öncelikle benim böyle birşeye ihtiyacım olmadığı için örnekleme yapmamıştır. Ancak kendimi sizin yerinize koydum. Yapmam gereken şey hemen internetten birkaç kelime sorgulamak oldu.
"delphi stringgrid cells text"
"delphi stringgrid find text"
bu iki cümle ile dünyanın örneği çıktı karşıma. Bu örnekleri isteğime göre değiştirerek düzenledim. 1 saatimi aldı ama, sonra bir bakmışım ki, sorunum çözülmüş. Sizlerin de, öncelikle bu yöntemleri kullanarak başlamanız çok daha uygun olacaktır.


Form üzerine 2 tane stringgrid koyun. 1 tane de buton.
Kodları şu şekilde vereyim.
unit Unit1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls;

type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   StringGrid2: TStringGrid;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure StringGrid1DblClick(Sender: TObject);
   procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
     var CanSelect: Boolean);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
  kiraciadi: string;
  daireno: string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.Cells[1,0]:='Kiracı';
StringGrid1.Cells[2,0]:='Daireno';
StringGrid1.Cells[1,1]:='Ali';
StringGrid1.Cells[1,2]:='Veli';
StringGrid1.Cells[1,3]:='Hasan';
StringGrid2.Cells[1,1]:='Ali';
StringGrid2.Cells[1,2]:='Veli';
StringGrid2.Cells[1,3]:='Hasan';
StringGrid1.Cells[2,1]:='1';
StringGrid1.Cells[2,2]:='2';
StringGrid1.Cells[2,3]:='3';
StringGrid2.Cells[1,0]:='Kiracı';
StringGrid2.Cells[2,0]:='Daireno';
end;

procedure TForm1.StringGrid1DblClick(Sender: TObject);
var
I:      Integer;
J:      Integer;
isFound: Boolean;
FndRect: TRect;
begin
 for I := 1 to StringGrid2.ColCount-1 do
   for J := 1 to StringGrid2.RowCount-1 do
     if (StringGrid2.Cells[I,J] = kiraciadi) then
     begin
       FndRect:= StringGrid2.CellRect(I,J);
       StringGrid2.Canvas.Brush.Color:= clNavy;
       StringGrid2.Canvas.FillRect(FndRect);
       StringGrid2.Canvas.Font.Color:= clWhite;
       StringGrid2.Canvas.TextOut(FndRect.Left + 3, FndRect.Top + 3, kiraciadi);
       StringGrid2.Cells[I+1,J] := daireno;
     end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
 var CanSelect: Boolean);
begin
kiraciadi:= StringGrid1.Cells[ACol,ARow];
daireno:= StringGrid1.Cells[ACol+1,ARow];
end;

end.

Eğer ki çözemezsen, mail adresini yaz. mail göndereyim programı.
Kolay gelsin.
Çok teşekkür ederim. Eğer çözemezssem tekrar rahatsız etmemek adına programı atarsanız daha iyi olur.


Combobox veri kaydetme - shooterman - 14-10-2020

Bence, balık tutmayı bir deneyin. Olmazsa programı göndereyim olur mu?


Cvp: Combobox veri kaydetme - Gumiho309 - 14-10-2020

(14-10-2020, Saat: 16:10)wiseman Adlı Kullanıcıdan Alıntı: Bence, balık tutmayı bir deneyin. Olmazsa programı göndereyim olur mu?
Olur, çok teşekkür ederim.