31-12-2017, 06:55 PM
31-12-2017, 07:34 PM
(31-12-2017, 06:55 PM)محمودد كتب : [ -> ]وعليكم السلامالسلام عليكمكيف بمكاني الغاء كتابة اكثر من
كود :spaces في Edit او كتابة spaces مرة واحدة بين كل جملة
ضع هذا الكود في الحدث OnKeyPress
كود :
procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key =#32 then
ShowMessage('المسافه غير مقبوله');
end;
end.31-12-2017, 08:10 PM
(31-12-2017, 07:34 PM)ALG2009 كتب : [ -> ]وعليكم السلام
ضع هذا الكود في الحدث OnKeyPress
كود :procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key =#32 then ShowMessage('المسافه غير مقبوله'); end; end.
شكرا لك اريد فقط عدم السماح كتابتها اكثر من مرة او عدم كتابتها اكثر من مرة بين الجمل
31-12-2017, 08:15 PM
هكذا حل
PHP كود :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.Text[Length(Edit1.Text)] = #32) and (Key = #32) then
Key := #0;
end;
31-12-2017, 08:30 PM
(31-12-2017, 08:15 PM)Agmcz كتب : [ -> ]هكذا حل
PHP كود :procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.Text[Length(Edit1.Text)] = #32) and (Key = #32) then
Key := #0;
end;
شكرا لك هل بمكاني استخدامها مع سترنغ؟
كود :
var
s:string;
Key: Char;
begin
try
if (s[Length(s)] = #32) and (Key = #32) then
Key := #0;
except
s:='';
end;
end;31-12-2017, 09:48 PM
السلام عليكم ورحمة الله
فى الحدث onKeyPress الخاص بالمكون Edit
استخدم الكود التالى
فى الحدث onKeyPress الخاص بالمكون Edit
استخدم الكود التالى
PHP كود :
var
myStr : string;
begin
myStr := Edit1.Text;
if (Trim(Edit1.Text) = '') and (Key = #32) then
begin
Key := #0;
Exit;
end;
if (Edit1.SelStart > 0) and (Key = #32) then
if (myStr[Edit1.SelStart] = ' ') or (myStr[Edit1.SelStart + 1] = ' ') then
begin
key := #0;
Exit;
end;
end;
01-01-2018, 09:28 AM
(31-12-2017, 09:48 PM)justnick كتب : [ -> ]السلام عليكم ورحمة اللهشكرا لك هل يمكن التعديل ع الكود لاستخدامه في حدث Change الخاص بالمكون edit
فى الحدث onKeyPress الخاص بالمكون Edit
استخدم الكود التالى
PHP كود :var
myStr : string;
begin
myStr := Edit1.Text;
if (Trim(Edit1.Text) = '') and (Key = #32) then
begin
Key := #0;
Exit;
end;
if (Edit1.SelStart > 0) and (Key = #32) then
if (myStr[Edit1.SelStart] = ' ') or (myStr[Edit1.SelStart + 1] = ' ') then
begin
key := #0;
Exit;
end;
end;
عندا استخدامه بالحدث onKeyPress يمكن عمل لصق وسوف يصبح الكود بدون فائدة
01-01-2018, 12:22 PM
(31-12-2017, 08:15 PM)Agmcz كتب : [ -> ]هكذا حل
PHP كود :procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.Text[Length(Edit1.Text)] = #32) and (Key = #32) then
Key := #0;
end;
ولكن هناك رساله خطأ عندما يكون الـ Edit فارغ ونضغط على BackSpace
01-01-2018, 02:06 PM
نعم يوجد خطأ
يمكن معالجته بتحقق من طول السلسلة
يمكن معالجته بتحقق من طول السلسلة
PHP كود :
if Length(Edit1.Text) > 0 then
if (Edit1.Text[Length(Edit1.Text)] = #32) and (Key = #32) then
Key := #0;
01-01-2018, 04:27 PM
السلام عليكم ورحمة الله
استخدم الكود التالى لتحديد عدد المسافات واحدة فقط
وفى الحدث onChange للEdit ضع الكود التالى واخبرنى ماذا ترى
استخدم الكود التالى لتحديد عدد المسافات واحدة فقط
كود :
function TForm1.SpaceLimiter(Str: string): string;
var
I : Integer;
begin
I := 0;
while I < length(Str) do
begin
if (Str[I] = ' ') and (Str[I + 1] = ' ') then
begin
Delete(Str, I + 1, 1);
end
else
begin
Inc(I);
end;
end;
Result := Str;
end;وفى الحدث onChange للEdit ضع الكود التالى واخبرنى ماذا ترى
كود :
procedure TForm1.Edit3Change(Sender: TObject);
begin
Edit3.Text := SpaceLimiter(Edit3.Text);
Edit3.SelStart := Length(Edit3.Text);
end;