delphi4arab منتديات دلفي للعرب

نسخة كاملة : ما هي الخاصية التي تستخدم لاضافة حرف وليس سطر في الميمو
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته 

هذا مثال على ما اقصده 

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);

begin
  Memo1
.Clear;
  Memo1.Lines.Add(Edit1.Text);
  for var i := 1 to High(Edit1.Text) do
    Memo1.Lines.Add(Edit1.Text[i]);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  s : string;
begin
  Memo1
.Clear;
  for var i := High(Edit1.Text) downto 1 do
    s := s + Edit1.Text[i];
  Memo1.Lines.Add(s);
  for var i := High(Edit1.Text) downto 1 do
    Memo1.Lines.Add(Edit1.Text[i]);
end; 

المفتاح الثاني : الحلقة الاولى لنسخ محتوى الايديت معكوس في المتغير ثم اضافة المتغير الى الميمو , كيف يمكن الاستغناء عن تلك الحلقة والاكتفاء بالحلقة التكرارية الاخيرة لطباعة محتوى الايديت حرف حرف الى الميمو, هل يوجد غير الخاصية Lines ؟ باختصار اريد المفتاح الثاني يقوم بنفس الوظيفة بحلقة تكرارية واحدة فقط, كيف ذلك؟
وعليك السلام ورحمة الله وبركاته

هل تقصد هذا

كود :
procedure TForm1.Button2Click(Sender: TObject); var   s : string; begin   Memo1.Clear;   for var i := High(Edit1.Text) downto 1 do     s := s + Edit1.Text[i];   Memo1.Text := s; end;

أو اكتب function

كود :
function ReverseStr(Str : String) : String; var   Res : String;   i : Byte; begin   Res:='';   for i:= High(Str) downto 1 do     Res:=Res + Str[i];   ReverseStr:=Res; end;


وبعدها نستدعيها

كود :
Memo1.Text := ReverseStr(Edit1.Text);
السلام عليكم اخي العربي

نص الايتديت مثلا Elaraby, احتاج عرضه في الميمو افقياً ثم رأسياً باستخدام حلقة واحده فقط على هذا النحو

ybaralE
y
b
a
r
a
l
E
لم استطع تنفيذه الا بحلقتين مثل المثال المرفق في مشاركتي الاولى .
PHP كود :
procedure DrawReverseString(Text : String; Memo : TMemo);
var
  I, J : Integer;
begin
  Memo
.Clear;
  J := 1;
  for I := Length(Text) downto 1 do
    begin
      Memo
.Lines[0] := Memo.Lines[0] + Text[I];
      Memo.Lines.Add('');
      Memo.Lines[J] := Text[I];
      Inc(J);
    end;
end; 


PHP كود :
DrawReverseString(Edit1.Text, Memo1); 
حل سريع

كود :
procedure TForm1.Button1Click(Sender: TObject); begin   Memo1.Clear;   for var i := 1 to Length(Edit1.Text) do       Memo1.Text := Memo1.Text + Edit1.Text[i]+ sLineBreak; end;
(02-09-2023, 08:33 AM)ELARAPY كتب : [ -> ]السلام عليكم ورحمة الله وبركاته 

هذا مثال على ما اقصده 

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);

begin
  Memo1
.Clear;
  Memo1.Lines.Add(Edit1.Text);
  for var i := 1 to High(Edit1.Text) do
    Memo1.Lines.Add(Edit1.Text[i]);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  s : string;
begin
  Memo1
.Clear;
  for var i := High(Edit1.Text) downto 1 do
    s := s + Edit1.Text[i];
  Memo1.Lines.Add(s);
  for var i := High(Edit1.Text) downto 1 do
    Memo1.Lines.Add(Edit1.Text[i]);
end; 

المفتاح الثاني : الحلقة الاولى لنسخ محتوى الايديت معكوس في المتغير ثم اضافة المتغير الى الميمو , كيف يمكن الاستغناء عن تلك الحلقة والاكتفاء بالحلقة التكرارية الاخيرة لطباعة محتوى الايديت حرف حرف الى الميمو, هل يوجد غير الخاصية Lines ؟ باختصار اريد المفتاح الثاني يقوم بنفس الوظيفة بحلقة تكرارية واحدة فقط, كيف ذلك؟

(03-09-2023, 01:38 PM)larbiparadox كتب : [ -> ]حل سريع

كود :
procedure TForm1.Button1Click(Sender: TObject); begin   Memo1.Clear;   for var i := 1 to Length(Edit1.Text) do       Memo1.Text := Memo1.Text + Edit1.Text[i]+ sLineBreak; end;