HTML Components V9.1 and Lower
Changes to use Delphi 7 with WinXP Manifest file
The new Theme manager in Delphi 7 causes havoc with the HTML Components when
an attempt to use an XP Manifest file with applications using ThtmlViewer and
compiled with Delphi 7. No problem is encountered with Manifest files used
if the application is compiled with other Delphi versions.
The following changes may be made to accomodate the Delphi 7 Theme Manager.
In htmlview.pas:
In the ThtmlViewer.DrawBorder method, comment out the line shown.
procedure ThtmlViewer.DrawBorder;
begin
if (Focused and (FBorderStyle = htFocused)) or (FBorderStyle = htSingle)
or (csDesigning in ComponentState) then
BorderPanel.BorderStyle := bsSingle
else
BorderPanel.BorderStyle := bsNone;
(*BorderPanel.Invalidate;*) {<-- remove this}
end;
In the TPaintPanel.Paint method, change the line at the start that reads:
if FViewer.DontDraw then Exit;
to:
if FViewer.DontDraw or (Canvas2 <> Nil) then
Exit;
At the end of the TPaintPanel.Paint method, change the line that reads:
Canvas2.Free;
to:
FreeAndNil(Canvas2);
In htmlsubs.pas:
In the TRadioButtonFormControlObj.Create constructor, add the lines shown:
begin
inherited Create(AMasterList, Position, L);
MyCell := ACell;
PntPanel := TPaintPanel(AMasterList.PPanel);
FControl := TPanel.Create(PntPanel);
{$ifDef ver150} {Delphi 7} {<-- add this}
TPanel(FControl).ParentBackground := False; {<-- add this}
{$endif} {<-- add this)
FormAlign := ABaseline;
if L.Find(CheckedSy, T) then IsChecked := True;
In the TSectionList.Clear method, make the changes shown ( effectively moving
three lines of code so as to follow the "inherited Clear" call):
procedure TSectionList.Clear;
begin
if not IsCopy then
begin
IDNameList.Clear;
PositionList.Clear;
end;
BackgroundBitmap := Nil;
BackgroundMask := Nil;
if BitmapLoaded and (BitmapName <> '') then
BitmapList.DecUsage(BitmapName);
BitmapName := '';
BitmapLoaded := False;
(*htmlFormList.Clear; {<-- comment out these lines}
if Assigned(FormControlList) then
FormControlList.Clear; *) {<--}
AGifList.Clear;
Timer.Free;
Timer := Nil;
SelB := 0;
SelE := 0;
MapList.Clear;
MissingImages.Clear;
if Assigned(LinkList) then
LinkList.Clear;
ActiveLink := Nil;
ActiveImage := Nil;
PanelList.Clear;
if not IsCopy then
Styles.Clear;
if Assigned(TabOrderList) then
TabOrderList.Clear;
inherited Clear;
htmlFormList.Clear; {<-- add these lines}
if Assigned(FormControlList) then {<--}
FormControlList.Clear; {<--}
end;