怎么样从其它网站上的网页表格上取得数据,并存入stringgrid或写入edit..combobox..等控件,最好要有实例 (50分)

  • 主题发起人 主题发起人 darkduck
  • 开始时间 开始时间
D

darkduck

Unregistered / Unconfirmed
GUEST, unregistred user!
如题。。。要考虑frame
 
好象不可能的。.htm文件相当于图片,你如何从“图片”里面取数据呢?
 
其实,HTML 文件同样相当于 Form ,每一元素和 Delphi 中的对象一样都有相应的属性和方法。
 
想让大家为你写出源代码? 你这个程序员够好当的!
 
可以用StringGrid,在cell里面用ComboBox、edit来编辑数据,
在Form中放一个StringGrid,一个ComboBox和一个edit,
程序大抵如下,还需你进一步完善,

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Edit1: TEdit;
ComboBox1:TComboBox;
procedure FormCreate(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject
ACol, ARow: Integer;
Rect: TRect
State: TGridDrawState);
procedure Edit1Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
x,y:integer;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Visible:=False;
ComboBox1.Visible:=False;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject
ACol, ARow: Integer;
Rect: TRect
State: TGridDrawState);
begin
x:=aCol;
y:=aRow;
if (gdFocused in State) then
begin
if aCol = 1 then
begin
Edit1.Text := StringGrid1.Cells[x,y];
Edit1.Left := Rect.Left + StringGrid1.Left + 2;
Edit1.Top := Rect.Top + StringGrid1.top + 2;
Edit1.Width := Rect.Right - Rect.Left;
Edit1.Height := Rect.Bottom - Rect.Top;
Edit1.Visible := True;
end;

if aCol = 0 then
begin
ComboBox1.Text := StringGrid1.Cells[x,y];
ComboBox1.Left := Rect.Left + StringGrid1.Left + 2;
ComboBox1.Top := Rect.Top + StringGrid1.top + 2;
ComboBox1.Width := Rect.Right - Rect.Left;
ComboBox1.Height := Rect.Bottom - Rect.Top;
ComboBox1.Visible := True;
end;
end else
begin
Edit1.Visible:=False;
ComboBox1.Visible:=False;
end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
//判断数据有效性
StringGrid1.Cells[x,y]:=Edit1.Text;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
StringGrid1.Cells[x,y]:=ComboBox1.Text;
end;

end.

 
其实这个问题,在DFW上早就解决了,两种方法:
1、当成文本来读,比较业余,不过很有效。
var f:textfile;
assignfile(f,'c:/1.html');
reset(f);
....然后对文件当成文本READLN一行行读,然后字符判断,处理等等。
2、用IHTMLDOCUMENT2来做,先到IMPORT TYPE LIBERARY里选择MICRPSOFT HTML OBJECT LIBERARY,
导入相关组件,然后到MSDN里面有一堆关于它的帮助。
3、自己动手,丰衣足食;大家其实上班都很忙。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部