Editten istenilen kelimeyi okuma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
cabbar
Üye
Mesajlar: 17
Kayıt: 15 Oca 2004 11:59
Konum: Tekirdağ

Editten istenilen kelimeyi okuma

Mesaj gönderen cabbar »

Editte bulunan 5 kelimelik bir cümlenin 2,3,4 ncü kelimeleri bir başka edite nasıl aktarabilirim.
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Merhaba Cabbar

Ben az önce deneyerek şçyle bir yöntemle yaptım ama daha kısa bir yoluda olabilir belki.
öncelikle 2,3,4 kelimeleri atacağın editların tag değerlerini 2,3,4 şeklinde yaz.
daha sonra aşağıdaki kod yardımıyla istedğini yapabilirsin

Kod: Tümünü seç

Var
   Deger,Aktar : String;
   i,x,KelSay : Integer;
begin
     Deger:=Edit1.Text; // 5 kelimenin olduğu edit
     Aktar:='';Kelsay:=0;
     For i:=1 To Length(Deger) Do
     Begin
          If Deger[i]<>' ' Then Aktar:=aktar+Deger[i] else
          Begin
               Inc(Kelsay);
               for x:=0 to ComponentCount-1 do
               begin
                    if (Components[x] is TEdit) then
                         if Components[x].Tag=Kelsay then
                         (Components[x] as TEdit).Text:=Aktar;
               End;
               Aktar:='';
          End;
     End;
//** Eğer son kelimeyide aktarmak istersen burayıda eklemelisniz ******///
     If Aktar<>'' then
     Begin
          Inc(Kelsay);
          for x:=0 to ComponentCount-1 do
          begin
               if (Components[x] is TEdit) then
                  if Components[x].Tag=Kelsay then
                         (Components[x] as TEdit).Text:=Aktar;
          End;
     End;
// ***** not sonu *******/
end;
bu kodlarla sınırsız sayıda kelimeyi aktarabilirsin. Ancak son kelimeninde başka bir edita işlenmesi gerekmiyorsa blok içindeki kodları yazmanıza gerek yok. Umarım işini görür.. Herkese iyi akşamlar..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
cabbar
Üye
Mesajlar: 17
Kayıt: 15 Oca 2004 11:59
Konum: Tekirdağ

Mesaj gönderen cabbar »

verdiğin örnek için teşekkür ederim. fakat kelime aralarındaki boşlukları atıyor onları atmak istemiyorum
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Ben de benzer ama başka bir yol önereyim...

- Burada ayraç olarak boşluk dışında herhangi bir karakter (virgül, nokta vs. ne istenirse) kullanma şansınız da var...

- Tanımladığınız TStringList tipinde bir değişkene, verilen satır bilgisini, verilen ayraç karakteri ile bölerek Liste'ye atıyor... Siz de listenin istenen elemanını istediğiniz edit'e yönlendirebiliyorsunuz...

:idea: Kelimeleri istediğin şekilde birleştirebilirsin. Bunu yaparken kelime aralarına birer boşlukları eklersin...

:idea: Procedure

Kod: Tümünü seç

Procedure KelimeBol(Satir: String; Ayrac:Char; Liste:TStringList);
begin
  Satir := Trim(Satir)+Ayrac;
  Repeat
    Liste.Add( Copy(Satir, 1, Pos(Ayrac, Satir)-1) );
    Delete(Satir, 1, Pos(Ayrac, Satir));
  Until Satir = '';
end;
:idea: Kullanımı...

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Var
  Liste : TStringList;
begin
  Liste := TStringList.Create;
  KelimeBol(Edit1.Text, ' ', Liste);
  Memo1.Lines.Text := Liste.Text;
  Liste.Free;
end;
Resim
Resim ....Resim
Cevapla