dhtmledit中如何列出文档上的各个元素,另外表格各栏似乎不能用Mouse调整大小.(200分)

O

oldsheep35

Unregistered / Unconfirmed
GUEST, unregistred user!
能不能把问题描述的详细点!
首先,插入DhtmlEdit的表格是否是根据delphibbs上的方法,如果是,我做的就可以拉伸!即改变它的高度和宽度!

要列出文档的各个元素:我认为是不是要记录DhtmlEdit编辑的页面上有几张图片,几个超链接等等的
如果是,可以对Html文件进行分析!

我就是这么做的!
 
O

oldsheep35

Unregistered / Unconfirmed
GUEST, unregistred user!
{插入表格的方法是否与我的类似??}
function TfrmSourceEdit.ToInsertTable(Row, Col, Width, Board, Margin,
Space, Caption, SColor: String
ifWrap, ifClarity: Boolean): Boolean;
var
tmpTablePar : DEInsertTableParam;
TableAttrs : WideString;
CellAttrs : WideString;
begin
Result := False;
Try
tmpTablePar := CreateComObject(Class_DEInsertTableParam) as IDEInsertTableParam;
{Row Col Caption}
if Trim(Row) <>'' then
tmpTablePar.NumRows := StrToInt(Trim(Row))
else
begin
MessageBox(Handle,'<行数>的值不能为空,请重新设置<行数>','系统提示',MB_OK or MB_ICONINFORMATION);
Exit;
end;
if Trim(Col) <>'' then
tmpTablePar.NumCols := StrToInt(Trim(Col))
else
begin
MessageBox(Handle,'<列数>的值不能为空,请重新设置<列数>','系统提示',MB_OK or MB_ICONINFORMATION);
Exit;
end;
if (Trim(Board) = '') or (StrToInt(board) <1)then
begin
MessageBox(Handle,'<边宽>的值不能为空也不能为0,请重新设置<边宽>','系统提示',MB_OK or MB_ICONINFORMATION);
Exit;
end;

tmpTablePar.Caption := Trim(Caption);

if (StrToInt(Col) > 63) Or (StrToInt(Row) > 32767) or (StrToInt(Col)< 1) or (StrToInt(Row)<1)then
begin
MessageBox(Handle,'表格行数的取值范围:(1~32767),表格列数的取值范围:(1~63),请重新设置','操作提示',MB_OK or MB_ICONINFORMATION);
Exit;
end;

TableAttrs := '';
CellAttrs :='';

{TableAttrs}
//if Trim(edtBoard.Text) <> '' then
TableAttrs := TableAttrs + ' border='+Trim(Board);
if Trim(Margin) <> '' then
TableAttrs := TableAttrs + ' cellSpacing='+Trim(Margin);
if Trim(Space) <> '' then
TableAttrs := TableAttrs + ' cellPadding='+Trim(Space);
if Trim(Width) <> '' then
TableAttrs := TableAttrs + ' width='+Trim(Width)+'%'
else
TableAttrs := TableAttrs + ' width=100%';
tmpTablePar.TableAttrs := TableAttrs;

{CellAttrs}
if ifWrap then
CellAttrs := CellAttrs+' nowrap width='+IntToStr(StrToInt(Trim(Width)) div tmpTablePar.NumCols)+'%'
else
CellAttrs := CellAttrs+' wrap width='+IntToStr(StrToInt(Trim(Width)) div tmpTablePar.NumCols)+'%';

if Not ifClarity then
begin
CellAttrs := CellAttrs+ ' bgColor="'+SColor+'"';
end;
tmpTablePar.CellAttrs := CellAttrs;

Result := True;
FTableParam := tmpTablePar;
FInsertTable := True;
Finally
//Close;
end;
end;
{End of Add}

procedure TfrmSourceEdit.btnInsertExcelClick(Sender: TObject);
label ReStart;
var
ovInsertTableParam: OleVariant;
FModalResult : Integer;
begin
with frmExcelProperty do
begin
edtRow.Text := IntToStr(4);
edtCol.Text := IntToStr(5);
edtWidth.Text := IntToStr(100);
edtBoard.Text := IntToStr(1);
edtCaption.Text := '';
edtMargin.Text := IntToStr(1);
edtSpace.Text := IntToStr(1);
FColor := 'White';
cbxClarity.Checked := True;
cbxNoWrap.Checked := True;
cbxColor.ItemIndex := 0;
cbxColor.Enabled := False;
btnMoreColor.Enabled := False;
end;//with

ReStart:
FModalResult :=frmExcelProperty.ShowModal;

if FModalResult = mrCancel then Exit;

if Not ToInsertTable(frmExcelProperty.edtRow.Text, frmExcelProperty.edtCol.Text, frmExcelProperty.edtWidth.Text,
frmExcelProperty.edtBoard.Text,frmExcelProperty.edtMargin.Text,frmExcelProperty.edtSpace.Text,
frmExcelProperty.edtCaption.Text, frmExcelProperty.FColor, frmExcelProperty.cbxNoWrap.Checked,
frmExcelProperty.cbxClarity.Checked) then
Goto ReStart;
if Not FInsertTable then Exit;
ovInsertTableParam := OleVariant(FTableParam);
DHTMLEdit1.ExecCommand(DECMD_INSERTTABLE, OLECMDEXECOPT_DODEFAULT, ovInsertTableParam);
FInsertTable := False;
end;
 
T

tianhf

Unregistered / Unconfirmed
GUEST, unregistred user!
实在对不起,一直没有收到邮件通知,我的意思是 3*3表格,我要用mouse调整第一栏宽度,移动第一二栏之间的表格线,第三栏位置和大小不变(FrontPage可以),我移动一栏,后面的跟着动.
已经很久了,结束问题,谢谢你 oldsheep35.
 
O

oldsheep35

Unregistered / Unconfirmed
GUEST, unregistred user!
这个我有空看看!有结果再告诉你!
 

Similar threads

回复
0
查看
852
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部