Editten istenilen kelimeyi okuma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Editten istenilen kelimeyi okuma
Editte bulunan 5 kelimelik bir cümlenin 2,3,4 ncü kelimeleri bir başka edite nasıl aktarabilirim.
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
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..
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;
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
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...
Kelimeleri istediğin şekilde birleştirebilirsin. Bunu yaparken kelime aralarına birer boşlukları eklersin...
Procedure
Kullanımı...
- 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...


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;

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;