易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

Delphi + Asm TBits类的学习

技术交流,DH讲解. 在D2010的classes中有个TBits类,这个类主要是位操作的. TBits = class
private
FSize: Integer;
FBits: Pointer;
procedure Error;
procedure SetSize(Value: Integer);
procedure SetBit(Index: Integer; Value: Boolean);
function GetBit(Index: Integer): Boolean;
public
destructor Destroy; override;
function OpenBit: Integer;
property Bits[Index: Integer]: Boolean read GetBit write SetBit; default;
property Size: Integer read FSize write SetSize;
end;
这个类没有什么方法,我们看到了property Bits[Index: Integer]: Boolean read GetBit write SetBit; default;这个属性,就是读取和设置某一位的.

那我们看看它是怎么实现的?
//在类中Eax就是Self指针
procedure TBits.SetBit(Index: Integer; Value: Boolean); assembler;
asm
CMP Index,[EAX].FSize //如果Indx>=Size then 扩容
JAE @@Size
@@1: MOV EAX,[EAX].FBits
OR Value,Value
JZ @@2
BTS [EAX],Index //将Eax中第I ......

【Delphi報表開發】FastReport

今天开始研究FastReport。
以下是动态创建FASTREPORT的DEMO
var
Page: TfrxReportPage;
Band: TfrxBand;
DataBand: TfrxMasterData;
Memo: TfrxMemoView;
begin
{ clear a report }
frxReport1.Clear;
{ add a dataset to the list of ones accessible for a report }
frxReport1.DataSets.Add(frxDBDataSet1);
{ add a page }
Page := TfrxReportPage.Create(frxReport1);
{ create a unique name }
Page.CreateUniqueName;
{ set sizes of fields, paper and orientation by default }
Page.SetDefaults;
{ modify paper's orientation }
Page.Orientation := poLandscape;
{ add a report title band}
Band := TfrxReportTitle.Create(Page);
Band.CreateUniqueName;
{ it is sufficient to set the «Top» coordinate and height for a band }
{ both coordinates are in pixels }
Band.Top := 0;
Band.Height := 20;
{ add an object to the report title band }
Memo := TfrxMemoView.Create(Band);
Memo.CreateUniqueName;
Memo.Text := 'Hello FastReport!';
Memo.Height := 20; ......

Javascript事件监听【整理】

FireFox : addEventListener()方法 IE : attachEvent()方法 为HTML元素添加一个事件监听, 而不是直接对元素的事件属性(如:onclick、onmouseover)赋值。 这两种方法处理事件还是有很大区别的!事件属性只能赋值一种方法,即: button1.onclick = function() { alert(1); };
button1.onclick = function() { alert(2); };
这样后面的赋值语句就将前面的onclick属性覆盖了。


    Javascript事件监听示例


测试

///
/// 添加事件监听
///
/// 载体
/// 事件类型
/// 事件函数
function addEventHandler(target, type, func) {
    if (target.addEventListener)
        target.addEventListener(type, func, false);
    else if (target.attachEvent)
        target.attachEvent("on" + type, func);
    else target["on" + type] = func;
} ///
/// 移除事件监听
/ ......

javascript如何设置获取GridView模板列的值


如果使用html控件还好一些,服务器控件就比较郁闷一些,因为GridView生成之后是多行的,所以这个文本框也会有很多个,另一方面asp.net会自动重新命名控件,所以想通过ID获取已经不可能了,很不幸的是连name属性都被自动生成了,哪怕你添加了name属性,也无法覆盖生成的name,而是会出来两个name属性
那么就想别的办法,如果在GridView中只有一个模板列(其实是要求生成后一行只有一个input,那么可以使用下面这种办法:
var txtbx = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
for(var i=0;i<txtbx.length;i++){
// txtbx[i]可以循环取出一个个文本框
}
如果有很多个,那么可以使用下面的办法:
var txtbx = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
for(var i=0;i<txtbx.length;i++){
if(txtbx[i].id.indexOf("txtbx")!=-1){
// 这里的txtbx[i]就是你想要的,生成的ID里会包含你原来的ID
}
} ......

用C#发送邮件的几种方法

1 JavaScript发送邮件   
<script language="javascript">
        function SendMail() {
            document.location = "mailto:seat@wicresoft.com;?subject=Feedback";
            alert("ddd");
    }
    </script>
2 用Office发送邮件。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Net.Mail;
using Microsoft.Office.Interop.Outlook;
using Microsoft.Office;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click1(object sender, EventArgs e)
    {
     & ......

Javascript 技巧集合(很好)

   
事件源对象
event.srcElement.tagName
event.srcElement.type
捕获释放
event.srcElement.setCapture(); 
event.srcElement.releaseCapture(); 
事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey
事件返回值
event.returnValue
鼠标位置
event.x
event.y
窗体活动元素
document.activeElement
绑定事件
document.captureEvents(Event.KEYDOWN);
访问窗体元素
document.all("txt").focus();
document.all("txt").select();
窗体命令
document.execCommand
窗体COOKIE
document.cookie
菜单事件
document.oncontextmenu
创建元素
document.createElement("SPAN"); 
根据鼠标获得元素:
document.elementfromPoint(event.x,event.y).tagName=="TD
document.elementfromPoint(event.x,event.y).appendChild(ms) 
窗体图片
document.images[索引]
窗体事件绑定
document.onmousedown=scrollwindow;
元素
document.窗体.elements[索引]
对象绑定事件
document.all.xxx.detachEvent('onclick',a);
插件数目
navigator.plugins ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [3535] [3536] [3537] [3538] 3539 [3540] [3541] [3542] [3543] [3544]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号