『绝对原创 飞飞』
unit mmslibrarypage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, VirtualTrees, ComCtrls, ToolWin, mpToolBar,basicModal,DataModal,
database,myScroll,insertdemon,mysql,newmmsForlibrary;
type
TMMSLibraryForm = class(TPageForm)
mainToolBar: TmpToolBar;
btnNewMMS: TToolButton;
btnDelete: TToolButton;
DataTree: TVirtualStringTree;
ilImages: TImageList;
btnImport: TToolButton;
btn2: TToolButton;
btn3: TToolButton;
btn4: TToolButton;
btn5: TToolButton;
btnExport: TToolButton;
btnRefresh: TToolButton;
procedure FormCreate(Sender: TObject);
procedure btnNewMMSClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure btnImportClick(Sender: TObject);
procedure btnExportClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnRefreshClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure DataTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
procedure DataTreeInitNode(Sender: TBaseVirtualTree; ParentNode,
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
private
{ Private declarations }
stringlist:TStringList;
public
procedure refreshtree();
end;
procedure GetMMSFromLibrary(dparam: TStringList; mysql_rows: PMYSQL_ROW);
type
PMMSTreeNode=^TMMStreeNode;
//自定义的datatree的结构
TMMStreeNode=record
mmsid:string;
mmstype:string;
mmssmil:string;
mmssize:Integer;
mmssubject:string;
end;
var
MMSLibraryForm: TMMSLibraryForm;
implementation
{$R *.dfm}
procedure TMMSLibraryForm.FormCreate(Sender: TObject);
begin
Self.Font:=Application.MainForm.Font; //保持程序中字体一致
stringlist:=TStringList.Create; //保存要显示的数据
DataTree.NodeDataSize:=SizeOf(TMMStreeNode); //初始化datatree的节点大小
end;
procedure TMMSLibraryForm.FormShow(Sender: TObject);
var
pdbinfo: PDatabaseInfo;
column : TVirtualTreeColumn;
Header : TStrings;
i : Integer;
node : PVirtualNode;
data : PINT;
sql : string;
pnode1 : PMMSTreeNode;
begin
Header:=TStringList.Create;
//添加显示的列名
if trim(Header.Text)='''''''' then
begin
Header.Add(''''ID'''');
Header.Add(''''Type'''');
Header.Add(''''Smil 1.0/2.0'''');
Header.Add(''''Size(B)'''');
Header.Add(''''Subject'''');
end;
//设置列的显示
for i:=0 to Header.Count-1 do
begin
column:= DataTree.Header.Columns.Add;
column.Text:= Header[I];
column.Width:=dataTree.ClientWidth div 6;
if i=4 then
column.Width:= dataTree.ClientWidth div 3-10;
end;
// 连接数据库,获取指定的数据库(是不是忒简单
)
pdbinfo:=currentdatabase.databases.GetByIndex(0);
Refreshtree;
end;
procedure TMMSLibraryForm.refreshtree();
var
sql : string;
begin
DataTree.Clear;
stringlist.Clear;
sql:=''''select MMS_ID,MMS_Type,MMS_Smil,MMS_Size,MMS_Subject from mmslibrary'''';
//回调函数:让被调用者调用调用者自身的函数。执行ExeuteSQlQurey时调用了GetMMSFromLibrary
(***********************************************************************************************************
procedure TDatabase.ExeuteSQlQurey(dparam: Pointer; sql: string; callback: TDbDataCallBack);
var
aHandle, db: pmysql;
qresult: PMYSQL_RES;
mysql_rows: PMYSQL_ROW;
iRtn, fcount, i: Integer;
begin
try
aHandle := mysql_init(nil);
//mysql_real_connect(aHandle, nil, nil, nil, nil, 0, nil, 0);
if commonconfig.remotemode = 0 then
db := mysql_real_connect(aHandle, nil, nil, nil, PAnsichar(FCurrentDataBase), 0, nil, 0)
else
db := mysql_real_connect(aHandle, PAnsichar(RHost), PAnsichar(RUser), PAnsichar(RPassword), PAnsichar(FCurrentDataBase), 0, nil, 0);
if db <> nil then
begin
iRtn := mysql.mysql_query(db, Pchar(sql));
if iRtn = 0 then
begin
qresult := mysql.mysql_store_result(db);
if qresult <> nil then
begin
fcount := mysql.mysql_num_rows(qresult);
for i := 0 to fcount - 1 do
begin
mysql_rows := mysql.mysql_fetch_row(qresult);
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




