Ali Keshavarz's Website
RSS icon Email icon Home icon
  • ProcessInfo 1.2 is released

    Posted on January 13th, 2010 Ali Keshavarz No comments

    Hi,

    ProcessInfo 1.2 is released. The changes in this release are:

    • SuspendThread, ResumeThread, TerminateThread methods are added to TThreadItem class. Now you can pause/resume/terminate any running thread in a given process.
    • TProcessInfo.Active and TAppInfo.Active are published properties, and can be set in design mode.
    • TProcessInfo.RunningProcesses and TAppInfo.RunningApplications automatically populate the corresponding list if UpdateList method is not called yet. This means even if you don’t activate any of these two components, or call their UpdateList method, accessing RunningProcesses or RunningApplications does not cause Access Violation.

    To download ProcessInfo 1.2, please go to ProcessInfo page.

    Regards.

  • Component Toolbar slows down RAD Studio 2010

    Posted on January 2nd, 2010 Ali Keshavarz No comments

    In RAD Studio 2010 there is a new IDE feature called Component Toolbar. This feature provides a component palette similar to the old Delphi component palette.

    Component Toolbar
    Component Toolbar in RAD Studio 2010

    This toolbar provides a nice search box which is able to filter components in the palette based on the search phrase. This toolbar is disabled by default, and is shown when Classic Layout is selected. Here you can see a snapshot of Classic Layout in RAD Studio 2010:

    Classic Layout in Delphi 2010

    A few weeks ago while I was working with Delphi 2010, I noticed a delay when switching from code view to form designer. The delay was there not only in the complex forms, but also in simple empty forms! It was not a big delay (about 1 second), but since I had to switch between code and form designer view many times, it was really annoying, so I decided to investigate it and find out what is causing this delay.

    Read the rest of this entry »

  • Chad Hower of Indy fame is arrested!

    Posted on November 7th, 2009 Ali Keshavarz No comments

    Today I saw a new blog post on Kudzu(Chad Hower)’s RSS feed, with this weird title: “Arrested in Bulgaria on False Charges

    At first I thought it is just a joke, but then I realized it isn’t :-( It seems Chad is in trouble for his son’s custody. He’s been accused of kidnapping his own son and traveling to Bulgaria with him in 2006!

    Anybody having some experiences with Delphi programming knows Chad, and his great open-source project; Indy Project.

    I hope his problem is solved soon. He asked for help, and I think all Delphi developers who are using Indy have to at least spread the word, or if they can, help him financially to get out of this trouble.

  • ProcessInfo 1.1 is released

    Posted on October 22nd, 2009 Ali Keshavarz 1 comment

    Hi,

    I released a new version of ProcessInfo. In this release I added these features:

    • Enumerators are added for Windows, Threads, Modules, and Processes; Now you can use for-in statements in D2007 and above for iterating on running processes list, or modules\threads\windows of a given process.
    • TProcessItem.UserName is added; This property returns domain name\user name which is running the process.
    • TProocessInfo.AdjustDebugPrivilage is added; This method is called automatically.
      TThreadItem.ToString & TProcessItem.ToString are added; TThreadItem.ToString returns ThreadID. TProcess.ToString returns process EXE name.
    • Now supports Delphi 7,2007,2009, 2010; Some conditional compiler directives are added so that it can be used in D7, 2007, 2009, and 2010. I tested it in D7, 2009, and 2010. It should work in D2007 too.

    To download ProcessInfo 1.1, please go to ProcessInfo page.

    Regards.

  • How to use TProcessInfo

    Posted on September 11th, 2009 Ali Keshavarz 1 comment

    The other day I published Process Info component pack which contains TProcessInfo and TAppInfo. A sample task manager was also published as demo.

    I thought maybe it is a good idea to talk about these components and some of their usages by providing some sample source codes. So I will start with TProcessInfo.

    Read the rest of this entry »

  • Process Info

    Posted on September 8th, 2009 Ali Keshavarz 2 comments

    Process Info is a free Delphi component package containing two components:

    • TProcessInfo
    • TAppInfo

    TProcessInfo provides a list of running processes. TAppInfo provides a list running applications (similar to Application tab in Windows Task Manager). Both components can update their list frequently based on the value of Interval property.

    Read the rest of this entry »

  • Auto Shutdown is open-source now!

    Posted on April 5th, 2009 Ali Keshavarz No comments

    Today, I published source code of Auto Shutdown utility under Creative Commons license. You can download it from here.

    Along with this source, I published source code of two components used in Auto Shutdown; AliShellNotifyIcon, and AliLinkLabel. These two components are published under a more general license. You can find them in Components folder of Auto Shutdown source code.

    Source codes are developed in Delphi 7, but is also tested in Delphi 2009. I might move the source files to SourceForge later.

    I’m planning to publish more source codes, and components later.

  • اینترفیس ها در دلفی

    Posted on March 18th, 2009 Ali Keshavarz No comments

    در این مقاله تعریف مختصری از مفهوم Interface و Abstract Class در طراحی نرم افزار ارائه می کنیم، و سپس به قابلیت های نوع Interface در دلفی و برخی کاربردهای آن، با ذکر مثال، می پردازیم.

    مقدمه

    نوع Interface از نسخه ۳ به دلفی اضافه شد تا پشتیبانی از تکنولوژی COM شرکت مایکروسافت در دلفی فراهم شود. Interface علاوه بر پشتیبانی از COM، قابلیت های جالبی برای برنامه نویسان دلفی به ارمغان آورد که کمتر از آن استفاده می شود. متاسفانه به دلیل آنکه چارچوب اصلی VCL و بخصوص کامپوننت های کار با بانک اطلاعاتی دلفی مدت ها قبل از آن (از نسخه اول دلفی) ایجاد شده بودند، استفاده چندانی از Interfaceها در VCL صورت نگرفت.

    برای درک بهتر interface ها، و قبل از آنکه به تعریف Interface و کاربردهای آن بپردازیم، ابتدا به مفهوم کلاس های Abstract و تعریف آنها اشاره ایی خواهیم داشت؛ زیرا مشابهت هایی در کاربرد این دو مفهوم وجود دارد، و شناخت مفهوم کلاس های Abstract درک مفهوم Interfaceها را ساده تر می کند.

    Read the rest of this entry »