Memo Bileşeninde İstenilen Kaydı Silmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Y a V u Z
Üye
Mesajlar: 9
Kayıt: 26 Ara 2010 05:07

Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen Y a V u Z »

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
  i,x :integer;
begin
for i:=0 to memo1.Lines.count do
begin
if i div 10 >= 1 then
begin
Memo1.Lines.Delete(i);
end;
Arkadaşlar memoda 10. satırdan sonrasını sildirmek istiyorum ama bir türlü yapamadım bu kodun neresinde yanlışlık var ? yardımcı olursanız çok sevinirim. Şimdiden Teşekkürler.
cecihan
Üye
Mesajlar: 94
Kayıt: 30 Ara 2006 11:40
İletişim:

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen cecihan »

ben c++builder ile yazdığım için for döngüsünde syntax hatası yapmış olabilirim.
procedure TForm1.Button2Click(Sender: TObject);
var
i,x :integer;
begin
for i:=memo1.Lines.count-1 to 9 do
begin
Memo1.Lines.Delete(i);
end;
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen Lord_Ares »

cecihan yazdı:ben c++builder ile yazdığım için for döngüsünde syntax hatası yapmış olabilirim.
procedure TForm1.Button2Click(Sender: TObject);
var
i,x :integer;
begin
for i:=memo1.Lines.count-1 to 9 do// burayı for i:=9 to memo1.lines.count-1 do şeklinde değiştir.
begin
Memo1.Lines.Delete(i);
end;
ufak bir şeyi gözden kaçırmışsınız, 10. satırdan sonrakini silmek istemiş. vermiş olduğunu, ilk satırdan 10 cu satıra kadar siler. ilgili düzeltmeyi yaparsanız sevinirim.
cecihan
Üye
Mesajlar: 94
Kayıt: 30 Ara 2006 11:40
İletişim:

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen cecihan »

yok benim niyetim memoda 15 satır varsa 15inciden(memo.lines.count-1) geri giderek 10. satıra kadar en son kaydı silerek yukarı doğru çıkmaktı(ki bu şekilde arada satır sildiğimizde alt satır üste çıkacağı içinde karışıklığı idare etmemizde gerekecekti.). sadece for döngüsünde -1 artmasını delphi iyi bilmediğim için yazamadım. onun dışında bence mantığımda sorun yoktu. bu açıdan bakarmısınız tekrar source'a.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen Battosai »

for i:=memo1.Lines.count-1 downto 9 do üst değerden aşağı döngülerde downto kullanılır
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen varyemez »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
 var
x :integer;
begin
x:=memo1.Lines.Count-1;
while x>9 do
begin
Memo1.Lines.Delete(x);
x:=x-1;
end;

end;
memo kayıt uzunluğunu döngü içine alamazsınız. çünkü her silinişte bir azalıyor. ilk değeri x olarak saptayın
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen SimaWB »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  while Memo1.lines.Count > 10 do
    Memo1.Lines.Delete(Memo1.lines.Count-1);
end;
There's no place like 127.0.0.1
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen conari »

ilk 10 satırı başka bir memoya alıp göstermek daha mantıklı gibi. :mrgreen:
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Y a V u Z
Üye
Mesajlar: 9
Kayıt: 26 Ara 2010 05:07

Re: Memo Bileşeninde İstenilen Kaydı Silmek

Mesaj gönderen Y a V u Z »

Arkadaşlar çok sağolun ellerinize sağlık bütün yorumları okudum... İlk simaWB 'nin verdiği kodu denedim ve oldu hepinize ayrı ayrı teşekkürler ama simaWB 'ye bir fazla teşekkür ederim :D
Cevapla