标签: delphi

  • delphi获取 CPUID

    type   TCPUID=array[1..4] of Longint;
    FUNCTION GetCPUID : TCPUID; assembler; register;
    asm
      PUSH    EBX         {Save affected register}
      PUSH    EDI
      MOV     EDI,EAX     {@Resukt}
      MOV     EAX,1
      DW      $A20F       {CPUID Command}
      STOSD              {CPUID[1]}
      MOV     EAX,EBX
      STOSD               {CPUID[2]}
      MOV     EAX,ECX
      STOSD               {CPUID[3]}
      MOV     EAX,EDX
      STOSD               {CPUID[4]}
      POP     EDI          {Restore registers}
      POP     EBX
    END;

    调用

    procedure TForm3.btn1Click(Sender: TObject);
    var cpuid:TCPUID; i:integer;
    begin
        cpuid:=GetCPUID;
        for i:=1 to 4 do ssss:=ssss+IntToHex(CPUID[i],4);
        ShowMessage(ssss);
    end;
  • delphi7使用idhttp获取https的页面代码

    delphi7使用idhttp获取https的页面代码

    procedure TForm1.Button1Click(Sender: TObject);
    var url:string;
    response:TStringStream;
    error:string;
    begin
      response:=TStringStream.Create('');
      IdHTTP1.IOHandler := IdSSLIOHandlerSocket1;
      IdHTTP1.HandleRedirects:=false;
      IdSSLIOHandlerSocket1.SSLOptions.Method := sslvSSLv3;
      url:='https://passport.jd.com/new/login.aspx';
      try
        IdHTTP1.Get(url);
      except
        on E: Exception do
          error:=E.Message;
      end;
      url:= IdHTTP1.Response.Location;
      if error='HTTP/1.1 302 Found' then
      begin
        IdHTTP1.Get(url,response);
        Memo1.Text := response.DataString;
      end;
    
    
      response.Free;
    end;

    需要把下面两个dll和exe放在一起

    注意:不要在delphi ide中按F9运行, 这样(try except)异常会被IDE的调试器捕获,当然可以设置忽略异常,把异常传递给程序,不过并不推荐这样做,会影响下次调试。

    看效果直接双击exe即可。

  • delphi fastreport 预览出错

    错误信息 statement expected,but expression of type ‘TfrxCustomPreview’found

    解决办法:

    frxReport1.Preview 只是指定frxReport1 的 preview 控件,
    调用frxReport1 的预览应使用 frxReport1.showReport;

  • 关于delphi编译器病毒,以及解决办法

    此病毒会感染sysconst.pas文件,编译生成中间文件sysconst.dcu,并且把原文件改名sysconst.bak

    只要把sysconst.dcu删除掉,然后把bak改回dcu在编译就没问题了

  • Delphi使用流读写控件数据

    Delphi使用流读写控件数据

    保存到文件

    MS := TMemoryStream.Create;
    try
            MS.WriteComponent(listview1);
            MS.SaveToFile('文件名');
    finally
            MS.Free;
    end;

    从文件读入控件

    MS := TMemoryStream.Create;
    try
         	MS.LoadFromFile('文件名');
         	MS.ReadComponent(listview1);
    finally
    	MS.Free;
    end;
  • Delphi自动提交表单(这里只有一个表单)

    Delphi自动提交表单(这里只有一个表单),弄了一个晚上,经过一个大牛的指点,10分钟搞定

    procedure TMainForm.WebBrowser2DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    var
      oFrames:OleVariant;
    begin
      oFrames := WebBrowser2.OleObject.document.forms;
      if oframes.length <> 0 then
      begin
      oFrames.item(0).submit;
      end;
    end;