به عکس زیر توجه کنید :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 1 شکل صحیح داده ورودی است اما وقتی که در Edit وارد می کنم به صورت قسمت 2 نمایش داده می شه حالا برای حل این مشکل چه می شه کرد ؟ آیا راهی وجود داره ؟ :11:
Printable View
به عکس زیر توجه کنید :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 1 شکل صحیح داده ورودی است اما وقتی که در Edit وارد می کنم به صورت قسمت 2 نمایش داده می شه حالا برای حل این مشکل چه می شه کرد ؟ آیا راهی وجود داره ؟ :11:
سلام
حالت BIDMode اديت باكس شما چجوره؟ اونو به Lefttoright تغيير بدين. بايد حتماً درست بشه.
ممنون که جواب دادید
نمی دونم چطوری !
اگه تا حالا به یه همچین موردی برخورد می کردید حتما می دونستید که من چی می کم .
مشکل من با حروف فارسی است یعنی وقتی که حروف فارسی را ما بین اعداد وارد می کنم کلا قاطی می کنه
برای همین هم من وقتی از کامپوننت RichEdit استفاده کردم هنگام وارد کردن رشته هیچ مشکلی نداشت فقط تنها مشکلی که دارم این است که هی باید برنامه را فارسی و انگلیسی کنم یعنی وقتی که می خوام عدد را وارد می کنم باید برنامه به صورت انگلیسی تغییر زبان بده (shift+alt) و وقتی که می خوام حروف را وارد کنم باید برنامه را باز تغییر زبان بدم (shift+alt) و فکر می کنم این برای کاربران چیزه زیاد جالبی نباشه
فکر می کنم برای این مورد اگه کامپوننتی وجود نداشته باشه همان RichEdit جواب بده برای این کار هم باید معادل کلیدها را جایگزین کنم یعنی وفتی کلید a و یا A زده شد کاراکتر ش ثبت بشه من جستجو کردم تابعی پیدا نکردم خودم خواستم بنویسیم ولی نمی دونم چرا کاراکتر های معادل رو نمی نوشت مثلا به جای نوشتن ش می نویسه Ô حالا نمی دونم چی کار کنم
باز می رم جستجو کنم ببینم چی پیدا می کنم اگه دوستان دیگه در این زمینه چیزی می دونستن ممنون می شم در این جا مطرح کنند
یعنی کسی تا حالا با این مورد روبه رو نشد و راه حلی هم براش نداره ؟
عکسا واسه من باز نمیشه
میشه یه جا دیگه آپ کنید
سلام رفیق
لطفا عکسات رو جای دیگه Up کن.
آخه اینیو که تو موضوع تاپیکته با Suipack داره درست جواب میده!!!
منتظره عکساتم.
این هم عکس :[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]کد:http://khaterat.parsaspace.com/motafarege/2d00wf4.jpg
قسمت 1 شکل صحیح داده ورودی است اما وقتی که در Edit وارد می کنم به صورت قسمت 2 نمایش داده می شه حالا برای حل این مشکل چه می شه کرد ؟ آیا راهی وجود داره ؟
فک نکنم این مشکل فقط مختص دلفی باشه
الان همین جام که تایپ کنی همین میشه...
اگه راهی پیدا نکنم مجبورم که از RichEdit استفاده کنم
اگه دوستان دیگه نظری چیزی داشتن خوشحال می شم در این تایپیک مطرح کنند
به من گفتم که در نرم افزار هلو این مشکل رو حل کردن کسی از دوستان در این مورد چیزی می دونه ؟ ( گفتن که هلو رو هم با دلفی نوشتم و این مشکل رو نداره حالا چی کار کنم ××× )
سلام رفیق
با Metihoo (مهدی خانی حسابداری تدارک...) در مورد مشکلت پرسیدم و با تجربیاتش راهنماییم کرد.
کد زیر رو بتست.
عدد 253 مربوط به اسکی RLM میباشد .کد:Edit1.Text:='ب'+chr(253)+'15'+chr(253)+ 'ب'+chr(253)+'16'+chr(253)+'م';
شما باید در متنتون هر جا خواستید مثل متنی رو گفتید تایپ کنید از chr(253) که اسکیه RLM میشه استفاده کنید.
فقط حواستون باشه که موقع استفاده (در جستجو ها و ...)این اسکی ها رو حذف کنی!!
پولدار باشید.:31:
آقا مهدی ممنون کارم رو راه انداختی
این هم نمونه کد که من ازش استفاده کردم ( کد رو خودم نوشتم اگر چیزی رو رعایت نکردم خرده نگیرید )
کد:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit3: TEdit;
procedure delchr(e:tedit);
procedure addchr(e:tedit);
procedure Edit3Enter(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.addchr(e: tedit);
var i:integer;
s,p:string;
begin
s:=e.Text;
p:='';
for i:=1 to StrLen(pchar(s)) do
if s[i]<>chr(253) then
p:=p+chr(253)+s[i];
e.Text:=p;
end;
procedure TForm1.delchr(e: tedit);
var i:integer;
s,p:string;
begin
s:=e.Text;
p:='';
for i:=1 to StrLen(pchar(s)) do
if s[i]<>chr(253) then
p:=p+s[i];
e.Text:=p;
end;
procedure TForm1.Edit3Enter(Sender: TObject);
begin
delchr(edit3);
end;
procedure TForm1.Edit3Exit(Sender: TObject);
begin
addchr(edit3);
end;
end.