1.如何得到当前工程的版本号以及所调用DLL的版本号??
2.大家推荐一个有复选框的树型控件吧!!~~~~~~~~我自己找了一个,用不来.
3.大家用过语法加亮的控件synedit,我怎么装都装不了啊?提示说少文件.晕~~~~~~~~后面的这个可能有点难吧
4.用WEBBROWNER 来浏览网页,然后将网页存进数据库.存入的字段是 <TITLE>  , 网页整个的源代码,以及网页的大小.  
5.如何实现在 网页的 直接编辑??(就想 DREAMEVER 一样,可以直接在网页上改而不是去改代码)大家帮帮我,这个问题缠了我好久了啊~~~~~~~~分少的话,说一声,我再开一贴~~~~~~~~
还请大家无比帮忙解决该问题!!!~~~~~~~~~~~

解决方案 »

  1.   

    1 有专门的软件可以看到其版本号的,delphi有一个反代码的软件,具体我记不清楚了
    2 到delphi盒子里面去找
    3 是不是你的路径没添加上呀
    4 查下“网博士”的实现原理
    5 网页中有很多直接的编辑器的,如:查“asp 在线编辑器”在baidu中
      

  2.   

    1、关于工程和DLL的版本号,可直接读取这些文件的属性即可得到,需要用到API,我没做过,自己找找吧。
    2、推荐使用DevExpress系列,或TMS系列,到51Delphi去找吧。
    3、如果控件本身没有问题,就是安装的问题,一般是搜索路径没有设置。
    4、WebBrowser好像有方法可获得源文件等一些数据。
    5、我觉得很难,建议上网找些控件或源代码。
      

  3.   

    >>1.如何得到当前工程的版本号以及所调用DLL的版本号??
    使用GetFileVersionInfo 得到版本信息的例子 
    Samples Using GetFileVersionInfo?回答1:
    procedure GetBuildInfo(var V1, V2, V3, V4: Word);
    var
    VerInfoSize: DWORD;
    VerInfo: Pointer;
    VerValueSize: DWORD;
    VerValue: PVSFixedFileInfo;
    Dummy: DWORD;
    begin
    VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
    GetMem(VerInfo, VerInfoSize);
    GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
    VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
    with VerValue^ do
    begin
    V1 := dwFileVersionMS shr 16;
    V2 := dwFileVersionMS and $FFFF;
    V3 := dwFileVersionLS shr 16;
    V4 := dwFileVersionLS and $FFFF;
    end;
    FreeMem(VerInfo, VerInfoSize);
    end;
      

  4.   

    我就‘3.大家用过语法加亮的控件synedit,我怎么装都装不了啊?提示说少文件’问题说说本人的解决的方法吧:先Close All,然后Open files,然后选*.FPK文件打开,install就可以了!
      

  5.   

    http://www.zdnet.com.cn/common/printfriendly/printfriendly.htm?AT=39045821-2000081534t-20000560c>>3.大家用过语法加亮的控件synedit,我怎么装都装不了啊?提示说少文件.晕~~~~~~~~
    我裝過,是沒問題的,你看下少什麼文件>>4.用WEBBROWNER 来浏览网页,然后将网页存进数据库.存入的字段是 <TITLE>  , 网页整个的源代码,以及网页的大小.uses
     MSHTML_TLB, ActiveX;
    function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean;
    var
     ps: IPersistStreamInit;
     s: string;
     ss: TStringStream;
     sa: IStream;
    begin
     ps := WB.document as IPersistStreamInit;
     s := '';
     ss := TStringStream.Create(s);
     try
       sa:= TStreamAdapter.Create(ss, soReference) as IStream;
       Result := Succeeded(ps.Save(sa, Bool(True)));
       if Result then ACode.Add(ss.Datastring);
     finally
       ss.Free;
     end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
     ShellWindow: IShellWindows;
     WB: IWebbrowser2;
     spDisp: IDispatch;
     IDoc1: IHTMLDocument2;
     k: Integer;
    begin
     ShellWindow := CoShellWindows.Create;
     // get the running instance of Internet Explorer
     for k := 0 to ShellWindow.Count do
     begin
       spDisp := ShellWindow.Item(k);
       if spDisp = nil then Continue;
       // QueryInterface determines if an interface can be used with an object
       spDisp.QueryInterface(iWebBrowser2, WB);
       if WB <> nil then
       begin
         WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
         if iDoc1 <> nil then
         begin
           WB := ShellWindow.Item(k) as IWebbrowser2;
           begin
             // Add HTML Code to Memo
             Memo1.Lines.Add('****************************************');
             Memo1.Lines.Add(WB.LocationURL);
             Memo1.Lines.Add('****************************************');
             GetHTMLCode(WB, Memo1.Lines);
           end;
         end;
       end;
     end;
    end; 
      

  6.   

    有复选框的树型控件[转贴]以用变通的手法。  TreeView有Images属性不是吗?自己做三张小图片:全选中、部分选中、不选状态(直接拍下CheckBox三种状态的图片在加工一下就可以了),然后在点击事件中根据具体情况设置TTreeNodes的ImageIndex就OK了。  如果嫌麻烦的话就去Down一个控件,其实有些控件也是这样做的,界面上你是看不出来的. :)**************Manan Patel <[email protected]>重载TreeView的CreateParams:type
     TCheckBoxTreeView = class(TTreeView)
     protected
      procedure CreateParams(var Params: TCreateParams); override;
    end;procedure TCheckBoxTreeView.CreateParams(var Params: TCreateParams);
    begin
     inherited;
     Params.Style:=Params.Style or TVS_CHECKBOXES;
     { TVS_CHECKBOXES declared in CommCtrl }
    end;如果要Check这个CheckBox,可以用下面的代码:function IsNodeChecked(Node :TTreeNode) :Boolean;
    const
     TVIS_CHECKED = $2000;
    var
     TvItem :TTVItem;
    begin
     TvItem.Mask := TVIF_STATE;
     TvItem.hItem := Node.ItemId;
     TreeView_GetItem(Node.TreeView.Handle, TvItem);
     Result := (TvItem.State and TVIS_CHECKED) = TVIS_CHECKED;
    end;procedure SetNodeChecked(Node :TTreeNode; Checked :Boolean);
    const
     TVIS_CHECKED = $2000;
    var
     TvItem :TTVItem;
    begin
     FillChar(TvItem, SizeOf(TvItem), 0);
     with TvItem do begin
      hItem := Node.ItemId;
      Mask := TVIF_STATE;
      StateMask := TVIS_STATEIMAGEMASK;
      if Checked then
       TvItem.State :=TVIS_CHECKED
      else
       TvItem.State :=TVIS_CHECKED shr 1;
      TreeView_SetItem(Node.TreeView.Handle, TvItem);
     end;
    end;可以做成事件和封装成一个类:private OldState :Boolean;procedure Change(Node: TTreeNode); override;
    begin
     inherited Change(Node);
     OldState := IsNodeChecked(Node);
    end;procedure Click; override;
    var
     NewState :Boolean;
    begin
     inherited Click;
     NewState := IsNodeChecked(Self.Selected);
     if NewState = OldState then Exit;
     if (NewState) and Assigned(OnNodeChecked) then OnNodeChecked()
      else if (not NewState) and Assigned(OnNodeUnChecked) then OnNodeUnChecked()
     // OnNodeChecked & OnNodeUnchecked will be events that you declare
    end;另:有一个叫 CheckTV 的控件可以下载
      

  7.   

    学习一下~~~~~~如果用这句就可以保存网页.但我不想出现保存的对话框,而是直接保存在我制定的地方,应该改什么地方???
    WebBrowser.ExecWB(OLECMDID_SAVEAS,OLECMDEXECOPT_PROMPTUSER);
      

  8.   

    保存TWebBrowse中的网页为HTML文件,以及读取WebBrowse的HTML源代码: 
    usesActiveX;function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;varps: IPersistStreamInit;fs: TFileStream;sa: IStream;beginps := WebBrowser.Document as IPersistStreamInit;fs := TFileStream.Create(FileName, fmCreate);trysa := TStreamAdapter.Create(fs, soReference) as IStream;Result := Succeeded(ps.Save(sa, True));finallyfs.Free;end;end;function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;varps: IPersistStreamInit;ss: TStringStream;sa: IStream;s: string;beginps := WebBrowser.Document as IPersistStreamInit;s := '';ss := TStringStream.Create(s);trysa := TStreamAdapter.Create(ss, soReference) as IStream;Result := Succeeded(ps.Save(sa, True));if Result then ACode.Add(ss.Datastring);finallyss.Free;end;end;procedure TForm1.Button1Click(Sender: TObject);beginWB_SaveHTMLCode(Webbrowser1, 'c:.txt');end;procedure TForm1.Button2Click(Sender: TObject);beginWB_GetHTMLCode(Webbrowser1, Memo1.Lines);end;