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

Вниз

Как сделать чтобы при загрузке текста в ричидит, текст не менялся   Найти похожие ветки 

 
Logan ©   (2005-07-26 20:13) [0]

Народ подскажите как сделать чтобы при загрузке текста в ричидит, форматирование текста не менялось???


 
Virgo_Style ©   (2005-07-26 20:26) [1]

(*включает телепатор*)
RichEdit.WordWrap = false; ?


 
Logan ©   (2005-07-26 20:42) [2]

Не работает???


 
}{eRsOn   (2005-07-26 20:54) [3]

Logan ©   (26.07.05 20:13)

Модернизируй его...
>>>>>>>
unit RichEditEx;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;

type
TLangChangeEvent=procedure(Sender:TObject;Lang:HKL) of object;

TRichEditEx = class(TRichEdit)
private
FOnLangChange:TLangChangeEvent;
procedure WMLangRequest(var M:TMessage);message WM_INPUTLANGCHANGEREQUEST;
procedure WMLangChange(var M:TMessage);message WM_INPUTLANGCHANGE;

{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
property OnLangChange:TLangChangeEvent read FOnLangChange write FOnLangChange;

{ Published declarations }
end;

procedure Register;

implementation

procedure tricheditex.WMLangRequest(var M:TMessage);
begin
if assigned(FOnLangChange) then FOnLangChange(self,m.LParam);
inherited;end;

procedure tricheditex.WMLangChange(var M:TMessage);
begin m.Result:=1;end;

procedure Register;
begin

RegisterComponents("Samples", [TRichEditEx]);
end;

end.
>>>>>>>>


 
Logan ©   (2005-07-26 22:38) [4]

Пойду попробую :)


 
ferr ©   (2005-07-27 00:12) [5]

}{eRsOn   (26.07.05 20:54) [3]
А при чём здесь форматирование?


 
Logan ©   (2005-08-01 19:56) [6]

А причём здесь RichEdit.WordWrap = false;
он у меня за перенос текста отвечает???


 
Virgo_Style ©   (2005-08-01 20:04) [7]

Logan ©   (01.08.05 19:56) [6]
он у меня за перенос текста отвечает???


У меня тоже %-) А что ты подразумеваешь под форматированием?


 
Logan ©   (2005-08-01 20:11) [8]

эээ как бы объяснить... у меня в richedit"e в свойствах шрифта стоит tahoma 12, и вот весь текст загружается именно tahoma 12, даже если он был до этого сохранён в arial. так вот надо чтобы он  загружался arial, а не  tahoma!!!


 
Logan ©   (2005-08-01 20:32) [9]

}{eRsOn   (26.07.05 20:54) [3]
не работает


 
Starcom   (2005-08-01 21:20) [10]

Logan ©   (01.08.05 20:32) [9]

По моему тема неплохая, а что вот Мастера молчат, Дык :(


 
Leonid Troyanovsky ©   (2005-08-01 21:53) [11]


> Logan ©   (01.08.05 20:11) [8]
> эээ как бы объяснить... у меня в richedit"e в свойствах
> шрифта стоит tahoma 12, и вот весь текст загружается именно
> tahoma 12, даже если он был до этого сохранён в arial. так
> вот надо чтобы он  загружался arial, а не  tahoma!!!


By Peter Below (TeamB):

To extract and insert formatted
text you need to work with EM_STREAMIN and EM_STREAMOUT since the available
interface of the Delphi controls can only do that for the complete content of
a rich edit control. Add richedit to your Uses clause and play with the
following functions:

Type
 TEditStreamCallBack = function (dwCookie: Longint; pbBuff: PByte;
   cb: Longint; var pcb: Longint): DWORD; stdcall;

 TEditStream = record
   dwCookie: Longint;
   dwError: Longint;
   pfnCallback: TEditStreamCallBack;
 end;

function EditStreamInCallback(dwCookie: Longint; pbBuff: PByte;
cb: Longint; var pcb: Longint): DWORD; Stdcall;
var
 theStream: TStream;
 dataAvail: LongInt;
begin
 theStream := TStream(dwCookie);
 with theStream do begin
   dataAvail := Size - Position;
   Result := 0; {assume everything is ok}
   if dataAvail <= cb then begin
     pcb := Read(pbBuff^, dataAvail);
     if pcb <> dataAvail then {couldn"t read req. amount of bytes}
       result := E_FAIL;
   end
   else begin
     pcb := Read(pbBuff^, cb);
     if pcb <> cb then
       result := E_FAIL;
   end;
 end;
end;

Function EditStreamOutCallback(dwCookie­: Longint; pbBuff: PByte;
   cb: Longint; var pcb: Longint): DWORD; stdcall;
var
  theStream: TStream;
begin
  theStream := TStream(dwCookie);

  with theStream do begin
    If cb > 0 Then
      pcb := Write(pbBuff^, cb);
    Result := 0;
  end;
end;

Procedure GetRTFSelection( aRichEdit: TRichEdit; intoStream: TStream );
Var
 editstream: TEditStream;
Begin
 With editstream Do Begin
   dwCookie:= Longint(intoStream);
   dwError:= 0;
   pfnCallback:= EditStreamOutCallBack;
 end;
 aRichedit.Perform( EM_STREAMOUT, SF_RTF or SFF_SELECTION,
longint(@editstream));
End;

Procedure PutRTFSelection( aRichEdit: TRichEdit; sourceStream: TStream );
Var
 editstream: TEditStream;
Begin
 With editstream Do Begin
   dwCookie:= Longint(sourceStream);
   dwError:= 0;
   pfnCallback:= EditStreamInCallBack;
 end;
 aRichedit.Perform( EM_STREAMIN, SF_RTF or SFF_SELECTION,
longint(@editstream));
End;

To copy the selection from one control to the other your do this:

Var
 aMemStream: TMemoryStream;
begin
 aMemStream := TMemoryStream.Create;
 try
   GetRTFSelection( richedit1, aMemStream );
   aMemStream.Position := 0;
   PutRTFSelection( richedit2, aMemStream );
 finally
   aMemStream.Free;
 end;
end;

В твоем случае, IMHO, должно хватить PutRTFSelection.

--
Regards, LVT.



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

Форум: "Основная";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.039 c
3-1121166715
Максим
2005-07-12 15:11
2005.08.21
Работа с полями DBGrid ?


1-1122845326
AIms
2005-08-01 01:28
2005.08.21
Как получить размер property ?


10-1099904482
Marina_Sm
2004-11-08 12:01
2005.08.21
COM


8-1113547461
stix
2005-04-15 10:44
2005.08.21
рисование простых фигур


6-1116004614
Lela
2005-05-13 21:16
2005.08.21
Прием и отображение информации. Протокол HTTP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский