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

نام تاپیک: افزودن خط به Memo بدون اینکه کرسر به خط آخر برود

  1. #1
    کاربر دائمی آواتار seyed_farid
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    459

    افزودن خط به Memo بدون اینکه کرسر به خط آخر برود

    با سلام
    من لاگ اتفاقات برنامه رو در ممو ثبت میکنم.
    وقتی ممو را بخوام ببینم و بالا و پایین برم؛ اگر در همین حین اتفاقی بیاد، کرسر یهو به خط آخر میره.
    راهی هست که فقط متن جدید اضافه بشه به متن قبلی ولی نشانکر جابجا نشه؟

  2. #2
    کاربر دائمی آواتار Valadi
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    فعلا در خدمت شما
    پست
    1,342

    نقل قول: افزودن خط به Memo بدون اینکه کرسر به خط آخر برود

    https://stackoverflow.com/questions/...hange-in-tmemo
    procedure TSomeMemo.OnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    begin
    if Key in [VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT] then
    OnMouseDown(Sender, mbLeft, Shift, 0, 0);
    end;

    procedure TSomeMemo.OnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
    row,col: integer;
    begin
    if Button = mbLeft then
    begin
    row := SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0);
    col := SelStart - SendMessage(Handle, EM_LINEINDEX, row, 0);
    ...
    end;
    end;

  3. #3
    کاربر دائمی آواتار seyed_farid
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    459

    نقل قول: افزودن خط به Memo بدون اینکه کرسر به خط آخر برود

    ممنون از پاسختون
    ولی
    من میخوام وقتی درحال دیدن و خواندن ممو هسنم وقتی با دستور Memo1.lines.add(text); لاگ رو مینویسم تو ممو، ممو نره خط آخر.
    ضمنا من مستقیم بوسیله کیبورد چیزی نمی نویسم.

  4. #4
    کاربر دائمی آواتار seyed_farid
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    459

    نقل قول: افزودن خط به Memo بدون اینکه کرسر به خط آخر برود

    سلام
    جهت استفاده دوستانی که مشکل من رو داشتند.
    procedure TMainForm.AddToLog(s : string);
    var i, j, LineChar, LastLine : Integer;
    begin
    LineChar := SendMessage(Memo1.Handle,EM_charfrompos,0, (Memo1.ClientHeight-1) shl 16 );
    LastLine := (LineChar and $ffff0000) shr 16;

    if LastLine < Memo1.Lines.Count
    then
    begin
    j := Memo1.SelLength;
    i := SendMessage(Memo1.Handle,EM_GETFIRSTVISIBLELINE,0, 0);

    Memo1.Lines.BeginUpdate;
    try
    Memo1.Lines.Add(s);
    Memo1.SelStart := i;
    Memo1.SelLength := j;
    Memo1.Perform(EM_SCROLLCARET, i, j)
    finally
    Memo1.Lines.EndUpdate;
    end;
    end
    else
    Memo1.Lines.Add(s);
    end;

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

  1. سوال: افزودن متن دلخواه در یک شی Memo
    نوشته شده توسط khorsandreza در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: دوشنبه 18 دی 1391, 07:05 صبح
  2. انتقال نوشته Memo بانک اطلاعاتی به Memo Field
    نوشته شده توسط ByRoad در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: جمعه 25 بهمن 1387, 16:20 عصر
  3. نوشتن در memo
    نوشته شده توسط darrudi در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: جمعه 24 آبان 1387, 19:42 عصر
  4. مشکل در گزارش گیری از memo
    نوشته شده توسط مهدی سرتیپ در بخش Access
    پاسخ: 2
    آخرین پست: چهارشنبه 21 تیر 1385, 12:45 عصر
  5. پاکسازی بخش وی بی.زود زود!!!!!
    نوشته شده توسط armin_izer در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: یک شنبه 18 اردیبهشت 1384, 22:22 عصر

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

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