Gina、Delphi、最有钱途及其他

作者回顾了自己五年前的愿望——使用Delphi编写自定义的Gina,并分享了实现过程中遇到的问题及解决思路。此外,还探讨了Delphi作为开发工具的优势与局限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Gina
 早在2002年时,看到一份关于Gina的文章(当时好像就唯一的一份关于Gina的文章,也许很多人都看过),就希望能自己写个Gina,再自己接个IC卡读卡器,登陆系统刷卡就OK,帅呆了

岁月如梭,转眼5年过去。
也是造化弄人,5年后还有机会给我再了结这个希望。

这次再写Gina也不顺利。我的需求是:希望显示自己的登陆界面,供输入用户名和密码,其他全部使用Windows默认界面。问题在于:在自定义Gina的WlxWkstaLockedSAS函数中,显示了登陆界面完成后,要么不能自动登陆(调用LogonUser也无济于事),要么登陆后桌面显示错误

有问题,找google!但是google找不出我要的吉娜(Gina)。
依我看,Windows抛出Gina的最大用处在于实现自定义登陆界面。而google出来的Gina,几乎100%的内容都是如何屏蔽Ctrl+Alt+Del。
这个搜索结果,对于另一个问题可见一斑:大多数人都只顾着花时间去“防”(比如:防盗版),而忘却了软件的本

另一个故事:去年我创建了个VCLSkin QQ群(注:VCLSkin是一款第三方皮肤控件),招来许多人,可见人人都是爱美的。但是,群里最多的的问题是如何安装VCLSkin控件。连安装控件都不懂的人,却一味地追求华丽的软件外表。


2、Delphi
在开发许多程序,Delphi无疑有最快的开发速度(这里仅仅只开发速度,其他语言的fans不用紧张)。但是在开发Gina时,略显笨拙。比如:显示窗体(Form)时调用WlxDialogBoxParam,需要使用WlxDialogBoxParam显示的窗体,必须做成资源(Resource),这样在窗体的各个事件里写代码就不是那么方便了。

有人对Delphi不敢冒,有人抛出Delphi将死论。但是我从接触Delphi至今快十年了。

3、最有钱途?
我选择Delphi,是因为当时在计算机杂志上看到这么一段话:“最有前途的语言VC;最有钱途的语言Delphi”。我是爱财之人,毅然选择了Delphi。

可悲的是,没给我带来多少钱(当然,这不能怪Delphi)。
出人意料的是,Delphi不值得守候:微软参股Borland;Borland IDE部门出售等等。

反正我是因为那一句话选择了Delphi,不知道诸多得其他的Delphi用户缘何爱上了这厢?
另一个现象,不得不考虑:Delphi的开源项目(代码)比之C++/VC++的开源项目少得可怜。依我看,很有可能是因为大部分向钱看的程序员选择了最有钱途的Delphi。心中只有钱的人怎会拿出项目共享与他人?

