c#改变系统鼠标
---------------------------------------------------------------------------------------------------
using System.Runtime.InteropServices;
[DllImport("User32.DLL")]
public static extern bool SetSystemCursor(IntPtr hcur, uint id);
public const uint OCR_NORMAL = 32512;
public const uint OCR_IBEAM = 32513;
[DllImport("User32.DLL")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam,
IntPtr pvParam, uint fWinIni);
public const uint SPI_SETCURSORS = 87;
public const uint SPIF_SENDWININICHANGE = 2;
private void button1_Click(object sender, EventArgs e)
{
//设置
SetSystemCursor(Cursors.WaitCursor.CopyHandle(), OCR_NORMAL);
SetSystemCursor(Cursors.WaitCursor.CopyHandle(), OCR_IBEAM);
//..可以根据情况加
}
private void button2_Click(object sender, EventArgs e)
{
//恢复
SystemParam ......
熟悉ruby on rails的开发员都知道,在ruby中,有一个很重要的特性,就是能够实现元编程,特别是在用于开发Web应用的rails框架中,用的特别多。在rails中,要创建一个动态方法并与数据库表字段相关联,主要的的步骤大概有这些:
1、首先配置好数据库的连接。
2、创建一个ActiveRecord模型,这个模型与数据库的表名称有一定的关系(具体的可以参考相关rails文档)
3、创建的一个ActiveRecord是继承于Base类的,其中Base类中封装了基本的CRUD操作
3、然后在程序运行时,动态关联到表的字段,或者执行数据可的CRUD操作。
比如有一个作者表author,包含有字段id,first_name,last_name。然后用rails工具生成一个与之关联的Module类Author,它是一个空类:
class Author < ActiveRecord::Base
end
然而,在实际操作中,我们却可以这样操作它:
@author = Author.find(id)
@name = @author.first_name
@author.destory
这些在静态语言C#中是不可能做得到的。在C#的动态方法没有出现之前,通常为了实现实体与数据库的表映射,都是先创建一个固定的实体类,实体类的属性通过Attribute映射到表的字段,一般都是像下面的代码所示:
[Tab ......
C#操作数据库,写来写去就那么几句套话,烦。尽管有SqlHelper之类的辅助类,但还是有一堆参数要自己填,继续烦。最近有朋友问起自动代码生成工具的原理,那今天就说说我的思路吧。我只会MS SQL SERVER,所以就只拿它说事儿了。
其实大的思路很简单,获取数据库中的比较原子的对象,比如字段、参数等,并找出数据库各字段类型与C#中各种类型之间的对应关系即可。但具体到细节,诸如是不是需要引号,是不是需要提供长度,默认值的确定,参数的方向等等还是需要比较费些心思的。
举个简单例子吧,我们要从表中生成一个实体类,每个表字段也是实体对象的字段。很显然,只要知道表结构就可以精确的产生这个类定义。所以现在问题暂时就转换到了“知道表名,如何获取它包含的字段名和类型”。
最简单的方法,sp_columns '表名或视图名' 即可。不难发现,TYPE_NAME和COLUMN_NAME是我们想要的。
当然这样查出来的还都只是sql的类型,需要自己写个函数做下转换,转换成C#的类型。比如,将"varchar"转为"string"。
select * from sys.types order by name可以获取全部SQL的类型。
自动生成参数化的SELECT,INSERT,UPDATE等语句也可以用类似的方法获取字段名,然后参数就 ......
using System.Windows.Forms;
using SAPFunctionsOCX;
using SAPLogonCtrl;
using SAPTableFactoryCtrl;
namespace SAPFunction
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void BtnConn_Click(object sender, EventArgs e)
{
//设置登录连接的类
DataSet dset = new DataSet();
SAPLogonCtrl.SAPLogonControlClass log ......
http://download.csdn.net/source/1935080
这应该算是我的第一个程序吧 呵呵
最麻烦的记得是坐标网的计算函数了
以后写程序要记得多用注释,提高可读性
算函数积分的算法 是用在X=0的时候 Y=0 推导其他的值
对有些函数Y无法积分为0 的话,可以用积分多出来的两个 拖拉条拖拉 ,也许能出来 -_-||
BUG 多是FLOAT的溢出 ,懒得处理了 ......
styleObj用于设置图层的符号。它在classObj中定义,一般于symbolObj一起使用。通过设置styleObj,可以产生千变万化,丰富多彩的地图。
一个简单的styleObj示例:
CLASS
NAME "Primary Roads"
STYLE
SYMBOL "circle"
COLOR 178 114 1
SIZE 15
END #style1
STYLE
SYMBOL "circle"
COLOR 254 161 0
SIZE 7
END #style2
END
从以上示例可以看出,在CLASS对象中包含了两个STYLE对象,每个STYLE对象代表了一个符号,两个STYLE对象叠加可以产生一个复合符号:具有两种颜色的道路线。
效果如下图,STYLE一宽度为15像素,位于底层,STYLE二宽度7像素,位于上层,形成一条复合线:
通过多个style叠加的方式,可以实现多种复杂的符号效果。
在csharp_mapscript中可以方便的修改图层的符号以及动态生成符号,如下有几段示例常用代码:
//创建一个styleObj对象
styleObj pStyle = new styleObj(null);
//在class对象中创建一个styleObj对象
styleObj pStyle = new styleObj(pLayerObj.getClass(0));
//从class对象中获取一个styleObj对象
styleObj pStyle = m_ pLayerObj.getClass(0).getStyle(0);
通过以上的代码都可以获得一 ......