Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2009.06.14;
Скачать: [xml.tar.bz2];

Вниз

Wrap text in editbox/memo   Найти похожие ветки 

 
Jon ©   (2008-02-05 00:41) [0]

How can I toggle word-wrap in a multi-line edit box (memo in mck)?
In the VCL I can use the WordWrap property. Is there a KOL equivalent?
I can change the style with WS_HSCROLL but the text is not wrapped.


 
Robt ©   (2008-02-05 12:47) [1]

MSDN
Handling Wordwrap and Line Breaks
EM_SETWORDBREAKPROC


 
=BuckLr= ©   (2008-02-05 13:50) [2]

In obj inspector Options - eo_NoHScroll := True ?


 
=BuckLr= ©   (2008-02-05 13:51) [3]


> EM_SETWORDBREAKPROC

Это для замены стандартной процедуры переноса. Не тот случай


 
Jon ©   (2008-02-05 21:47) [4]

Thanks - but to be able to change dynamically at runtime like notepad (wordwrap on/off)?


 
=BuckLr= ©   (2008-02-05 23:14) [5]

try:

None
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_VERT, 0);
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_HORZ, 0);
   
Both
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_VERT, 1);
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_HORZ, 1);

Vert
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_VERT, 1);
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_HORZ, 0);
   
Horz
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_VERT, 0);
   EditBox.Perform(EM_SHOWSCROLLBAR, SB_HORZ, 1);


 
Дмитрий К ©   (2008-02-06 06:12) [6]

Recreate memo w/ or w/o eoNoHScroll


 
=BuckLr= ©   (2008-02-06 10:34) [7]


> Recreate memo w/ or w/o eoNoHScroll

Зачем? Во время recreate придётся сначала создать клон компонента, затем перенести текст и все нужные свойства ВРУЧНУЮ, сохранить и восстановить положение каретки, а затем уничтожить клон. Лучше послать несколько сообщений, imho. Я уже набил шишек на свою голову :)


 
Дмитрий К ©   (2008-02-06 10:44) [8]

Зачем клон-то? Сохранить все что нужно во временные переменные, уничтожить, создать. А вот по поводу сообщений, что-то у меня сомнения, действительно работает?


 
Jon ©   (2008-02-06 14:36) [9]

Thank you everyone for your input.

This is the only solution that works (simplified):

procedure WordWrapOff;
var
 SaveText: String;
begin
 SaveText := Memo1.Text;
// Save Memo1 position, size, etc...
 Memo1.Free;
 Memo1 := NewEditBox(Form,[eoMultiline]);
// Restore Memo1 position, size, etc...
 Memo1.Text := SaveText;
end;

procedure WordWrapOn;
var
 SaveText: String;
begin
 SaveText := Memo1.Text;
// Save Memo1 position, size, etc...
 Memo1.Free;
 Memo1 := NewEditBox(Form,[eoMultiline,eoNoHScroll]);
// Restore Memo1 position, size, etc...
 Memo1.Text := SaveText;
end;

Is using a temporary variable (SaveText) the most efficient way for managing (large) text?


 
=BuckLr= ©   (2008-02-06 15:29) [10]


> Сохранить все что нужно во временные переменные,

Можно и так, не спорю.


> А вот по поводу сообщений, что-то у меня сомнения, действительно
> работает?

Так проверь. У меня работало с richedit. я придерживаюсь мнения, что гораздо лучше послать несколько сообщений, чем создавать объект заново. А в случае Jon"а, наверное, будет лучше способ с пересозданием объекта.


> Is using a temporary variable (SaveText) the most efficient
> way for managing (large) text?


I think, yes.
SaveText := Memo1.Text - the text should not be copied, pointer to Memo1.Text will be assigned to SaveText.


 
Дмитрий К ©   (2008-02-06 16:01) [11]


> Так проверь.

Проверил. Никакой реакции.

to Jon
procedure ToggleWordWrap;
var s: string; wp: TWindowPlacement; cp: Integer;
begin
 wp.length := SizeOf(TWindowPlacement);
 GetWindowPlacement(memo.Handle, @wp);
 s := memo.Text;
 cp := memo.SelStart;
 memo.Free;
 if memo.Style and WS_HSCROLL = WS_HSCROLL then
   memo := NewEditbox(form, [eoMultiline, eoNoHScroll])
 else
   memo := NewEditbox(form, [eoMultiline]);
 memo.Text := s;
 memo.SelStart := cp;
 SetWindowPlacement(memo.Handle, @wp);
 //memo.Focused := True;
end;


 
=BuckLr= ©   (2008-02-06 20:04) [12]

Действительно. Оказалось, сообщения для richedit :) Ну тогда один вариант


 
Jon ©   (2008-02-06 23:34) [13]

Thank you all very much indeed :-)



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2009.06.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
15-1239175665
Usov
2009-04-08 11:27
2009.06.14
Проблема отображения на сервере параметров с POST запроса


2-1240660353
Nameziz
2009-04-25 15:52
2009.06.14
Save/Load Tlist


4-1211024122
Gbp
2008-05-17 15:35
2009.06.14
Как получить значение нестандартную shell информацию о exe шнике?


2-1240571851
cyber-pilot
2009-04-24 15:17
2009.06.14
Динамические массивы


15-1237463278
asafr
2009-03-19 14:47
2009.06.14
Перевод с С# на Delphi...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский