ما هي الخاصية التي تستخدم لاضافة حرف وليس سطر في الميمو
#1
السلام عليكم ورحمة الله وبركاته 

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

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 ؟ باختصار اريد المفتاح الثاني يقوم بنفس الوظيفة بحلقة تكرارية واحدة فقط, كيف ذلك؟
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#2
وعليك السلام ورحمة الله وبركاته

هل تقصد هذا

كود :
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);
‏اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
[-] كل من 1 user says قال شكرا ل larbiparadox على المشاركة المفيدة
  • ELARAPY
الرد
#3
السلام عليكم اخي العربي

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

ybaralE
y
b
a
r
a
l
E
لم استطع تنفيذه الا بحلقتين مثل المثال المرفق في مشاركتي الاولى .
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#4
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); 
:: من يملك المعلومة يملك الميدان :: 
الرد
#5
حل سريع

كود :
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;
‏اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
الرد
#6
(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;
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم