Volgens mij heeft ie ook een Text property. Je moet eerst even Prepare aanroepen en vervolgens kun je de tekst uitlezen. Ik zou het wel netjes vinden als de Text property een Get method zou hebben die even Prepare uitvoert.
Een andere vrij simpele aanpassing zou zijn om Save op te splitsen in een SaveToStream en een SaveToFile. SaveToFile kan dan weer gebruik maken van SaveToStream.
Beide lossen natuurlijk niet het probleem van de lossen onderdelen op, maarja.
Zo had ik dat ongeveer in gedachten.
Code:
procedure TNLDHtmlPage.SaveToStream(Stream: TStream);
begin
ifnot FPrepared then
Prepare;
Stream.WriteBuffer(Pointer(FText)^, Length(FText));
end;
procedure TNLDHtmlPage.SaveToFile(Filename: string);
var
FileStream: TFileStream;
begin
if Filename = ''then
raise Exception.Create('TmbHTMLPage: Empty filename not allowed');
if ExtractFileExt(FileName) = ''then
FileName := FileName + '.htm';
if FileExists(Filename) then
ifnot DeleteFile(Filename) then
raise Exception.Create('TmbHTMLPage: file access denied');
FileStream := TFileStream.Create(FileName, fmCreate);
try
SaveToStream(FileStream);
finally
FileStream.Free;
end;
end;
Eigenlijk vind ik dat het Checken of de file bestaat geen onderdeel zou moeten zijn van de Save procedure, maarja..
Bookmarks