Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Combobox veri kaydetme
#11
(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.

Merhaba, kodları denedim çalıştırdım. Buttona bastığımda sizin attığınız ekran görüntüsünü elde ediyorum hatta atayım onu da atabilirsem  tek fark şu stringGrid2 de sizde mesela hasan'ın karşısına daireno olarak 3 gelmiş bende o kısım boş kalıyor yani daireno alanı dolmuyor.

Onun haricinde bir kaç takıldığım yer daha var. Birazcık saçma gelebilir sorularım kusura bakmayın daha yeni öğreniyorum çoğu şeyi anlayamıyorum yeni keşfediyorum. Anladığım kadarıyla tablodaki hücreleri kod üzerinden girdik. Mesela burada 3 kişiyi girdik benim tablomda 200 kişi var bunları tek tek giremem . Tablolarımı veri tabanından aktaracağım yani o zaman sizin yazdığınız kodu kullanamam sanırım. Ya da kullanabiliyorumdur bu kısmı açıklayabilir misiniz?

 Bir de mesela kendi tablom üzerinden konuşayım 2.tablomdaki oturan sütunundaki isimleri 1.tablomdaki açıklama sütununda arayıp bulmasını istemiştim ama açıklama sütununda sadece kişi ismi yok yanında kişi ile ilgili bilgiler var burada kelime olarak araması gerektiğini düşünmüştüm. Yani bu kodla yapamıyorum sanki. Açıklarsanız çok sevinirim şimdiden teşekkür ederim.
Cevapla
#12
Selamlar
Değerleri ben kod aracılığı ile girdim. Ama zaten siz daha önce bu bilgileri veritabanından okuyarak grid içine insert edebiliyorsunuz diye anımsıyorum. Benim ekleme kodunu siz, vt den ekleme kodunuz ile değiştireceksiniz. Sonrası zaten aynı şekilde ilerleyecek. Bir döngü ile, tablonuzdaki bilgileri gride insert edin. Zaten bunu yaptığınızda sorununuz ortadan kalkıyor olacak. Ayrıca, grid alanındaki diğer bilgilerinizin başlığını da yine kodu inceleyerek aynıı şekilde aktarabilirsiniz. Baktınız işin içinden çıkamıyorsunuz, bir bağlantı verin. Anlatmaya çalışayım size. Ama öncelikle lütfen, "database to stringgrid with delphi" bile yazarak internette aratırsanız, karşınıza yazacağınız insert kodu ile ilgili birçok örnek gelecektir.
Geçmiş Olsun İZMİR
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TIdTCPServer'dan seçili client'a veri gönderme [çözüldü] Yasemin 12 489 24-11-2020, Saat: 09:27
Son Yorum: pro_imaj
  cxGrid de ComboBox kullanımı noname101 4 205 17-11-2020, Saat: 14:04
Son Yorum: noname101
  Excel Veri Okuma Yöntemi Tercihiniz Nedir? pro_imaj 12 375 11-11-2020, Saat: 22:14
Son Yorum: anemos
  String'e çevrilmiş Stream Veri JsontoDataSet Dönüştürme Sorunu. pro_imaj 16 3.365 27-10-2020, Saat: 13:38
Son Yorum: hassur
  Combobox Yazarken Filtreleme MEDCEZİR 13 583 22-10-2020, Saat: 09:55
Son Yorum: MEDCEZİR



Konuyu Okuyanlar: 1 Ziyaretçi