Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Memo1 deki kayıt sayısını bulmak.
#1
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;
Cevapla
#2
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 ?
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
(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.


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;

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;
Cevapla
#4
(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.


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;

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;

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®);
Cevapla
#5
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;
Cevapla
#6
(07-11-2021, Saat: 20:03)ugorkem Adlı Kullanıcıdan Alıntı: 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;

Delphi 7 ye uyarlayamadım.
Cevapla
#7
(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

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;

Delphi 7 ye uyarlayamadım.

.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;
Cevapla
#8
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;


Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#9
(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.. ?

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;



Ü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?
Cevapla
#10
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;

Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap veritabanı kayıt serdar 2 363 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 4.299 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 2.462 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63
  En çok satılan miktarı bulmak. OZCANK 3 744 08-02-2025, Saat: 16:35
Son Yorum: Hayati
  MSSQL Kayıt yöntemi nevzatc 2 721 16-12-2024, Saat: 17:40
Son Yorum: mustafaozpinar



Konuyu Okuyanlar: 1 Ziyaretçi