سؤال

وأنا باستخدام wx.TextCtrl لإخراج النص من الديمون الشبكة.
والإخراج مطول تماما، وحجم النص في TextCtrl يمكن أن تصبح ضخمة (BTW هناك أي قيود على حجم محتويات TextCtrl؟)
أود أن حذف أعلى خطوط N من TextCtrl عندما TextCtrl.GetNumberOfLines () يتجاوز treshold محدد مسبقا. ما هي أفضل طريقة لتحقيق ذلك؟

هل كانت مفيدة؟

المحلول

SetMaxLength إشارة يقول أن القيد يعتمد على النص الأصلي الأساسي السيطرة، ولكن يجب أن تكون على الأقل 32KB.

وعن حذف خطوط أعلى N، هل يمكن أن محاولة استدعاء GetLineLength ل0..N-1، حساب مجموع S ومن ثم استدعاء إزالة (0، S)

نصائح أخرى

وماذا عن أسلوب إزالة من wx.TextCtrl؟

وعندما كنت على وشك إضافة نص جديد، يمكنك معرفة ما اذا كان يظهر النص الحالي طويلا وإزالة بعض من البداية.

وإزالة () ينبغي أن تفعل خدعة.

وTextCtrl دون wx.TE_RICH العلم لا يمكن أن يكون أكثر من 64 KB على ويندوز.

ويجب أن تكون قادرا على استخدام wx.TextCtrl.PositionToXY() wx.TextCtrl.XYToPosition() لتحويل موقف ( قياس في الأحرف من البداية) من وإلى زوج (column, line_num).

وهكذا، يمكنك استخدام i = wx.TextCtrl.XYToPosition(0, n) للحصول على i موقف خط معين <م> ن (أو <م> ن + 1 ، اعتمادا على الطريقة التي يعول عليها 0- أو 1- القائم)، ثم استدعاء wx.TextCtrl.Remove(0, i) لإزالة أول <م> ن خطوط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top