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

Вниз

RichEdit   Найти похожие ветки 

 
Sergey-ZZZ   (2002-11-13 09:14) [0]

Подскажите, кто знает, как у RichEdit взять не только его Text, но и все служебные символы, т.е. то, что копируется при SaveToFile и LoadFromFile. Заранеее благодарен.


 
Song   (2002-11-13 09:15) [1]

А какие там служебные символы? Теги ртф?


 
Sergey-ZZZ   (2002-11-13 09:36) [2]

Ну да. Размер шрифта, цвет и прочая лобуда.


 
Song   (2002-11-13 09:38) [3]

Вообще Lines.Text и содержит rft если PlainText не уставновлено в True


 
Sergey-ZZZ   (2002-11-13 10:03) [4]

Фишка в чем... У меня PlainText=False. Я беру Editor.Lines.Text и кладу в базу данных, а когда извлекаю его опять в RichEdit, то он уже не форматированн. А мне нужен форматированный.


 
KoluChi   (2002-11-13 11:17) [5]

получить RTF строку:
var
S: String;
Stream: TStringStream;
begin
Stream := TStringStream.Create("");
RichEdit1.Lines.SaveToStream(Stream);
S := Stream.DataString;
Stream.Free();
end;


 
Sergey-ZZZ   (2002-11-13 11:45) [6]

Большое спасибо!!! Нужна еще помощь по извлечению из базы. Я сохраняю...
var
S: String;
Stream: TStringStream;
begin
Stream := TStringStream.Create("");
RichEdit1.Lines.SaveToStream(Stream);
S := Stream.DataString;
Stream.Free();
end;

а потом извлекаю

ADOQuery1.SQL.Text:="SELECT Text FROM Main WHERE ...";
ADOQuery1.Open;
Stream := TStringStream.Create("");
Stream:= VarToStr(ADOQuery1["Text"]);
RichEdit1.Lines.LoadFromStream(Stream);
ADOQuery1.Close;

И в RichEdit1 опять не форматированный текст :(((


 
KoluChi   (2002-11-13 11:54) [7]

Посмотри что сохранено в базе.
А извлечь можно так:
Stream := TStringStream.Create(VarToStr(ADOQuery1.FieldByName("Text").Value));
RichEdit1.Lines.LoadFromStream(Stream);
Stream.Free();
Должно работать.


 
Sergey-ZZZ   (2002-11-13 12:06) [8]

Хрен там. Не работает. Я думаю, что VarToStr форматирование и отбрасывает ????????


 
KoluChi   (2002-11-13 12:17) [9]

Stream := TStringStream.Create(VarToStr(ADOQuery1.FieldByName("Text").Value));
Stream.Position := 0;
RichEdit1.Lines.LoadFromStream(Stream);
Stream.Free();


 
KoluChi   (2002-11-13 12:24) [10]

Извини, что-то не то сказал.
В базе точно RTF строка? VarToStr тут не причем.
Посмотри
ShowMessage(VarToStr(ADOQuery1.FieldByName"Text").Value)));
- должен быть текст в RTF формате


 
KoluChi   (2002-11-13 12:25) [11]

А поле Text какого типа?


 
Sergey-ZZZ   (2002-11-13 12:32) [12]

Я храню MSSQL2000. До этого хранил в VarChar. Только что попробовал VarBinary - тот же результат. Форматирование не сохраняется.


 
KoluChi   (2002-11-13 13:26) [13]

VarChar - нормально. Приведи код записи и чтения из базы.
думаю разберемся, не все так сложно.


 
Sergey-ZZZ   (2002-11-13 15:21) [14]

procedure TMainForm.FileSaveAs(Sender: TObject);
var S: String;
Stream: TStringStream;
begin
if Memo1.Text="" then
begin
ShowMessage("Необходимо заполнить все поля");
end;
{Создаем и показываем форму сохранения файла}
If not Assigned(SaveForm) then
SaveForm :=TForm1.Create(Self);
SaveForm.ShowModal;
if SaveForm.ModalResult=mrOk then
begin
With DataModule1 do
begin

{Извлекаем и формируем названия сохраненных файлов на сервере}
ADOQuery1.SQL.Text:=
"SELECT FileName FROM Main WHERE FileName="""+SaveForm.Edit1.Text+"""";
ADOQuery1.Open;
if VarType(ADOQuery1.Fields[0].Value)=varString then
if MessageDlg(Format(sOverWrite, [SaveForm.Edit1.Text]),
mtConfirmation, mbYesNoCancel, 0) <> idYes then
begin
ADOQuery1.Close;
Exit;
end
else
ADOQuery1.Close
else ADOQuery1.Close;

Stream := TStringStream.Create("");
Editor.Lines.SaveToStream(Stream);
S := Stream.DataString;

{Устонавливаем название сохраненного файла }
SetFileName(SaveForm.Edit1.Text);
ADOQuery1.SQL.Text:=
"INSERT INTO Main([Text],FileName,UserName,CompName,DateOut,In_Out,Komu) "+
"Values(:Text,:FileName,:UserName,:CompName,:DateOut,:In_Out,:Komu)";
ADOQuery1.Parameters[0].Value := S; //Editor.Lines.Text;
ADOQuery1.Parameters[1].Value := SaveForm.Edit1.Text;
ADOQuery1.Parameters[2].Value := UserName;
ADOQuery1.Parameters[3].Value := CompName;
ADOQuery1.Parameters[4].Value := Date;
if CheckBox1.Checked then ADOQuery1.Parameters[5].Value := True
else ADOQuery1.Parameters[5].Value := False;
ADOQuery1.Parameters[6].Value := Memo1.Text;
ADOQuery1.ExecSQL;
End;
Editor.ReadOnly := true;
Stream.Free();
Editor.Modified := False;
SetModified(False);
end;
end;

{Открытие файла}
procedure TMainForm.PerformFileOpen(const AFileName: string);
Var
Stream: TStringStream;
begin
With DataModule1 do
begin
ADOQuery1.SQL.Text:="SELECT Text,Komu FROM Main WHERE FileName="""+OpenForm.Edit1.Text+"""";
ADOQuery1.Open;

Stream := TStringStream.Create(ADOQuery1.FieldByName("Text").Value);
Editor.Lines.LoadFromStream(Stream);
Stream.Free();
Memo1.Text:=(ADOQuery1["Komu"]);
ADOQuery1.Close;
end;
SetFileName(AFileName);
Editor.SetFocus;
Editor.Modified := False;
SetModified(False);
end;

Напиши свой адрес. Так будет проще общаться. И большое спасибо, что помогаешь. Sergey-ZZZ@mail.ru


 
KoluChi   (2002-11-13 16:15) [15]

Проследи логику - при записи вставляется новая строка.
А при чтении берется первая запись запроса. А кто сказал что она одна? "SELECT Text,Komu FROM Main WHERE"+OpenForm.Edit1.Text+""""
Посмотри в DBGrid что возвращает этот запрос. По-поводу моего адреса смотри почту.



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

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

Наверх





Память: 0.48 MB
Время: 0.038 c
3-82655
demoniada
2002-11-05 13:13
2002.11.25
перекрестная зависимость lookup


14-82925
BJValentine
2002-11-05 15:19
2002.11.25
Хелп, плиз!!!


4-83055
Василий2
2002-10-14 10:15
2002.11.25
Помогите перевести на дельфовский язык!!!


3-82627
MetalFan
2002-11-05 15:43
2002.11.25
RxDbGrid


1-82758
creo
2002-11-15 12:17
2002.11.25
Защита программы





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