1、如果一个球中装有部分水,用图形来表示当然是用一个圆,再根据实际水位比例,在圆中填充颜色。请问这个颜色如何填?2、调用计算器可用如下代码,但如果调用其它程序,如记事本、画笔等时不成功。
procedure TForm1.Button1Click(Sender: TObject);
var
  StartupInfo:TStartupInfo;
  ProcessInfo:TProcessInformation;
begin
     FillChar(StartupInfo,Sizeof(StartupInfo),#0);
     StartupInfo.cb := Sizeof(StartupInfo);     StartupInfo.dwFlags := STARTF_USESHOWWINDOW;//如果调用记事本要去掉此句,请问这一句到底是何意?
     CreateProcess(nil,
        'Calc',
        nil,
        nil,
        false,
        CREATE_NEW_CONSOLE or
        NORMAL_PRIORITY_CLASS,
        nil,
        nil,
        StartupInfo,
        ProcessInfo);
end;
调用其他程序时又如何做?

解决方案 »

  1.   

    先1干吗不用ShellExecute调用calc?
      

  2.   

    1  :rgn1,rgn2
    rgn1:=CreateEllipticRgnIndirect(..)  定义你的圆的一个区域
    rgn2:=CreateRectRgn(..)    从水线往上的一个矩形区域然后用CombineRgn ,从rgn1中减去rgn2,然后FillRgn
      

  3.   

    StartupInfo.dwFlags := STARTF_USESHOWWINDOW;//如果调用记事本要去掉此句,请问这一句到底是何意?这句的意思是:
    StartupInfo.wShowWindow要设置,可以在上句后设置如下:
    StartupInfo.wShowWindow:= SW_MAXIMIZE;//这样显示的窗口最大化这样打开的记事本就最大化了!
      

  4.   

    感谢guestman(天涯浪子),帮我解决了问题2
    citytramper(阿琪)的方法我试一下
      

  5.   

    hehe^^ 都不难资料多的是,帮你up一下
      

  6.   

    1.用这个东西Gauge1呀,修改它的属性
    2.procedure RunCalculator(Key: Word);
    var
      HWndCalculator : HWnd;
    begin
        if key =122 then//F11
        begin
          HWndCalculator := Winprocs.FindWindow(nil, '未定标题-记事本');
          if HWndCalculator <> 0 then
            ShowWindow(HWndCalculator,SW_Restore)
          else
            WinExec(pChar(G_ExePath + 'notepad.exe'),SW_Show);
        end
        else
        if key = 123 then //F12  min
        begin
          HWndCalculator := Winprocs.FindWindow(nil, '未定标题-记事本');
          if HWndCalculator <> 0 then
            ShowWindow(HWndCalculator,SW_Minimize)
        end;
    end;
      

  7.   

    ShellExecute既能调用exe文件也能调用文档,为什么不用它呢?