![]() |
|
Memo1 deki kayıt sayısını bulmak. - 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ığı: Memo1 deki kayıt sayısını bulmak. (/showthread.php?tid=6369) Sayfalar:
1
2
|
Memo1 deki kayıt sayısını bulmak. - OZCANK - 07-11-2021 Arkadaşlar Merhaba; Memo1.Text de 8 kayıt var bu kayıtları nasıl bulabilirim? Aşağıdaki kod 12 kayıt kadar dönüyor ve bu 8 kayıdın karşılığını CheckListBox1 de işaretlemek istiyorum. procedure TForm1.Memo1DblClick(Sender: TObject);
Var
KayitBul:String;
r :Integer;
begin
If Edit4.Text=KayitBul Then
Begin
Memo1.Text:='';
End
Else
Memo1.Text:=LisansKayit.FieldByName('MODULLER').Value;
for r := 0 to Memo1.Lines.Count - 1 do
Begin
ShowMessage(IntToStr®);
CheckListBox1.Checked[r]:=True;
end;
End;
Memo1 deki kayıt sayısını bulmak. - mrmarman - 07-11-2021 Memo1'de 8 kayıt derken ne tip kayıtlar ? Yani TAG'larla ayrılmış vb. çoklu satırlar mı veya Memo'daki WordWrap TRUE unutuldu da satırları mı böldü ? Hata bu da olabilir mi ? Cvp: Memo1 deki kayıt sayısını bulmak. - ugorkem - 07-11-2021 (07-11-2021, Saat: 05:41)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba; Memo1.Text de 8 kayıt var bu kayıtları nasıl bulabilirim? Aşağıdaki kod 12 kayıt kadar dönüyor ve bu 8 kayıdın karşılığını CheckListBox1 de işaretlemek istiyorum. En basit şekilde aşağıdaki şekilde bir kod işini görecektir. procedure .......... Var SatirDeger:string; x : integer; begin for x := 0 to Memo1.Lines.Count - 1 do begin SatirDeger := Memo1.Lines.Strings[ x ]; case x of 1: ...... ; 2: .......; end; end; end; Cvp: Memo1 deki kayıt sayısını bulmak. - OZCANK - 07-11-2021 (07-11-2021, Saat: 11:43)ugorkem Adlı Kullanıcıdan Alıntı:(07-11-2021, Saat: 05:41)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba; Memo1.Text de 8 kayıt var bu kayıtları nasıl bulabilirim? Aşağıdaki kod 12 kayıt kadar dönüyor ve bu 8 kayıdın karşılığını CheckListBox1 de işaretlemek istiyorum. ugorkem kardeşim çok teşekkür ederim. Verdiğin kodu şu şekilde düzenledim ama memo1 e 8 kayıt veri tabanından getiriyorum. CheckListBox1 de 15 kayıt var. İşaretlediğim (Check) ettiğim kadar Memo1 e aktarıyor ve bunu kaydediyorum.Veri tabanından Memo1 e kaydettiğim 8 kaydı getirdiğimde CheckListBox1 de de check ettiğim kayıtlarıda işaretlemek amacım. Bu kod yine 12 kayıt işaretliyor. LoadToSave ile dosyaya aktardığımda da 8 kayıt 4 tanede boş kayıt atıyor. Sanırım bu boş kayıtları silmem veya kontrol etmem gerekiyor. for r := 0 to Memo1.Lines.Count - 1 do begin KayitBul := Memo1.Lines.Strings[ r ]; case r of 0: Begin CheckListBox1.Checked[r]:=True; end; 1: Begin CheckListBox1.Checked[r]:=True; end; 2: Begin CheckListBox1.Checked[r]:=True; end; 3: Begin CheckListBox1.Checked[r]:=True; end; 4: Begin CheckListBox1.Checked[r]:=True; end; 5: Begin CheckListBox1.Checked[r]:=True; end; 6: Begin CheckListBox1.Checked[r]:=True; end; 7: Begin CheckListBox1.Checked[r]:=True; end; 8: Begin CheckListBox1.Checked[r]:=True; end; 9: Begin CheckListBox1.Checked[r]:=True; end; 10: Begin CheckListBox1.Checked[r]:=True; end; 11: Begin CheckListBox1.Checked[r]:=True; end; 12: Begin CheckListBox1.Checked[r]:=True; end; 13: Begin CheckListBox1.Checked[r]:=True; end; 14: Begin CheckListBox1.Checked[r]:=True; end; 15: Begin CheckListBox1.Checked[r]:=True; end; Bu şekilde kontrol ettiğimde 8. Kayıttan sonra boş kayıt gösteriyor. KayitBul := Memo1.Lines.Strings[ r ]; ShowMessage(KayitBul); ShowMessage(IntToStr®); Memo1 deki kayıt sayısını bulmak. - ugorkem - 07-11-2021 aşağıdaki kod işini görür checklistbox - > memo memo1.Lines.Clear; for r := 0 to CheckListBox1.Items.Count -1 do if CheckListBox1.Checked[r] then memo1.Lines.Add(r.ToString); memo - > checklistbox CheckListBox1.CheckAll(cbUnchecked); for r := 0 to Memo1.Lines.Count - 1 do if StrToIntDef( memo1.Lines.Strings[r],-1) > -1 then // arada herhangi bir boşluk olmuş ise CheckListBox1.Checked[memo1.Lines.Strings[r].ToInteger] := True; Cvp: Memo1 deki kayıt sayısını bulmak. - OZCANK - 08-11-2021 (07-11-2021, Saat: 20:03)ugorkem Adlı Kullanıcıdan Alıntı: aşağıdaki kod işini görür Delphi 7 ye uyarlayamadım. Cvp: Memo1 deki kayıt sayısını bulmak. - ugorkem - 08-11-2021 (08-11-2021, Saat: 04:42)OZCANK Adlı Kullanıcıdan Alıntı:(07-11-2021, Saat: 20:03)ugorkem Adlı Kullanıcıdan Alıntı: aşağıdaki kod işini görür .tostring .tointeger delphi 7 de olmadığından strtoint ve inttostr komutları kullanman gerekiyor. bir de D7 de tamamını unchecked edemeyeceğin için bir döngü ile yapman gerekiyor //checklistbox - > memo memo1.Lines.Clear; for r := 0 to CheckListBox1.Items.Count -1 do if CheckListBox1.Checked[r] then memo1.Lines.Add( inttostr® ); //memo - > checklistbox for r := 0 to CheckListBox1.Items.Count - 1 do CheckListBox1.Checked[r] := False; for r := 0 to Memo1.Lines.Count - 1 do if StrToIntDef( memo1.Lines.Strings[r],-1) > -1 then // arada herhangi bir boşluk olmuş ise CheckListBox1.Checked[StrToInt(memo1.Lines.Strings[r])] := True; Memo1 deki kayıt sayısını bulmak. - mrmarman - 08-11-2021 Memo içerisinde modül isimleri, CheckListBox içinde de benzeri şekilde modül isimleri var da karşılıklarını mı arıyoruz.. ? sizin koddan yola çıkarak yazdım, hata olabilir. Denemedim...
procedure TForm1.Memo1DblClick(Sender: TObject);
Var
KayitBul : String;
r, k : Integer;
begin
if Edit4.Text = 'KayitBul' then
begin
Memo1.Text:='';
end
else
Memo1.Text := LisansKayit.FieldByName('MODULLER').Value;
for k := 0 to CheckListBox1.Items.Count - 1 do
CheckListBox1.Checked[k]:=false; // önce hepsi unchecked yapıldı
for r := 0 to Memo1.Lines.Count - 1 do
begin
for k := 0 to CheckListBox1.Items.Count - 1 do
if CheckListBox1.Items[k] = Memo1.Lines[r] then CheckListBox1.Checked[k]:=True;
end;
end;
Cvp: Memo1 deki kayıt sayısını bulmak. - OZCANK - 08-11-2021 (08-11-2021, Saat: 12:37)mrmarman Adlı Kullanıcıdan Alıntı: Memo içerisinde modül isimleri, CheckListBox içinde de benzeri şekilde modül isimleri var da karşılıklarını mı arıyoruz.. ? Üstadım şu şekilde yaptığımda for r := 0 to Memo1.Lines.Count - 1 do begin for k := 0 to CheckListBox1.Items.Count - 1 do if CheckListBox1.Items[k] = Memo1.Lines[r] then ShowMessage(IntToStr(k)); ShowMessage(IntToStr®); CheckListBox1.Checked[r]:=True; end; k:0 - r:1 değerini alıyor ve 1,2,3,4,5,6,7,8,9,10,11,12 ye kadar döngüye giriyor. aslında Memo1 de 8 kayıt listelenmiş. CheckListBox1 de de 8 check yapması gerekiyor. Memo1 de 8. kayıttan sonra boş kayıt var LoadToSave ile txt kaydettiğimde boşluk var. CheckListBox1 de Modül 1 Modül 2 Modül 3 .... .... .... ... .... Memo1 de Modül 1 : Ayrıntılı K.D.V İcmal Raporu Modül 2 : Şirketten Şirkete Fatura Kopyalama Modül 3 : K.D.V İcmal Raporu Modül 4 : E-Fatura Değişen Log Raporu Modül 5 : Ayrıntılı Fatura İskonto Raporu Modül 6 : Hızlı Stok Fiyat Tanımlama İşlemi Modül 7 : Satış ve İade Toplam Raporu Modül 8 : Alış Faturasını Satış Faturası Olarak Kaydetme Memo1 deki Modül 1 kadarını alıp , CheckListBox1 deki Modül 1 eşitleme nasıl yapabilirim? Memo1 deki kayıt sayısını bulmak. - mrmarman - 08-11-2021 O zaman şu şekilde bir yaklaşım işini görecektir.
procedure TForm1.Memo1DblClick(Sender: TObject);
Var
KayitBul : String;
r, k : Integer;
LKaynak : String;
begin
if Edit4.Text = 'KayitBul' then
begin
Memo1.Text:='';
end
else
Memo1.Text := LisansKayit.FieldByName('MODULLER').Value;
for k := 0 to CheckListBox1.Items.Count - 1 do
CheckListBox1.Checked[k]:=false; // önce hepsi unchecked yapıldı
for r := 0 to Memo1.Lines.Count - 1 do
begin
LKaynak := Memo1.Lines[r]; // "Modül 1 : Ayrıntılı K.D.V İcmal Raporu"
LKaynak := Copy( Memo1.Lines[r], 1, Pos(':', Memo1.Lines[r] ) -1 ); // "Modül 1 "
LKaynak := Trim(LKaynak) // "Modül 1"
for k := 0 to CheckListBox1.Items.Count - 1 do
if CheckListBox1.Items[k] = LKaynak then CheckListBox1.Checked[k]:=True;
end;
end;
|