Delphi VCLSkin 5.30 website : http://www.link-rank.com email : info@link-rank.com VCLSkin is a component to create skinnable user interface for Delphi/C++Builder application, It is easy to use, just put one component on mainform, Vclskin will skin whole application without source code modification. Vclskin is leader in this field, Vclskin support most third-part controls in market, there isn't a competitor was able to support 3rd-part controls as many as Vclskin. VclSkin automatically skin kinds of windows in application, include Delphi forms,MDIform and common Windows dialogs (MsgBox,Open/Save,Font,Print), even the Exception MsgBox. Vclskin not only support Delphi standard controls, but also support many third-party component, such as TMS Grid pack, EnLib Grid, Developer Express QuantumGrid. It is an excellent choice for those wanting to skin existing applications. The cool thing is that it uses existing VCL components. -Install Run install.exe to install. You also get help in help.chm -Demo The demo package download at: http://www.link-rank.com/download.htm Demo version adds a string 'VclSkin demo' on form caption, but allows to test all available functions. -History News In 5.30 05/20/2009 *Fix bugs in windows 7. News In 5.25 04/14/2009 *Add xoCaptionButtonHint in skindata.options to hide hint of caption button, to upgrade new version: 1 run uninstall.exe in demo package. 2 compile and install new version. News In 5.20 03/05/2009 *fix problem on hint on caption button. News In 5.14 11/04/2008 *fix unicode problem in delphi 2009 News In 5.12 11/04/2008 *fix bug in hint for caption button News In 5.11 11/03/2008 *support hint for caption button News In 5.10 09/17/2008 *support delphi 2009 News In 5.04 08/16/2008 *fix bug in BCB2007. News In 5.1 05/29/2008 *fix bug in TBitbtn. News In 4.99 05/07/2008 *fix bug in Tprogressbar. News In 4.98 04/23/2008 *fix bug in Tbutton. News In 4.97 04/20/2008 *fix bug in Tlistview. News In 4.96 03/25/2008 *fix bug in Tlistview. News In 4.95 03/13/2008 *fix bug in dll forms. News In 4.94 11/13/2007 *Skip to skin control in Skindata.OnSkinControl event. News In 4.93 11/13/2007 *Support PNGspeedbutton. News In 4.92 11/06/2007 *Fix combobox button problem when form is scaled. News In 4.91 10/02/2007 *Support QuantumGrid 6. News In 4.90 09/03/2007 *Support C++builder 2006, c++builder 2007. News In 4.89 07/26/2007 *Fix problem with Multilizer . News In 4.88 07/18/2007 *Fix form icon problem . News In 4.87 07/10/2007 *Fix problem in Form Caption News In 4.86 06/13/2007 *Fix problem in TDateTimePicker News In 4.85 06/06/2007 *Fix problem in TDateTimePicker News In 4.83 05/18/2007 *Fix problem in Dev Dbtreeview. News In 4.82 05/11/2007 *Improve image quality of form icon. News In 4.81 04/30/2007 *Fix menu border problem. News In 4.80 04/20/2007 *Fix menu border problem in windows2000. News In 4.76 04/11/2007 *Support application Icon updated at runtime. News In 4.75 04/04/2007 *Fix default button problem. News In 4.72 02/27/2007 *Fix form paint problem when cpation changed. News In 4.60 02/09/2007 *Support Help button in form system button. News in 4.55 01/31/2007 *Fix problem that right click caption on Dll form. News in 4.53 01/22/2007 *Fix problem on multi-lines caption header in Listview. News in 4.52 01/11/2007 *Fix problem in DatetimePicker when it resize. News in 4.50 01/03/2007 *Fix problem work with Billenium Effects. News in 4.42 12/06/2006 *skindata.skincontrols option work in window common dialog. News in 4.41 11/13/2006 *fix problem in TImageEnOpendialog. News in 4.40 11/09/2006 *fix problem with Billenium Effects. News in 4.36 10/21/2006 *Fix popupmenu problem in win98 . News in 4.35 10/20/2006 *Fix problem when combobox right-to-left . News in 4.33 10/11/2006 *Fix problem when checkbox and radiobutton is right-to-left reading . News in 4.32 10/03/2006 *Fix problem of button shortcut. News in 4.31 9/25/2006 *Support Toolbarwindow32 in Opendialog. News in 4.30 9/7/2006 *Fix Caption problem in bidiRighttoLeft form. News in 4.25 9/5/2006 *Fix Mainmenu problem in MDIform with bidiRighttoLeft. News in 4.22 8/28/2006 *Fix problem when Menuitem text is right-to-left reading . News in 4.21 8/21/2006 *Fix problem when form caption is right-to-left reading . News in 4.20 8/18/2006 *Fix problem when form Max/Min button is disable. *Change skin file format. News in 4.13 8/14/2006 *unskin dialog when download file in webbrowser. News in 4.12 7/30/2006 *Fix problem when form Max/Min button is disable. News in 4.11 6/25/2006 *Change Grid.fixedcolor when skin file changed. News in 4.10 6/14/2006 *Add BeforeFormSkin and AfterFormSkin event. News in 4.09 6/07/2006 *fix bug in MDIchild when form create and change form caption. News in 4.08 5/25/2006 *(5/26)Fix bug in TSkinControl.GetParentColor . *Change Tabcontrol background color. News in 4.07 5/10/2006 *Fix problem TScrollbar control. News in 4.07 5/5/2006 *Fix problem in Mainmenu. News in 4.06 4/19/2006 *Fix combobox scrollbar problem. News in 4.05 4/18/2006 *Fix scrollbar problem when grid is disable. *Fix Mainmenu problem in Windows95 News in 4.04 4/10/2006 *Fix Mainmenu problem in MDIform. *Fix Menu merge problem in Win98. News in 4.03 4/01/2006 *Fix problem in TCheckbox and TRadiobutton when BiDimode=bdRighttoLeft. *Fix problem when Menuitems have Actions. News in 4.02 3/28/2006 *Fix problem in TSpeedbutton when size is zero. *Support scrollbar in drop-down of combobox. News in 4.01 3/16/2006 *fix problem with trackbar when skin active *support TCategoryButtons in delphi2006 News in 4.0. 3/9/2006 *Fix problem when skin file do not have checkbox image. *Fix bug when click button and move mouse. *Fix bug with TVirtualTreeview. News in 3.99 3/3/2006 *Fix bug when skindata.skinformtype=sfOnlyThisForm *Fix bug in TcxRadioGroup *Fix bug in TDateTimePicker *Fix bug in TMediaPlayer. News in 3.98 2/24/2006 * Support TPageControl with tsButton style. * Fix problem on Mainmenu with ActionList. News in 3.97 2/16/2006 * Fix problem when Groupbox in ScrollBox. *Fix problem with newest TNTcontrol. News in 3.96 2/6/2006 * Fix problem with TTrayIcon. * Fix problem bug with TMainmenu. News in 3.95 1/25/2006 * Fix flicker problem about TSpeedbutton. * Fix flicker problem when form caption change. News in 3.94 1/25/2006 * Fix bug in TPopupMenu. add 'xoMenuBG' in skindata.options to support menuitem with mbBarBreak. News in 3.93 1/18/2006 * Fix bug in TDateTime. News in 3.92 1/12/2006 * Fix paint bug in TTabcontrol. * Fix paint bug in Checkbox and radiobutton without caption . News in 3.91 1/8/2006 * Fix bug in Mainmenur. News in 3.90 1/1/2006 * Fix bug in TrackBar. News in 3.89 12/31/2005 * Fix bug in form with BorderStyle=bsNone. *Fix mainmenu bug in MDIForm. News in 3.88 12/26/2005 *Fix bug in THeaderControl. *Support TcxTreeList, TcxNavigator in Dev express controls. News in 3.87 12/22/2005 *Paint minimized form. *Fix bug in TPageControl. News in 3.85 12/13/2005 *Fix a crush bug. News in 3.84 12/5/2005 *Support TPnbBitBtn. *fix flicker in Tpagecontrol. *Fix GDI leak problem. News in 3.83 12/2/2005 *Fix problem that toolbar Backbround is too dark . News in 3.82 12/1/2005 *Fix bug when form maximize. News in 3.81 11/29/2005 *Support TMediaPlayer control. News in 3.80 11/20/2005 *Fix some skin files. *Fix bug on ImageEn SaveImageEnDialog. News in 3.72 11/10/2005 *Fix bug in TScrollbar when its min is negative. *Fix bug in Tmainmenu. News in 3.71 11/5/2005 *change caption text color to gray when checkbox or radiobutton is disable. *Fix paint problem in Tbitbtn when caption is empty. *Fix bug of changing skin file when Skindata.SkinFormtype = sfOnlyThisForm. News in 3.70 10/27/2005 *Support TAdvPageControl. *Support TRzMenuButton, TcxButton with cxbkDropDownButton. *work with RECREATEWND message for skined control has scrollbar. *Fix a memory leak bug. *Fix paint bug for TPagecontrol in win95. News in 3.65 10/21/2005 *Add TSkindata.Options.xoMDIChildBorder which do not skin MDIChild form's border. News in 3.64 10/19/2005 *Fix problem when skindata.skincontrols.xcMainMenu is flase. News in 3.63 10/15/2005 *Support THeaderControl. News in 3.62 10/13/2005 *fix bug in SystemMenu. News in 3.61 10/11/2005 *fix bug in TcxDbCheckbox. *fix paint problem in Tcheckbox when Alignment is taLeftJustify. News in 3.60 10/10/2005 *Vclskin can run in Win95. News in 3.52 10/6/2005 *Fix paint problem of form border. News in 3.51 10/4/2005 *Fix paint problem in checkbox with big image. News in 3.50 9/25/2005 *Support Mouse Hover in Scrollbar. *Add Mouse thumb gripper in Scrollbar. News in 3.41 *Fix some problem in Button when mouse move. News in 3.40 2005.9.21 *Support Hover state in Header control. *Improve on TrackBar *Fix problem to unskin radiogroup. News in 3.38 2005.9.13 *Fix icon problme in MDIChild. News in 3.37 2005.9.12 *Fix font color problem in TButton when button is focused. News in 3.36 2005.9.9 *Fix font color problem in Tgroupbox,radiobutton,checkbox. News in 3.35 2005.9.5 *Support TGroupbox font color. News in 3.34 2005.8.31 *Fix paint problem in Trackbar when skin file change. News in 3.33 2005.8.29 *Fix problem in TcxDBCheckbox. News in 3.32 2005.8.25 *Add close button on TPageControl. News in 3.31 *fix problem when righ click form caption that BorderIcons:=[] News in 3.30 *fix problem that show normal window border when windows first show. *fix resize problem when form border is bsSingle. News in 3.29 *System menu is NOT only English.It support Language in windows. *Fix some problem in DLL applicaton. News in 3.28 * fix paint bug in checkbox and radiobutton in windows common dialog. News in 3.27 *fix bug in TTntDateTimePicker. *fix paint problem in TPageControl. News in 3.26 *Support Popupmenu in TFrame. News in 3.25 * fix Icon problem in MDIChild form. * fix caption paint problem in MDIForm. News in 3.24 * Fix Icon problem in MDIChild form. * fix paint problem in Tbitbtn. * Add feature that Skin file Preview image saved in skin-builder. * Add xcTrackbar and xcSpin. News in 3.23 * Support wordwrap in Bitbtn and speedbutton. * Fix scrollbar problem in TImageScrollBox. News in 3.22 * fix transparent problem in button. News in 3.21 * Fix paint problem in TSpidEdit. * Support owner-MeasureItem event in Popupmenu. News in 3.20 * support toolbar background. * support workwrap in checkbox and radiobutton. News in 3.14 *fix mainmenu merge problem . *fix flicker problem in transparent background . News in 3.13 *fix scrollbar problem when form move. *fix bug in DLL form. *fix Edit control focus problem in MDIChild. *fix formresize problem when skin file change. News in 3.12 * Add Focus border on checkbox,radiobutton,button. * Support Transparent Background on Checkbox,Radiobutton,Groupbox. * Support WS_EX_APPWINDOW style. * fix MDIchild problem in TBX. * improve on RzRadiobutton. News in 3.11 *Support runtime package. *support ALT,ALT-Space. *support hint for scrollbar control *fix Z-order problem when skin change. *fix shortcut problem. News in 3.10 *Support TBX. *Support TNT MDIChild Form. *Support more FastReprt button control. News in 3.08 *Fix problem in TOpenImageEnDialog. *Paint Border in scrollbar control. *Fix checkbox paint problem in Dibiright *Fix Tscrollbox problem. *Support LMD Elpack. *Fix problem that Control without parent. *Fix bug in skin file change. News in 3.07 *Fix problem when BiDiRight Mainmenu popup. *Fix bug in 3.06,3.05 when skin remove at runtime. News in 3.06 *Fix bug in C++Builder. *Fix bug in scrollbar resize. *Fix bug in Delphi7 XPmanifest component. News in 3.05 *Fix bug when move controls in different forms. *Fix problem in TStatusbar that is simple and DiBiRight. News in 3.04 *Fix Tscrollbox problem in delphi5. *Fix Mainmenu display problem in BIDIRight. *Fix font color problem in TSpeedbutton when it is disable. *Fix bug in TntCombobox. *Fix skinfile mxskin59.skn when form is maximized. News in 3.03 *Fix bug in dockable form. *Support Tbutton onMouseDown event. News in 3.02 *Fix Combobx problem in BIDIRight. *Fix MOUSE WHEEL problem in Tlistbox. *Fix Scrollbar problem when control is invisible. News in 3.01 *Fix problem in Inherited-MDIchild. News in 3.0 *Scrollbar flicker problem fixed. *Redundant separator bars in menu are automatically removed. *Add xoMDIScrollbar to show scrollbar in MDIClient area. News in 2.77 * Support TspinButton. * Support TRzDBCheckbox. * Fix paint problem when MDIform lost focus. * Fix AV bug in application close; * Fix bug when change skin file in multi-skins application. * Fix problem about skin delay. News in 2.76 * 4 new skin file released. * fix some bug in Opendialog. News in 2.75 * Fix bugs in IP4000 combobox * Add install.exe and uninstall.exe * Add "embedscrollbar" in Skindata.skin3rd to support TAdvpanelGroup's scrollbar. * Fix Colorpicker Popupmenu problem in WwRichEdit form. * Support SpinEdit now. * Fix TScrollbox problem in delphi5 or c++builder5. News in 2.74 * Delphi 2005 support. * Enable/Disable skin control at runtime. * Fix bug in MDIForm menu merge. * Add "xcMenuitem" in skincontrols property. * skip to skin QuickReport preivew form. News in 2.73 * Fix bugs in MDIForm when MDIChild is maximized. * Fix bug of form Caption in Chinese. News in 2.72 * Support TNT Unicode Controls . * Support menu in Tookbar2000 . * fix bug in MDIform close. * fix bug in TScrollbar control. * fix bug in TDateTimePicker when TDateTimePicker.kind is dtkTime. News in 2.71 * fix bugs of MDIChild form. * support progressbar with pbVertical style. * support preset color in skin file. * support speedbutton in skin3rd property. News in 2.70 * fix bug in embeded form. * fix bug of MDIform with Expressbar. * fix bug of form caption refresh when skin change. * fix trackbar refresh bug when skin change. * fix Quickreport , reprotbuilder preview form problem. * Support Raize TRzbitbtn with ImageList. * Support TComboboxex. News in 2.69 *Support Raize TRzbitbtn with glyph. *Support TMS TAdvMemo. *Fix bug of mainmenu shortcut in MDIform. News in 2.68 *Fix bugs in mainmenu. *Fix Icon bug in dialog. News in 2.67 *Fix DBEdit paint bug. *Fix Icon paint bug. News in 2.66 *Use Memory Inifile. *Fixed bug in multiskin demo. *Fixed MDIform Tile and Cascade problem. *Fixed bugs in default button and disable button. *Add LMD tools 7.0 demo. News in 2.65 *Paint with gray glyph when Speendbtn is disable. *Fixed Topendialog resize problem *Fixed shortcut problem in menuitem. *Add Raized component demo. *Add QuantumGrid4 demo. *Add IP4000 demo. News in 2.62 *Paint TGroupbox with new style. *Fixed bug in painting TSpeedbutton pictures. *Fixed bug in application closed. News in 2.60 *Support Arabic language, BiDiMode is righttoleft. *Fixed some bugs when application closed. News in 2.55 *Fixed bug that Tspeedbutton destory at runtime. *Improve performance when change menutitem at runtime. *Fixed OpenDialog bug. News in 2.50 *Support LMD tools. *Fixed bug of checkbox that is disabled . *Add TSkindata.Skin3rd property to add 3rd control easily. News in 2.45 *Some bugs fixed. *Improve compatibility with Billenium effects. News in 2.4 *Support to skin an application but keep the menu bar and title bar the default Windows standard. *DBCheckbox bug fixed. *Fixed bug in cascade,tile command in MIDform. *Bug with minimized state when form created. *Suport ReportBuilder News in 2.3 *Support TUpDown and TSpinEdit. *Support TrackBar. *Restore form size when remove skin. *Fix more bugs. News in 2.25 *Fix bug with QuickReport and FastReport. *Fix bug in Tstatusbar. *Fix bug in Application. News in 2.20 *Support Header control in TlistView. *Fix Menuitem ShortCut bug. *Fix bug that change windows Z-Order when skin change at runtime. *Support Tframe created at runtime. News in 2.10 *Fix Scrollbar drag thumb problem. News in 2.05 *Support multi-skindata in application,Mainform and messagebox can use different skindate. *Nested form support. *Fixed Title flicker problem when form resize. *Support Mainmenu change at runtime. News in 2.0 *skin kinds of windows in your project, Delphi forms,MDIform and common Windows dialogs (MsgBox,Open/Save,Font,Print), even the Exception MsgBox. *Enable/Disable skin at runtime. *fixed many bugs in MDIform. *system menu enchanced.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值