![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема выделения текста в RichEdit [D6, Win2k]
@LeX-I © (2006-05-18 20:02:00)Код:
RichEdit.Text:=RichEdit.Text + 'А' + #13#10;
RichEdit.Text:=RichEdit.Text + 'Б' + #13#10;
richEdit.SelStart:=3;
richEdit.SelLength:=1;
richedit.SelAttributes.Style:= [fsBold];
RichEdit.Text:=RichEdit.Text + 'В';
Если убрать последнюю строчку, что буква Б будет жирной, иначе - почему-то нет.
webpauk (2006-05-19 11:01:00) [1]
function GetStringFromClipboard: WideString;
var
Data: THandle;
begin
if not IsClipboardFormatAvailable(CF_UNICODETEXT) then
Result:=Clipboard.AsText
else
begin
Clipboard.Open;
Data := GetClipboardData(CF_UNICODETEXT);
try
if Data <> 0 then
Result := PWideChar(GlobalLock(Data))
else
Result := '';
finally
if Data <> 0 then GlobalUnlock(Data);
Clipboard.Close;
end;
end;
end;
procedure PutStringIntoClipBoard(const Str: WideString);
var
Size: Integer;
Data: THandle;
DataPtr: Pointer;
begin
Size := Length(Str);
if Size = 0 then
exit;
if not IsClipboardFormatAvailable(CF_UNICODETEXT) then
Clipboard.AsText := Str
else
begin
Size := Size shl 1 + 2;
Data := GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, Size);
try
DataPtr := GlobalLock(Data);
try
Move(Pointer(Str)^, DataPtr^, Size);
Clipboard.SetAsHandle(CF_UNICODETEXT, Data);
finally
GlobalUnlock(Data);
end;
except
GlobalFree(Data);
raise;
end;
end;
end;
webpauk (2006-05-19 10:58:00) [2]RichEdit1.selstart:=Richedit1.RichEdit.Perform(EM_LINEINDEX, LineNumber, 0) + CharNumber;
RichEdit1.PasteFromClipBoard;
предварительно записав туда чего те надо
LineNumber - номер строки, CharNumber - номер символа в строке
@LeX-I (2006-05-19 10:55:00) [3]Дело в том, что при очень длинных строках ADD вылетает
webpauk (2006-05-19 10:12:00) [4]RichEdit1.Lines.Add('В');
webpauk (2006-05-19 10:10:00) [5]
> RichEdit.Text:=RichEdit.Text + 'В'
последней строчкой ты переписываешь весь Text и к ней применяются SelAttributes по умолчанию
@LeX-I (2006-05-18 23:00:00) [6]Что-то не совсем понятно. Поясните, пожалуйста.
TStas (2006-05-18 22:49:00) [7]Потому что текст меняется в этой же процедуре