西西河

主题:【原创】Delphi,亡羊补牢奈若何? -- 晨池

共:💬86 🌺84
分页树展主题 · 全看首页 上页
/ 6
下页 末页
    • 家园 一点不同的意见

      3-7的兼容性,我觉得还是可以的,

      不兼容的原因,主要在第三方控件,包括他自带的控件

      7比6好,6实际上是一个不稳定的版本,在访问ado时有严重的bug。

      至于8之后

      基本上,都属于垃圾了。堆砌豪华的界面,无视前一版本中存在的问题,玩概念的操作。

      现在还在用d的人,绝大多都是在用7

    • 家园 8年了,别提它了。

      Delphi从来没有正式用过,不过Delphi的表亲倒是用过8年,它的表亲就是C++ Builder。

      DELPHI(vcl)的思路和MFC截然不同,变个带GUI的小程序自然是很容易上手,比MFC容易多了,开发效率也高多了。不过俺写的代码以服务器和协议方面的居多,用BUILDER或者VS差别不大。不过代码复杂的话,带折叠功能的编辑器还是很好的。

      这两天玩CHROME的代码把VS 2008搬了出来。虽然在文档上讲用VS 2005,但在VS 2008上基本没有问题。

      贴一小段Chrome进程初始化的代码。

      bool single_process =

      parsed_command_line.HasSwitch(switches::kSingleProcess);

      if (single_process)

      RenderProcessHost::set_run_renderer_in_process(true);

      bool icu_result = icu_util::Initialize();

      CHECK(icu_result);

      logging::OldFileDeletionState file_state =

      logging::APPEND_TO_OLD_LOG_FILE;

      if (process_type.empty()) {

      file_state = logging::DELETE_OLD_LOG_FILE;

      }

      logging::InitChromeLogging(parsed_command_line, file_state);

      #ifdef NDEBUG

      if (parsed_command_line.HasSwitch(switches::kSilentDumpOnDCHECK) &&

      parsed_command_line.HasSwitch(switches::kEnableDCHECK)) {

      logging::SetLogAssertHandler(ChromeAssert);

      }

      #endif // NDEBUG

      if (!process_type.empty()) {

      // Initialize ResourceBundle which handles files loaded from external

      // sources. The language should have been passed in to us from the

      // browser process as a command line flag.

      ResourceBundle::InitSharedInstance(std::wstring());

      }

      // Eviction of injected DLLs is done early enough that it is likely

      // to only cover DLLs injected by means of appInit_dlls registry key.

      if (do_dll_eviction)

      EvictTroublesomeDlls();

      startup_timer.Stop(); // End of Startup Time Measurement.

      int rv;

      if (process_type == switches::kRendererProcess) {

      rv = RendererMain(parsed_command_line, show_command, target_services);

      } else if (process_type == switches::kPluginProcess) {

      rv = PluginMain(parsed_command_line, show_command, target_services);

      } else if (process_type.empty()) {

      int ole_result = OleInitialize(NULL);

      DCHECK(ole_result == S_OK);

      rv = BrowserMain(parsed_command_line, show_command, broker_services);

      OleUninitialize();

      }

    • 家园 够用就行,何苦折腾自己?

      虽说公司里做项目用什么工具什么语言身不由己,但有一条原则应该是很明确的,那就是够用就行。软件是用来服务和发挥作用的,不是为了欣赏其优美的。即使是老板,最好也能服从这一条,否则迟早有悔不及的时候。

    • 家园 或者用java,可以以不变应万变。
    • 家园 花。一开始折腾只是为了折叠,后来Vim和make/gcc

      已是进入高手的行列了。

      武林高手一般不需要什么兵器暗器,就内功一发动,对手的兵器暗器就掉落一地。

      Vim和make/gcc/gdb,就像一双肉掌,却可抵挡千军万马。

    • 家园 我学语言的顺序是

      Pascal、C++、VB、C#

      Pascal教我写代码要优美

      C++教我面向对象

      VB告诉我原来可以拖放控件来设计界面

      C# <-- 这个是吃饭的家伙。

      • 家园 我学语言的顺序是

        True Basic,java,c++,delphi,vb,c#,javascript

        True Basic是带我上路的

        java是凑热闹的

        c++是知道别人有多麻烦的

        delphi是第一次做项目的,也是知道别人也可以很简单的

        c#带我学会了面对对象,但总觉得会了也不露脸的

        javascript是我觉得挺拿手,和老人pk用的。只用它做网页特效不算露脸,写写xpcom的组件看上去也挺高深的。

分页树展主题 · 全看首页 上页
/ 6
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河