memo yazılan bold italic metin DB Atma?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
memo yazılan bold italic metin DB Atma?
Kusura bakmayın delphi'yi öğrenmeye çalışan bi acemiyim. Küçük çaplı bir program yazmaya
başladım fakat paradox da açtığım memo alana memo ya yapıştırdığım metinlerin bazı alanları bold italic vb. fontlarda bu metinler memo da düzgüngörünüyor fakat db kaydedip tekrar açtığımda text haline geliyor.
kaydederken şu kodları kullanıyorum;
procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Append;
table1.FieldByName('baslik').AsString:=edit1.Text;
table1.FieldByName('metin').AsString:=memo1.Text;
table1.Post;
table1.Refresh;
edit1.text:='';
memo1.Text:='';
edit1.SetFocus;
end;
Bİrde memo dan yada richedit den RTF dosyasının içini göstermemiz mümkünmü. Teşekkürler.
başladım fakat paradox da açtığım memo alana memo ya yapıştırdığım metinlerin bazı alanları bold italic vb. fontlarda bu metinler memo da düzgüngörünüyor fakat db kaydedip tekrar açtığımda text haline geliyor.
kaydederken şu kodları kullanıyorum;
procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Append;
table1.FieldByName('baslik').AsString:=edit1.Text;
table1.FieldByName('metin').AsString:=memo1.Text;
table1.Post;
table1.Refresh;
edit1.text:='';
memo1.Text:='';
edit1.SetFocus;
end;
Bİrde memo dan yada richedit den RTF dosyasının içini göstermemiz mümkünmü. Teşekkürler.
Re: memo yazılan bold italic metin DB Atma?
s.a.
bunun için memo yerine richview kullanman lazım. ayrıca tablodaki alanın memo değil blob olmalı.
kolay gelsin.
bunun için memo yerine richview kullanman lazım. ayrıca tablodaki alanın memo değil blob olmalı.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: memo yazılan bold italic metin DB Atma?
Kusura bakmayın ben daha programlamanın başındayım, hatalı bi tabir kullanabilirim, şöyleki dediğiniz gibi table daki alanı blob'a çevirdim ve form'a richedit koydum. herhangi bir dilekçeyi richedit e Word dan nasıl yapıştırmışsam öyle geçiyor. Fakat kaydettiğim zaman text e dönüşüyor fontlar gidiyor. Tam olarak nerde hata yapıyorum bulamadım.
Re: memo yazılan bold italic metin DB Atma?
Google aramalarında rxrichedit kullanarak olduğu söylenmiş fakat örnek kodlar bulamadım. Exe halinde derlenmiş bir proje de richedit kullanmışlar memo alanlara kayıt yaptırıyorlar, fakat proje exe olduğu için kodları göremiyorum. Benim projemde bu tarzda bir dilekçe projesi, kendi ofisimde kullanmak için yazmaya başladım. ilk sorunumu yukarda anlattım;
ikinci sorunum ise;
RichEdit1.Lines.SaveToFile('deneme.rtf'); komutu ile bir RTF oluşturuyorum. Bir sorun yok fakat;
Richedit in içi dolu ama oluşan dosyanın içi boş, bunun nedeni nedir? ve Oluşan dosya oluşur oluşmaz bu dosyaya word ile açtırabilirmiyim.
Kusurabakmayın bu kadar acemi sorular soran biriyle karşılaşmamışsınızdır.
İyi günler dilerim.
ikinci sorunum ise;
RichEdit1.Lines.SaveToFile('deneme.rtf'); komutu ile bir RTF oluşturuyorum. Bir sorun yok fakat;
Richedit in içi dolu ama oluşan dosyanın içi boş, bunun nedeni nedir? ve Oluşan dosya oluşur oluşmaz bu dosyaya word ile açtırabilirmiyim.
Kusurabakmayın bu kadar acemi sorular soran biriyle karşılaşmamışsınızdır.

Re: memo yazılan bold italic metin DB Atma?
ilk önce dosyanın olusturulacagı yolu yazmalısınız...
örnek:
örnek:
Kod: Tümünü seç
RichEdit1.Lines.SaveToFile('C:\deneme.rtf');
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.Lines.SaveToFile('C:\deneme.rtf');
ShellExecute(Form1.Handle,nil,'C:\deneme.rtf', nil, nil, SW_SHOW);
end;
end.
procedure TForm1.FormCreate(Sender: TObject);
begin
showmessage('Dehanın %1 i ilham %99u terdir.');
end;
end.
begin
showmessage('Dehanın %1 i ilham %99u terdir.');
end;
end.
Re: memo yazılan bold italic metin DB Atma?
teşekkürler verdiğiniz örnekleri biraz daha geliştirerek 2. sorunumu aştım.
Fakat ilk sorunuma çözüm bulmadım. Memo alana richedit deki metini kaydederken richedit.lines.savetostraem şeklinde bir yolmu izlemeliyim?
internette şöyle bir örnek kod buldum bu şekilde kayıt yapdım, fakat alanı çağırdığımda içi boş geliyor?,
Fakat ilk sorunuma çözüm bulmadım. Memo alana richedit deki metini kaydederken richedit.lines.savetostraem şeklinde bir yolmu izlemeliyim?
internette şöyle bir örnek kod buldum bu şekilde kayıt yapdım, fakat alanı çağırdığımda içi boş geliyor?,
Kod: Tümünü seç
procedure TForm1.Button2Click(Sender: TObject);
var
Stream1: TStream;
begin
Table1.Edit;
Stream1:=Table1.CreateBlobStream(Table1.FieldByName('RTF'),bmReadWrite);
RichEdit1.Lines.SaveToStream(Stream1);
Table1.Post;
RichEdit1.Clear;
end;
Re: memo yazılan bold italic metin DB Atma?
--
En son aseka tarafından 18 Mar 2008 08:41 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: memo yazılan bold italic metin DB Atma?
kodu denemedim ama ise yarar birseye benziyor...
http://www.swissdelphicenter.ch/torry/s ... hp?id=1271
http://www.swissdelphicenter.ch/torry/s ... hp?id=1271
Re: memo yazılan bold italic metin DB Atma?
Malesef altından kalkamadım. Table da bir blob-memo alan içinde farklı fonlarda metin girmek nekadar zormuş. 
Richedit e load ladığım rtf metnini datada saklamak ve göstermek kolay gibi gelmişti. hergün onlarca dilekçe ile boğuşan bir Avukat olarak kendi dilekçe katoloğumu oluşturmaya çalışıyorum. Sorunum hakkkında önerisi olanların fikirlerini bekliyorum. Yardımlarınız için çok teşekkürler. İyi çalışmalar dilerim.

