哪位老大点评一下俺个人中意的ecere
betty_betty2008
2011-12-13
参考网址:www.ecere.com
贴一段代码: import "ecere" class Friends : struct { public: char * name; char * job; int age; }; Array<Friends> friends { [{"Erika", "waitress", 18}, {"汤姆斯", "程序员", 25}, {"乔治", "警察", 26}, {"Michael", "producer", 38}, {"Jane", "steward", 28} ] }; class Form1 : Window { text = "人员数据"; background = activeBorder; borderStyle = sizable; hasMaximize = true; hasMinimize = true; hasClose = true; size = { 576, 432 }; anchor = { horz = -11, vert = 3 }; nativeDecorations = true; bool bfirst, blast; DataField nameField { dataType = class(String), width = 50,header = "姓名",editable = true }; DataField jobField { dataType = class(String), width = 80 ,header = "工作",editable = true }; DataField ageField { dataType = class(int), header = "年龄",editable = true }; Form1() { DataRow row; Iterator<Friends> i { friends }; int j=0; bfirst=true; blast=true; listBox1.AddField(nameField); listBox1.AddField(jobField); listBox1.AddField(ageField); for(i:friends) { row = listBox1.AddRow(); row.tag = j; row.SetData(nameField, i.name); row.SetData(jobField, i.job); row.SetData(ageField, i.age); j++; } } Label lblInfo { this, text = "信息", inactive = false, font = { "Tahoma", 20 }, size = { 516, 149 }, position = { 40, 176 }, isGroupBox = true }; Button btnFirst { this, text = "(F)第一条", altF, size = { 70, 29 }, position = { 64, 344 }; bool NotifyClicked(Button button, int x, int y, Modifiers mods) { listBox1.SelectRow(listBox1.firstRow); listBox1.Activate(); bfirst=true; blast =false; Update(null); return true; } }; Button btnPrev { this, text = "(P)上一条", altP, size = { 70, 29 }, position = { 144, 344 }; bool NotifyClicked(Button button, int x, int y, Modifiers mods) { if(!listBox1.currentRow || listBox1.currentRow.previous) listBox1.SelectRow(listBox1.currentRow ? listBox1.currentRow.previous : listBox1.lastRow); listBox1.Activate(); blast=false; if(!listBox1.currentRow.previous) bfirst = true; Update(null); return true; } }; Button btnNext { this, text = "(N)下一条", altN, size = { 71, 29 }, position = { 224, 344 }; bool NotifyClicked(Button button, int x, int y, Modifiers mods) { if(!listBox1.currentRow || listBox1.currentRow.next) listBox1.SelectRow(listBox1.currentRow ? listBox1.currentRow.next : listBox1.firstRow); listBox1.Activate(); bfirst=false; if(! listBox1.currentRow.next) blast=true; Update(null); return true; } }; Button btnLast { this, text = "(L)末一条", altL, size = { 69, 29 }, position = { 304, 344 }; bool NotifyClicked(Button button, int x, int y, Modifiers mods) { listBox1.SelectRow(listBox1.lastRow); listBox1.Activate(); blast=true; bfirst=false; Update(null); return true; } }; Button btnExit { this, text = "(x)退出", altX, size = { 66, 29 }, position = { 464, 344 }; bool NotifyClicked(Button button, int x, int y, Modifiers mods) { if(MessageBox{type=okCancel,text="关闭",contents="确定要退出吗?"}.Modal()==ok) Destroy(0); return true; } }; Label lblName { lblInfo, this, "姓名:", size = { 278, 33 }, position = { 48, 32 } }; Label lblJob { lblInfo, this, "工作:", size = { 302, 33 }, position = { 48, 72 } }; Label lblAge { lblInfo, this, "年龄:", size = { 318, 33 }, position = { 48, 104 } }; ListBox listBox1 { this, size = { 500, 132 }, position = { 40, 24 }, moveRows = true, true, true, hasHeader = true, sortable = true; bool NotifySelect(ListBox listBox, DataRow row, Modifiers mods) { Friends temp{}; temp.name=listBox.currentRow.GetData(nameField); temp.job=listBox.currentRow.GetData(jobField); temp.age=listBox.currentRow.GetData(ageField); lblName.SetText("姓名:%s",temp.name); lblJob.SetText("工作:%s",temp.job); lblAge.SetText("年龄:%d",temp.age); Update(null); delete temp; return true; } }; void OnRedraw(Surface surface) { btnPrev.disabled =bfirst; btnNext.disabled =blast; } } Form1 form1 {}; |
|
achun
2011-12-13
多么期待有 D 原生的啊,这个依然是MinGW,D本身是跨平台的,可以不依赖与其他开发环境的,但是GUI这方面很缺乏啊
|
|
hqs7636
2011-12-13
很强大!
eC 是啥?这库跟d没关系吧 |
|
betty_betty2008
2011-12-13
hqs7636 写道 很强大!
eC 是啥?这库跟d没关系吧 在C上面盖的一层,先把eC原码编码成C代码最后编译成机器码,具体实现菜鸟不懂,需老大出来点评。 |
|
shawind
2011-12-13
把它自己的语言翻译成C语言,然后再编译,与zimbu,vala的工作方式差不多。
|
|
hqs7636
2011-12-13
原始的c库在哪?用d包装一下也不错,比gtk,qt好吧,
|
|
Colorful
2011-12-14
老实说,这些 GUI 库在 Windows Runtime 面前弱爆了。最理想的状况是有一个 D 的 Projection。其实 D 的类型系统和 C# 很相似啊。
|
|
betty_betty2008
2011-12-14
Colorful 写道 老实说,这些 GUI 库在 Windows Runtime 面前弱爆了。最理想的状况是有一个 D 的 Projection。其实 D 的类型系统和 C# 很相似啊。
主要觉得ecere和C走得很近(基本上就是一家子),另外对3D和声音库包装的很好。 |
|
cubemap
2011-12-14
下载尝试了一下,这东西,超赞啊,有C++/CLI的感觉,但更灵活,有些地方接近动态语言了。
和D语言相比,兼容C语言是个很大的优势。 决定长期关注这个语言 |
|
betty_betty2008
2011-12-14
cubemap 写道 下载尝试了一下,这东西,超赞啊,有C++/CLI的感觉,但更灵活,有些地方接近动态语言了。
和D语言相比,兼容C语言是个很大的优势。 决定长期关注这个语言 github: https://github.com/ecere/sdk 用mingw32 直接make,超方便,如果不喜欢代码编缉器的风格,可以在编译前修改\ide\src\designer\CodeEditor.ec然后再编译。更详细地看论坛了。 个人最喜欢的是UI设计器双向转换,UI拖拉能生成代码,手工的代码能立即在UI设计器里生成相应的控件。 不好意思,不该在这里说这么多。 |
相关讨论
相关资源推荐
- onbeforeunload与onunload事件异同点总结
- ie9下 触发onbeforeunload的问题
- 关闭浏览器时提示onbeforeunload事件
- 用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
- onbeforeunload不触发_onbeforeunload
- 使用onbeforeunload属性后的副作用
- 浅谈javascript中onbeforeunload与onunload事件
- 转载:解决IE下a标签会触发window.onbeforeunload的问题
- javascript Onunload与Onbeforeunload使用小结
- 判断用户的在线状态 onbeforeunload事件