From: Peter T. <pe...@us...> - 2003-08-05 17:08:31
|
Update of /cvsroot/jvcl/dev/JVCL3/run In directory sc8-pr-cvs1:/tmp/cvs-serv18395/JVCL3/run Modified Files: JvStringListToHtml.pas Log Message: - Added new and modified properties / methods Index: JvStringListToHtml.pas =================================================================== RCS file: /cvsroot/jvcl/dev/JVCL3/run/JvStringListToHtml.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvStringListToHtml.pas 17 Jun 2003 11:11:47 -0000 1.1 --- JvStringListToHtml.pas 5 Aug 2003 17:08:24 -0000 1.2 *************** *** 37,80 **** type TJvStringListToHtml = class(TJvComponent) published ! procedure ConvertToHtml(Value: TStringList; Path: string); ! function ConvertToHtmlStringList(Value: TStringList): TStringList; end; implementation ! resourcestring ! RC_Html1 = '<HTML>'; ! RC_Html2 = '<TITLE>TStringList converted with JEDI-VCL Component</TITLE>'; ! RC_Html3 = '<BODY>'; ! RC_Html4 = '<BR>'; ! RC_Html5 = '</BODY>'; ! RC_Html6 = '</HTML>'; ! ! procedure TJvstringListToHtml.ConvertToHtml(Value: TStringList; Path: string); var ! List: TStringList; begin ! // (rom) classic memory leak fixed ! List := ConvertToHtmlStringList(Value); try ! List.SaveToFile(Path); finally ! List.Free; end; end; ! function TJvstringListToHtml.ConvertToHtmlStringList(Value: TStringList): TStringList; var ! I: Integer; begin ! Result := TStringList.Create; ! Result.Add(RC_Html1); ! Result.Add(RC_Html2); ! Result.Add(RC_Html3); ! for I := 0 to Value.Count - 1 do ! Result.Add(RC_Html4 + Value[I]); ! Result.Add(RC_Html5); ! Result.Add(RC_Html6); end; --- 37,142 ---- type TJvStringListToHtml = class(TJvComponent) + private + FStrings, FHTML: TStrings; + FHTMLTitle: string; + FHTMLLineBreak: string; + function GetHTML: TStrings; + procedure SetStrings(const Value: TStrings); + procedure DoStringsChange(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure ConvertToHtml(Source: TStrings; const Filename: string); + procedure ConvertToHTMLStrings(Source,Destination: TStrings); published ! property HTML: TStrings read GetHTML; ! property Strings: TStrings read FStrings write SetStrings; ! property HTMLLineBreak:string read FHTMLLineBreak write FHTMLLineBreak; ! property HTMLTitle:string read FHTMLTitle write FHTMLTitle; ! property IncludeHeader:boolean read FIncludeHeader write FIncludeHeader default true; end; implementation ! procedure ConvertStringsToHTML(Source,Destination:TStrings;const HTMLTitle, HTMLLineBreak:string;IncludeHeader:boolean); var ! I: integer; begin ! if (Result = nil) or (Value = nil) then Exit; ! Result.BeginUpdate; ! Value.BeginUpdate; try ! if IncludeHeader then ! begin ! Result.Add('<HTML><HEAD>'); ! Result.Add('<TITLE>' + HTMLTitle + '</TITLE></HEAD>'); ! Result.Add('<BODY>'); ! end; ! for I := 0 to Value.Count - 1 do ! Result.Add(Value[I] + HTMLLineBreak); ! if IncludeHeader then ! begin ! Result.Add('</BODY>'); ! Result.Add('</HTML>'); ! end; finally ! Value.EndUpdate; ! Result.EndUpdate; end; end; ! procedure TJvStringListToHtml.ConvertToHtml(Source: TStrings; const Filename: string); var ! Dest: TStringlist; begin ! if Source = nil then Exit; ! Dest := TStringlist.Create; ! try ! ConvertStringsToHTML(Source, Dest, HTMLTitile, HTMLLineBreak, true); ! Dest.SaveToFile(Filename); ! finally ! Dest.Free; ! end; ! end; ! ! procedure TJvStringListToHtml.ConvertToHTMLStrings(Source,Destination: TStrings); ! begin ! ConvertStringsToHTML(Source,Destination,HTMLTitle, HTMLLineBreak, IncludeHeader); ! end; ! ! constructor TJvStringListToHtml.Create(AOwner: TComponent); ! begin ! inherited; ! FStrings := TStringlist.Create; ! TStringlist(FStrings).OnChange := DoStringsChange; ! FHTMLLineBreak := '<BR>'; ! FHTMLTitle := 'Converted by TJvStringListToHtml'; ! end; ! ! destructor TJvStringListToHtml.Destroy; ! begin ! FreeAndNil(FStrings); ! FreeAndNil(FHTML); ! inherited; ! end; ! ! procedure TJvStringListToHtml.DoStringsChange(Sender: TObject); ! begin ! FreeAndNil(FHTML); ! end; ! ! function TJvStringListToHtml.GetHTML: TStrings; ! begin ! if FHTML = nil then ! begin ! FHTML := TStringlist.Create; ! ConvertToHtmlStrings(Strings,FHTML); ! end; ! Result := FHTML; ! end; ! ! procedure TJvStringListToHtml.SetStrings(const Value: TStrings); ! begin ! FStrings.Assign(Value); end; |