Richedit e load ladığım rtf metnini datada saklamak ve göstermek kolay gibi gelmişti. hergün onlarca dilekçe ile boğuşan bir Avukat olarak kendi dilekçe katoloğumu oluşturmaya çalışıyorum. Sorunum hakkkında önerisi olanların fikirlerini bekliyorum. Yardımlarınız için çok teşekkürler. İyi çalışmalar dilerim.
Re: memo yazılan bold italic metin DB Atma?
İnternette bu şekilde kodlar buldum, bu kodlar işimi görürmü, denedim fakat beceremedim .
Kod: Tümünü seç
function TForm1.GetRtfData( Rtf: TRzRichEdit ): string;
var
memStream: TMemoryStream;
strList: TStringList;
begin
Result := '';
memStream := TMemoryStream.Create;
strList := TStringList.Create;
try
Rtf.Lines.SaveToStream( memStream );
memStream.Position := 0;
strList.LoadFromStream( memStream );
Result := strList.Text;
finally
memStream.Free;
strList.Free;
end;
end;
procedure TForm1.RzButton1Click(Sender: TObject);
begin
RzMemo1.Lines.Text := GetRtfData( RichEdit1 );
end;
In this example, the rtf encoded string is displayed in the memo field.
In the next build of Raize Components, the TRzRichEdit (and TRzDBRichEdit)
has
a new GetRtfData method. So the button click would look like the following:
RzMemo1.Lines.Text := RichEdit1.GetRtfData;
Çözüm
Arkadaşlar hepinize teşekkür ederim. Sorunumu hallettim. Umarım başkalarınında işine yarar
Çözüm;
Memo1 = rxrichedit (memo kullanmadım onun yerine RxRicedhit Bileşeni kullandım fakat ismi değiştirmek zor geldi o yüzden memo1 olarak adlandırdım
)
Herkeze iyi çalışmalar dilerim.
Çözüm;
Memo1 = rxrichedit (memo kullanmadım onun yerine RxRicedhit Bileşeni kullandım fakat ismi değiştirmek zor geldi o yüzden memo1 olarak adlandırdım

Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, DB, DBTables, Grids, DBGrids, ExtCtrls, ToolWin, ActnCtrls, Menus, FormSize, AdvSmartMessageBox, RxRichEd, sLabel, acDBTextFX, ComObj, XPStyleActnCtrls, ActnList, ActnMan, Shellapi, AdvToolBar, AdvMenus, AdvMenuStylers, AdvToolBarStylers, AdvGlowButton,
AdvOfficeSelectors, AdvOfficeComboBox, sEdit;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
Table1Metin: TMemoField;
Table1Baslik: TStringField;
Edit1: TEdit;
sSkinManager1: TsSkinManager;
sSkinProvider1: TsSkinProvider;
Image1: TImage;
sPanel1: TsPanel;
sPanel2: TsPanel;
Button2: TButton;
Button1: TButton;
AdvSmartMessageBox1: TAdvSmartMessageBox;
Button3: TButton;
Label2: TLabel;
DBGrid1: TDBGrid;
sFrameBar1: TsFrameBar;
Button5: TButton;
sPanel3: TsPanel;
sLabel1: TsLabel;
memo1: TRxRichEdit;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
PopupMenu1: TPopupMenu;
Kopyala1: TMenuItem;
Yaptr1: TMenuItem;
Kes1: TMenuItem;
mnTemizle1: TMenuItem;
FontDialog1: TFontDialog;
Gerial1: TMenuItem;
AdvMainMenu1: TAdvMainMenu;
AdvMenuOfficeStyler1: TAdvMenuOfficeStyler;
AdvToolBar1: TAdvToolBar;
AdvToolBarCustomizer1: TAdvToolBarCustomizer;
DosyadanAktar1: TMenuItem;
Kaydet1: TMenuItem;
DosyadanAktar2: TMenuItem;
Deitir1: TMenuItem;
Sil1: TMenuItem;
YeniKayt1: TMenuItem;
AlanlarTemizle1: TMenuItem;
Yazdr1: TMenuItem;
Gerial2: TMenuItem;
AdvToolBarOfficeStyler1: TAdvToolBarOfficeStyler;
EditreGnder1: TMenuItem;
lemler1: TMenuItem;
k1: TMenuItem;
AdvGlowButton1: TAdvGlowButton;
sEdit1: TsEdit;
sLabelFX1: TsLabelFX;
AdvGlowButton2: TAdvGlowButton;
AdvGlowButton3: TAdvGlowButton;
AdvToolBarSeparator1: TAdvToolBarSeparator;
AdvToolBarSeparator2: TAdvToolBarSeparator;
AdvToolBarSeparator3: TAdvToolBarSeparator;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Kopyala1Click(Sender: TObject);
procedure Yaptr1Click(Sender: TObject);
procedure Kes1Click(Sender: TObject);
procedure mnTemizle1Click(Sender: TObject);
procedure memo1Change(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Gerial1Click(Sender: TObject);
procedure Kaydet1Click(Sender: TObject);
procedure DosyadanAktar2Click(Sender: TObject);
procedure Deitir1Click(Sender: TObject);
procedure Sil1Click(Sender: TObject);
procedure YeniKayt1Click(Sender: TObject);
procedure AlanlarTemizle1Click(Sender: TObject);
procedure Yazdr1Click(Sender: TObject);
procedure Gerial2Click(Sender: TObject);
procedure k1Click(Sender: TObject);
procedure k2Click(Sender: TObject);
procedure EditreGnder1Click(Sender: TObject);
procedure AdvGlowButton1Click(Sender: TObject);
procedure AdvGlowButton3Click(Sender: TObject);
procedure AdvGlowButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
filename: String;
changed: boolean;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
table1.Open;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
table1.Close;
end;
procedure TForm1.Button1Click(Sender: TObject); //Kaydetme
var
Stream1: TStream;
begin
table1.Append;
Stream1:=Table1.CreateBlobStream(Table1.FieldByName('metin'),bmWrite);
memo1.Lines.SaveToStream(Stream1);
table1.FieldByName('baslik').AsString:=edit1.Text;
Table1.Post;
table1.Refresh;
edit1.text:='';
memo1.Text:='';
edit1.SetFocus;
end;
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
edit1.text:=table1.fieldbyname('baslik').AsString;
memo1.text:=table1.fieldbyname('metin').AsString;
memo1.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject); //değiştirme
var
Stream1: TStream;
begin
table1.edit;
Stream1:=Table1.CreateBlobStream(Table1.FieldByName('metin'),bmWrite);
memo1.Lines.SaveToStream(Stream1);
table1.FieldByName('baslik').AsString:=edit1.Text;
Table1.updaterecord;
table1.Refresh;
edit1.SetFocus;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
table1.Edit;
table1.Delete;
edit1.SetFocus;
table1.Refresh;
edit1.Text:='';
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
memo1.text:='';
edit1.text:='';
edit1.SetFocus;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
slabel1.Caption:=table1.fieldbyname('baslik').AsString;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
if opendialog1.execute then memo1.Lines.LoadFromFile(Opendialog1.filename);
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
memo1.print(filename);
end;
procedure TForm1.Kopyala1Click(Sender: TObject);
begin
memo1.CopyToClipboard;
end;
procedure TForm1.Yaptr1Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;
procedure TForm1.Kes1Click(Sender: TObject);
begin
memo1.CutToClipboard;
end;
procedure TForm1.mnTemizle1Click(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.memo1Change(Sender: TObject);
begin
changed:= true;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
memo1.SelectAll;
memo1.Lines.SaveToFile('sb.rtf');
ShellExecute(Handle, 'open', './sb.rtf',nil,nil,SW_SHOWNORMAL) ;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
memo1.Undo;
end;
procedure TForm1.Gerial1Click(Sender: TObject);
begin
memo1.Undo;
end;
procedure TForm1.Kaydet1Click(Sender: TObject);
var
Stream1: TStream;
begin
table1.Append;
Stream1:=Table1.CreateBlobStream(Table1.FieldByName('metin'),bmWrite);
memo1.Lines.SaveToStream(Stream1);
table1.FieldByName('baslik').AsString:=edit1.Text;
Table1.Post;
table1.Refresh;
edit1.text:='';
memo1.Text:='';
edit1.SetFocus;
end;
procedure TForm1.DosyadanAktar2Click(Sender: TObject);
begin
if opendialog1.execute then memo1.Lines.LoadFromFile(Opendialog1.filename);
end;
procedure TForm1.Deitir1Click(Sender: TObject);
var
Stream1: TStream;
begin
table1.edit;
Stream1:=Table1.CreateBlobStream(Table1.FieldByName('metin'),bmWrite);
memo1.Lines.SaveToStream(Stream1);
table1.FieldByName('baslik').AsString:=edit1.Text;
Table1.updaterecord;
table1.Refresh;
edit1.SetFocus;
end;
procedure TForm1.Sil1Click(Sender: TObject);
begin
table1.Edit;
table1.Delete;
edit1.SetFocus;
table1.Refresh;
edit1.Text:='';
end;
procedure TForm1.YeniKayt1Click(Sender: TObject);
begin
memo1.text:='';
edit1.text:='';
edit1.SetFocus;
end;
procedure TForm1.AlanlarTemizle1Click(Sender: TObject);
begin
memo1.text:='';
edit1.text:='';
edit1.SetFocus;
end;
procedure TForm1.Yazdr1Click(Sender: TObject);
begin
memo1.print(filename);
end;
procedure TForm1.Gerial2Click(Sender: TObject);
begin
memo1.Undo;
end;
procedure TForm1.k1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.k2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.EditreGnder1Click(Sender: TObject);
begin
memo1.SelectAll;
memo1.Lines.SaveToFile('sb.rtf');
ShellExecute(Handle, 'open', './sb.rtf',nil,nil,SW_SHOWNORMAL) ;
end;
procedure TForm1.AdvGlowButton1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.AdvGlowButton3Click(Sender: TObject);
begin
memo1.SelectAll;
memo1.Lines.SaveToFile('sb.rtf');
ShellExecute(Handle, 'open', './sb.rtf',nil,nil,SW_SHOWNORMAL) ;
end;
procedure TForm1.AdvGlowButton2Click(Sender: TObject);
begin
memo1.print(filename);
end;
end.