نمایش نتایج 1 تا 5 از 5

نام تاپیک: کار نکردن کد پرش به سطر و پرش به موقعیت در ریچ ادیت

  1. #1
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    کار نکردن کد پرش به سطر و پرش به موقعیت در ریچ ادیت

    سلام علیکم
    من یک کد برای جستجوی عبارت در ریچ ادیت دارم که برای پرهیز از توضیح ساده اش می کنم:
      P:=PosEx(S,Richedit1.Text,Richedit1.SelStart+1);
    If P=0 then
    Exit;
    Richedit1.SelStart:= P;
    //Richedit1.SelLength:= Length(S);
    PostMessage(Richedit1.Handle, EM_LINEFROMCHAR, 0,RichEdit1.SelStart);
    Application.ProcessMessages;
    Richedit1.SetFocus;


    این کد، فقط بار اول سطر حاوی S رو نشون میده
    یک کد دیگه دارم که برای پرش به سطر هست که اصلا کار نمی کنه:
      Form1.RichEdit1.Perform(EM_LINEINDEX,0, 12);

    کسی میتونه کدی که همیشه درست کار کنه بهم بده؟ نمی دونم چرا ریچ ادیت اینقدر عجیبه.

  2. #2

    Post نقل قول: کار نکردن کد پرش به سطر و پرش به موقعیت در ریچ ادیت




    var
    Form1: TForm1;
    Ps: Integer;
    implementation


    {$R *.dfm}


    procedure FindAndSelectString(RichEdit: TRichEdit; const SearchString: string; var Poss: Integer);
    var
    StartPos: Integer;
    begin
    StartPos := RichEdit.FindText(SearchString, Poss, Length(RichEdit.Text), []);
    if StartPos <> -1 then
    begin
    RichEdit.SelStart := StartPos;
    RichEdit.SelLength := Length(SearchString);
    RichEdit.SetFocus;
    Ps := StartPos + RichEdit.SelLength;
    end
    else
    begin
    Ps := 0;
    end;
    end;


    procedure JumpToLine(RichEdit: TRichEdit; LineNumber: Integer);
    begin
    if (LineNumber >= 0) and (LineNumber < RichEdit.Lines.Count) then
    begin
    RichEdit.SetFocus;
    RichEdit.CaretPos := Point(0, LineNumber);
    RichEdit.Perform(EM_SCROLLCARET, 0, 0);
    Ps := RichEdit.SelStart;
    end;
    end;




    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    FindAndSelectString(RichEdit1, Edit1.Text, Ps);
    end;


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    JumpToLine(RichEdit1, StrToInt(Edit2.Text) );
    end;


    procedure TForm1.FormShow(Sender: TObject);
    begin
    Ps := 0;
    end;


    end.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله دلفــي : سه شنبه 18 دی 1403 در 10:58 صبح دلیل: افزودن ضمیمه

  3. #3
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    نقل قول: کار نکردن کد پرش به سطر و پرش به موقعیت در ریچ ادیت

    ممنون. امتحان کردم.
    کد جستجو، مکان نما رو به محل می بره ولی جوری تنظیم نمی کنه که مکان نما دیده بشه.گویا TopIndex در لیست باکس تنظیم نشده باشه. یعنی اگر مکن نما چند صفحه بعد باشه و جستجو بدیم باید مثلا کلید جهت چپ رو بزنیم، تازه بفهمیم کدوم سطر هستیم.یعنی همون سطرهای قبلی بعد از جستجو دیده میشه و مکان نما در سطرهای خارج از دید هست.
    کد پرش به سطر، برای بار اول خوب بود. اما بارهای بعد خوب نیست با همون مشکلی که برای کد جستجو داشتم. نمایش ندادن سطر هدف.
    بهتر میشه اگر یک کد هم باشه که بالاترین سطر نمایش داده شده هم بشه تعیین کرد. فرض کنیم میخوایم مکان نما در سطر پنجم از سطرهای قابل رویت باشه باشه.
    آخرین ویرایش به وسیله mbshareat : شنبه 22 دی 1403 در 18:56 عصر

  4. #4

    نقل قول: کار نکردن کد پرش به سطر و پرش به موقعیت در ریچ ادیت

    نقل قول نوشته شده توسط mbshareat مشاهده تاپیک
    ممنون. امتحان کردم.
    کد جستجو، مکان نما رو به محل می بره ولی جوری تنظیم نمی کنه که مکان نما دیده بشه.گویا TopIndex در لیست باکس تنظیم نشده باشه. یعنی اگر مکن نما چند صفحه بعد باشه و جستجو بدیم باید مثلا کلید جهت چپ رو بزنیم، تازه بفهمیم کدوم سطر هستیم.یعنی همون سطرهای قبلی بعد از جستجو دیده میشه و مکان نما در سطرهای خارج از دید هست.
    کد پرش به سطر، برای بار اول خوب بود. اما بارهای بعد خوب نیست با همون مشکلی که برای کد جستجو داشتم. نمایش ندادن سطر هدف.
    بهتر میشه اگر یک کد هم باشه که بالاترین سطر نمایش داده شده هم بشه تعیین کرد. فرض کنیم میخوایم مکان نما در سطر پنجم از سطرهای قابل رویت باشه باشه.
    کدی که بالا گذاشتم بعد از پیدا کردن کلمه داخل متن به سطر مورد نظر پرش کرده و کلمه ی پیدا شده را هایلایت میکنه و محل کلمه ی پیدا شده در هر سطر یا هر صفحه ای باشه نمایش داده میشه (طبق تصویر زیر)حالا اگه مشکل شما اینه که مکان نما هم در ابتدا یا انتهای کلمه ی پیدا شده چشمک بزنه می تونید از کد زیر در داخل پروسیجر FindAndSelectString استفاده کنید:

    RichEdit.CaretPos := Point(شماره سطر , محل اشاره گر);


    در مورد پرش به سطر خاص هم می تونید از همون پروسیجر JumpToLine استفاده کنید.

  5. #5
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    نقل قول: کار نکردن کد پرش به سطر و پرش به موقعیت در ریچ ادیت

    اگر Begin در صفحه دوم و بعد از تعریف startPos و خارج از دید بود هم امتحان کردید؟ (البته ممکنه مشکل از قدیمی بودن دلفی من باشه)

تاپیک های مشابه

  1. سوال: تثبیت موقعیت نمایش فرم
    نوشته شده توسط Rasool-GH در بخش Access
    پاسخ: 6
    آخرین پست: یک شنبه 19 مهر 1394, 00:34 صبح
  2. وضعیت اپ بعد از اپدیت
    نوشته شده توسط mnakhaeipoor در بخش Android Studio
    پاسخ: 4
    آخرین پست: یک شنبه 04 مرداد 1394, 11:34 صبح
  3. رسم نمودار وضعیت برای یک اطلاعات گرید(فوری)(مشابه همین سایت)
    نوشته شده توسط sepide_68_91 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 30 اردیبهشت 1391, 12:41 عصر
  4. نمایش وضعیت ID کاربران در یاهو در سایت
    نوشته شده توسط مهدی رحیم زاده در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: چهارشنبه 22 دی 1389, 16:21 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •