??xml version="1.0" encoding="utf-8" standalone="yes"?> ---- 2. function Write(const Buffer; Count: Longint): Longint; virtual; abstract;
---- 3. function Seek(Offset: Longint; Origin: Word): Longint; virtual; abstract;
---- 4. property Position: Longint;
---- 5. property Size: Longint
---- ReadQW(xu)riteQSeek都是U虚函数Q提供了(jin)数据d和定位的抽象的方法。ReadҎ(gu)数据从Stream中读到Buffer~冲ZQW(xu)rite则实现相反的操作Q返回DC实际读写数据的大小。Seek提供?jin)在Stream中移动数据指针的Ҏ(gu)。参数Origin可以取soFromBeginningQsoFromCurrentQsoFromEnd 三个|Offset是偏U量Q返回值是当前Stream数据指针的位|?
---- Position表示?jin)数据指针在Stream中的位置。这个属性是可读写的Q它实际上就是通过调用SeekҎ(gu)实现的,所以实际用时使用q个属性更为方便一些。Size属性表C当前Stream的大,对于不同的StreamQ有些时候是只读的?
---- 2. LoadFromStream(Stream: TStream); //从当前位|读入Stream里的数据
---- 实际使用时我们基本上只要使用上面两个函数可以了(jin)?
---- 创徏一个窗体Form1Q放|三个按钮btnReadQbtnInvertQbtnSave和一个文件打开对话框OpenDialog1以及(qing)数据控gDataSource1QTable1Qtest.
---- 使用Dephi提供的Database Desktop创徏一个表testQ表里有一个字D域ImageQ数据库文g名存?sh)test.db。在H体上放|一个TDatabase控gdbTestQ一个TTable控gTable1,一个DataSource控gDataSource1,一个TDBNavigator控gDBNavigator1。将dbTest与刚才Desktop创徏的数据库相连QTable1的TableName属性设为test.dbQDataSource1的DataSet属性设为Table1QDBNavigator1的DataSource属性设为DataSource1QVisibleButtons属性前四个设ؓ(f)TRUE。此外,dbtest的Connected设ؓ(f)TRUEQTable1的Active属性设为TRUEQ得数据库一开始就处于打开状态?
---- 事g代码~写如下Q?
---- 1. btnRead的Click事gQ这里演CZ(jin)TFileStream的用法?
(tng) (tng) (tng) 1Q安装WildFire。下载wildfire_3_1_1的压~包Q解压后q行bin/wildfire.exeQ在wildfire启动成功后,点击Lanche admin按钮或者直接在览器中http://yourhost:9090Q进入安装配|界面,有中文界面,Ҏ(gu)自己情况配置Q这里就不说?jin)?br />
(tng) (tng) (tng) 2Q安装jwchatQ下载j(lu)wchat.warQ里面自带有jhbQ不q好像没有web.xml和DNSUtil.class两个文gQ可以单独下载JHB后,覆盖调jwchat.war下相应的文gQ关键是不要忘(sh)(jin)web.xml的几行配|?br /><servlet>
(tng) (tng)<servlet-name>Jabber (tng)HTTP (tng)Binding (tng)Servlet</servlet-name>
(tng) (tng)<servlet-class>org.jabber.JabberHTTPBind.JHBServlet</servlet-class>
</servlet>
<servlet-mapping>
(tng) (tng)<servlet-name>Jabber (tng)HTTP (tng)Binding (tng)Servlet</servlet-name>
(tng) (tng)<url-pattern>/JHB/</url-pattern>
</servlet-mapping>
(tng) (tng) (tng) 3Q配|jwchatQ打开config.jsQ进行一些修改,写的比较单了(jin)?br />var (tng)SITENAME (tng)= (tng)"wildfire"; (tng)// (tng)wildfire配置时写的域?/span>
httpbase:"/jwchat/JHB/", (tng) (tng)// (tng)JHB在jwchat目录?/span>
default_server: (tng)"wildfire" (tng)
var (tng)DEFAULTRESOURCE (tng)= (tng)"wildfire";
var (tng)DEFAULTCONFERENCEROOM (tng)= (tng)"wildfire";
var (tng)DEFAULTCONFERENCESERVER (tng)= (tng)"conference.wildfire";
]]>
]]>/**//*
(tng)* (tng)讑֮img的宽Q高
(tng)* (tng)img (tng)动态图片对?br />
(tng)* (tng)width (tng)单元格宽
(tng)* (tng)height (tng)单元格高
(tng)*/
fitImageSize (tng)= (tng)function(img, (tng)width, (tng)height) (tng)
{
(tng) (tng) (tng) (tng)var (tng)rate (tng)= (tng)img.width (tng)/ (tng)img.height;
(tng) (tng) (tng) (tng)var (tng)wh (tng)= (tng)width (tng)/ (tng)height;
(tng) (tng) (tng) (tng)if (tng)(rate (tng)> (tng)wh) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)if (tng)(img.width (tng)> (tng)width) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)img.height (tng)= (tng)img.height (tng)* (tng)(width (tng)/ (tng)img.width);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)img.width (tng)= (tng)width;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)}
(tng) (tng) (tng) (tng)}
(tng) (tng) (tng) (tng)else (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)if (tng)(img.height (tng)> (tng)height) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)img.width (tng)= (tng)img.width (tng)* (tng)(height (tng)/ (tng)img.height);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)img.height (tng)= (tng)height;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)}
(tng) (tng) (tng) (tng)}
}
(tng) (tng) (tng) (tng) (tng) (tng)当图片动态加载显C的时候,有一个奇怪的问题Q就是,W一ơ预览时Q图片实际大ƈ没有改变Q也是_(d)q个函数好像无效?jin)。预览事件代码片断如下:(x)for(
) (tng)
{
(tng) (tng) (tng) (tng)if(
.) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)// (tng)是否可以预览
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)img.src (tng)= (tng)"url
..";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) // alert(img.src); (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)fitImageSize(img, (tng)view.width, (tng)view.height);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)img.align (tng)= (tng)"center";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)document.getElementById(id).appendChild(img);
(tng) (tng) (tng) (tng)}
}
(tng) (tng) (tng) (tng) (tng) (tng)而当alert的注释去掉以后,囄被正常的处理。这应该是alert的时候,jsE序被挂P而图片l在加蝲Q当alert点击以后Q图片加载已l成功,所以,囄被正处理。如果你alert的是img.widthQ你?x)看见信息?。因此,我对E序再做一Ҏ(gu)动,用setInterval函数q行囄的完全加载处理?br />for(
) (tng)
{
(tng) (tng) (tng) (tng)if(
) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)// (tng)是否可以预览
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)img.src (tng)= (tng)"url
.";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)// (tng)alert(img.src);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)//fitImageSize(img, (tng)view.width, (tng)view.height);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)//img.align (tng)= (tng)"center";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)//document.getElementById(id).appendChild(img);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)preview_interval (tng)= (tng)window.setInterval(function() (tng)
{ (tng)loadingImage(img); (tng)}, (tng)100);
(tng) (tng) (tng) (tng)}
}
{...coding....}
var (tng)preview_interval;
/**//*
(tng)* (tng)img (tng)加蝲的图片对?br />
(tng)*/
loadingImage (tng)= (tng)function(img) (tng)
{
(tng) (tng) (tng) (tng)if(img.complete)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) clearInterval(preview_interval);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) fitImageSize(img, (tng)view.width, (tng)view.height);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) img.align (tng)= (tng)"center";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)document.getElementById(id).appendChild(img);
(tng) (tng) (tng) (tng)}
}
(tng) (tng) (tng) (tng) (tng) (tng)q样一来,E序可以预览图片,q且也不再会(x)出现W一ơ预览时撑大单元格的现象?jin)?br />
(tng) (tng) (tng) (tng) (tng) 上面是预览一张图片的情况Q我q遇到js动态一ơ性加载多张图片的情况Q解军_法与此相伹{下面的代码是我处理多张图(2张ؓ(f)例)(j)的,实际上可以和上面的写在一P呵呵Q懒的,不去动它?jin)?br />/**//*
(tng)* (tng)加蝲相关囄
(tng)*/
myClass.prototype.loadAssociateImage (tng)= (tng)function() (tng)
{
(tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng)// (tng)判断囄是否已经被加载过Q避免重复加载时不必要的消耗。这里以image数组的长?/span>
(tng) (tng) (tng) (tng)// (tng)作ؓ(f)是否已经加蝲的判断?/span>
(tng) (tng) (tng) (tng)if(this.astImage.length (tng)!= (tng)0) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) // (tng)alert('Not (tng)reload');
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) return;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) }
(tng) (tng) (tng) (tng)for (tng)(var (tng)i (tng)= (tng)0; (tng)i (tng)< (tng)2; (tng)i++) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) this.astImage[i] (tng)= (tng)new (tng)I(yng)mage();
(tng) (tng) (tng) (tng) (tng) (tng) (tng) }
(tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng) this.astImage[0].src (tng)= (tng)this.pic.pic0;
(tng) (tng) (tng) (tng) (tng) (tng) this.astImage[1].src (tng)= (tng)this.pic.pic1;
}
var (tng)my_interval;
/**//*
(tng)* (tng)昄
(tng)*/
myClass.prototype.create (tng)= (tng)function() (tng)
{
(tng) (tng)this.loadAssociateImage();
(tng) (tng)my_interval (tng)= (tng)window.setInterval(function (tng)() (tng)
{
(tng) (tng) (tng) (tng)// (tng)变量g是myClass的全局变量Q可以当作this?/span>
(tng) (tng) (tng) (tng)var (tng)length (tng)= (tng)g.astImage.length;
(tng) (tng) (tng) (tng)for (tng)(var (tng)i (tng)= (tng)0; (tng)i (tng)< (tng)length; (tng)i++) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)if (tng)(!g.astImage[i].complete) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)break;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)}
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)else (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)if (tng)(i (tng)!= (tng)length (tng)-1) (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)continue;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)}
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)else (tng)
{
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)clearInterval(my_interval);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)// (tng)my (tng)process (tng)now
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)}
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)}
(tng) (tng) (tng) (tng)}
(tng) (tng)
(tng) (tng)}, (tng)10);
(tng) (tng) (tng) (tng)
}
(tng) (tng) (tng) (tng) (tng) (tng)补充一下对setInterval和setTimeout的说明:(x)setInterval是让js每隔一D|间就q行某一函数一ơ,从js代码执行setInterval开始,q样直到注销QclearIntervalQ其为止QsetTimeout是在jsE序块执行终止以后,再隔一D|间调用某一函数Q该函数只调用一ơ?img src ="http://www.aygfsteel.com/howard/aggbug/42888.html" width = "1" height = "1" />
]]>
在Dephi中提供了(jin)一个抽象的数据cdTStream来支持对式数据的操作。这些数据通常来自文g、数据库、内存对象、OLE对象{,TStream提供?jin)统一、简z的Ҏ(gu)来进行数据的d。在通常情况下,我们q不需要直接用TStreamc,Ҏ(gu)式数据的d装在VCL控g的方法中。但是如果这些方法无法满x(chng)们的要求Q就需要自己手动控制数据的d?
一?TStream的常用的Ҏ(gu)和属性:(x)
---- 1. function Read(var Buffer; Count: Longint): Longint; virtual; abstract
二?Stream数据的读写?/FONT>
---- 1. SaveToStream(Stream: TStream ); //类中的数据写到Stream的当前位|中
三?例子
---- TStream的承树(wi)囑֦?所C??Q实际用时比较常用的是TFileStreamQTMemoryStreamQTblobStreamQ就以这三种D一例说明具体用法?
var
MS: TFileStream;
begin
if OpenDialog1.Execute then
begin
MS:=TFileStream.Create
(OpenDialog1.FileName, fmOpenRead);
Image1.Picture.Bitmap.LoadFromStream(MS);
MS.Free;
end;
end;
---- 2. btnInvert的Click事gQ这里演CZ(jin)TMemoryStream的用法。其中用了(jin)Invert函数Q这是一个简单的图象反色的函数Q仅对真彩图象有效)(j)Q它q回一个指向处理过的图象数据块的指针?var
M
S: TMemoryStream;
pImage: pointer;
begin
MS:=TMemoryStream.create;
Image1.Picture.Bitmap.SaveToStream(MS);
MS.Position:=0;
pImage:=Invert(MS.Memory, MS.size);
//Memory属性是指向实际内存块的指针
MS.Write(pImage^,MS.size);
MS.Position:=0;
//上一行代码指针Ud?jin)Stream末尾Q所以要复位
Image1.Picture.Bitmap.LoadFromStream(MS);
FreeMem(pImage);
MS.Free;
end;
Invert函数如下Q?
function TForm1.Invert
(pImage: pointer; size: Integer): pointer;
var
pData, pMem: PChar;
i: Integer;
begin
pMem:=AllocMem(size);
CopyMemory(pMem,pImage,size);
pData:=pMem+54;
for i:=0 to size-54-1 do
begin
pData^:=Char(not integer(pData^));
pData:=pData+1;
end;
Result:=pMem;
end;
---- 1. btnSave的Click事gQ这里演CZ(jin)TMemoryStream的另一U用法,Stream中的数据写到数据库中厅R?var
MS: TMemoryStream;
begin
MS:=TMemoryStream.create;
Image1.Picture.Bitmap.SaveToStream(MS);
MS.Position:=0;
Table1.Append;
//在数据库中添加一条记?
TBlobField(Table1.FieldbyName
('image')).LoadFromStream(MS);
Table1.Post;
//所作的更新写入数据?
end;
---- 4. DBNavigator1的Click事gQ这里演CZ(jin)TBlobStream的用法,使用?jin)和写入时不同的?gu)来读出数据库的图象数据?var
MS: TStream;
begin
with Table1 do
MS:=CreateBlobStream
(FieldbyName('image'),bmRead);
Image1.Picture.Bitmap.
LoadFromStream(MS);
MS.Free;
end;
---- 现在你已l能够在文gQ数据库Q内存(sh)Ld数据?hu)?jin)。试试看吧!
]]>
where AUTHORITY.WORKERNO(+) = '员工?
and MODULE.SUBSYSID = AUTHORITY.SUBSYSID(+)
and MODULE.MODULEID = AUTHORITY.MODULEID(+)
and AUTHORITY.WORKERNO is null
如果权限中所有父权限Q上层权限)(j)在A中d昄Q不考虑B(ti)中是否包含)(j)Q可以再加一?BR>and AUTHORITY.MODULEID(+) != '父权限标识(具体的|再MODULE中区分权限父子关p)(j)'
]]>
2Q字W串的相加操作中,用符?||"
不如字DA(ch)的第一位添加一个数?Q可以这样写Q?BR>update my_table set my_table.A = '3' || my_table.A where ......
3Q很多常用的内置函数
substr()Qsubstr('abcd',0,2)的值是'ab'
trim()Q将字段内容前后的空格去?BR>length()Q查看字W串长度
to_date('2005-7-5','yyyy-mm-dd')Q根据格式,字W串型的日期转换为datecd
4QDrop表格
在Schema Browser的Tables标签中,选择所要删除的表格,右键drop。有些情况下Q可能表D删除C(jin)回收?Recycle Bin)中,可以在Recycle Bin标签中选择表格q将他们ddrop?BR> 如何昄Recycle Bin标签Q右键点MQ意标{,比如Tables标签QConfigureQ显C出所有标{,在Recycle Bin的Visible栏中选择yes卟?img src ="http://www.aygfsteel.com/howard/aggbug/6993.html" width = "1" height = "1" />
]]>
文章来源:http://blog.csdn.net/wxzh/archive/2005/04/08/340319.aspx
]]>
]]>
Dlog: http://webdream.duoluo.com/ 国h开发的一个功能比较强大的BlogQ还有一个Dlog的修改版 http://mytz.net/blog很漂亮,增加?jin)很多实用的功能?/P>
Misslog: http://www.misslog.com/blog 多用户blog,每个blog可以有多个用户参与创作与l护Q?/P>
Loveyuki's BLOG V1.01
Loveyuki's BLOG 是由 Loveyuki 自主开发的Z ASP+Access 的小型单用户BLOG
官方说明Q?http://www.loveyuki.com/blogview.asp?logID=68
E序下蝲Q?点击下蝲Loveyuki's BLOG
q有个它的美化版 演示:http://www.zongyz.com/blog/
下蝲 http://php.zongyz.com/loveyukiblog.rar
oblog 0.9
是多用户版本的Blog,实现?jin)Blog的大部分功能Q其中界面部分参考了(jin)iBlog和博客堂Q编辑器部分使用?jin)eWebEditor beta2.0免费版本?BR>演示Q?A target=_blank>http://www.oioj.net
下蝲Q?A target=_blank>http://www.qingdong.com/down/oblog.rar
Bo-Blog Q文本储存数?模板技术做的不错,可以用标{,支持RSS1.0Q?BR>http://boblog.cc.to/
Ublog: http://www.uapplication.com/demo/UblogAccess
汉化版下?http://www.9sk.net/blog/Ublog.rar
ASP.NET
iblog: http://justdn.org/product/iBlog/demo/ 冰冰工作室的作品Q?/P>
DotText: http://scottwater.com/Dottext/default.aspx
BlogX: http://www.simplegeek.com/CategoryView.aspx/BlogX
PHP
b2Q?http://www.cafelog.com 最出名的php blog,操作单,Ҏ(gu)上手
b2evolution: http://www.b2evolution.netB2多用L(fng)
wordpressQ?A target=_blank>http://www.wordpress.org 在B2的基上开发的Q添加了(jin)很多功能?BR>
pivotQ?http://www.pivotlog.net PHP+XMLQ没有用数据库Q有中文语言包,但目前不支持双字节评?/P>
nucleusQ?A target=_blank>http://www.nucleuscms.org q个也是多用P有中文语a包!
exBlogMix: http://exblog.126.com/ 国h开发的新程序,现在已经很完了(jin)?/P>
M-loggerQ?BR>http://milkliker.51j.cn/
国h开发的Q目前还比较单,多用P文本储存数据?/P>
drupalQ?http://www.drupal.org 著名的开源程序,功能非常强大Q多用户Q有多种插g和皮肤下载!
pmachine: http://www.pmachine.com q个是最标准的blogQ有中文语言包。多用户的是商业版,
serendipityQ?http://www.s9y.org 新出来的blogQ采取映,看上d像是生成html的,多用P支持多种数据库,自带?jin)WSYISWG~辑器!对目前对中文支持的不好!
bMachineQ?A target=_blank>http://boastology.com 同时支持文本数据库和MySQL数据库,支持中文搜烦(ch)?/P>
Plog v0.3QPHP+MysqlQ?BR>官方|站 http://www.plogworld.org/
q个是我见过最强大的PHP BlogE序Q详l介l在
q里?/P>
PlainslashQ文本blogE序Q带像册Q支持rssQ分d?jin)html模板文gQ方便修改,中文和英文两个语a包!
http://www.51zhao.com/pl/news.php?user=plainslash
myphpblog: http://www.myphpblog.org/
sunlog: http://www.sunlog.org
CGI
MTQ?http://www.movabletype.org 是我现在用的,世界上用h多的blogE序Q自动生成htmlQ后~可以自己讄Q支持文本数据库和mysqlQmssql{!
GreymatterQ是一个类?Movable Type 的BlogE序Q相兛_容可以参?A >q里?BR>
原文地址: http://www.laogui.com/blog/mt-tb.cgi/4