说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

这是delphi接受IE的url拖放的例子,谁用BCB写出来,送45分,只有这么多了 :(

编辑:说三道四文库 发布时间:2017-01-24 11:24
HTML文档下载 WORD文档下载 PDF文档下载
让自己的程序
可以接受OLE拖放。这需要申明一个COM对象,并支持IDropTarget接口。
下面DragDrop.pas不是我写的:
unit DragDrop;

interface

uses
  Windows, ActiveX, ComObj,Dialogs,Sysutils;

type
  TDropEvent = procedure(Sender:TObject;Msg:Pchar)of object;
  TTMyDrop = class(TComObject, IDropTarget)
  private
    FOnDroped: TDropEvent;
    procedure SetOnDroped(const Value: TDropEvent);
  protected
    {Declare IDropTarget methods here}
    function DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
      pt: TPoint; var dwEffect: Longint): HResult; stdcall;
    function DragOver(grfKeyState: Longint; pt: TPoint;
      var dwEffect: Longint): HResult; stdcall;
    function DragLeave: HResult; stdcall;
    function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
      var dwEffect: Longint): HResult; stdcall;
  public
    property OnDroped:TDropEvent read FOnDroped write SetOnDroped;
  end;

const
  Class_TMyDrop: TGUID = '{846C94F8-7649-11D2-9836-0000E82EA1B1}';

implementation

uses ComServ,unit1;

{ TTMyDrop }

function TTMyDrop.DragEnter(const dataObj: IDataObject;
  grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
var
  enumFormatEtc: IEnumFormatEtc;
  f:TFORMATETC;
  count:Integer;
  Found:boolean;
begin
  dataObj.EnumFormatEtc(DATADIR_GET,enumFormatEtc);
  Found:=false;
  while (enumFormatEtc.Next(1,f,@count)=S_OK)and (count>0) do
  begin
    if (f.cfFormat=CF_TEXT) then
    begin
      Found:=true;
      Break;
    end;
  end;
  if Found then
    Result:=S_OK
  else
  begin
    result:=E_INVALIDARG;
    dwEffect:=DROPEFFECT_NONE;
  end;
end;

function TTMyDrop.DragLeave: HResult;
begin
   result := S_OK;
end;

function TTMyDrop.DragOver(grfKeyState: Integer; pt: TPoint;
  var dwEffect: Integer): HResult;
begin
   result := S_OK;
end;

function TTMyDrop.Drop(const dataObj: IDataObject; grfKeyState: Integer;
  pt: TPoint; var dwEffect: Integer): HResult;
var
  enumFormatEtc: IEnumFormatEtc;
  f:TFORMATETC;
  count:Integer;
  Found:boolean;
  medium: TStgMedium;
begin
  dataObj.EnumFormatEtc(DATADIR_GET,enumFormatEtc);
  Found:=false;
  while (enumFormatEtc.Next(1,f,@count)=S_OK)and (count>0) do
  begin
    if (f.cfFormat=CF_TEXT) then
    begin
      Found:=true;
      Break;
    end;
  end;
  if not Found then
  begin
    result:=E_INVALIDARG;
    dwEffect:=DROPEFFECT_NONE;
    Exit;
  end;
  dataObj.GetData(f,medium);
  if medium.tymed =1 then
  begin
    if Assigned(fOnDroped) then
    begin
      fOnDroped(Self,PChar(GlobalLock(medium.hglobal)));
      GlobalUnLock(medium.hglobal);
    end;
    result := S_OK;
  end;

end;

procedure TTMyDrop.SetOnDroped(const Value: TDropEvent);
begin
  FOnDroped := Value;
end;

initialization
  TComObjectFactory.Create(ComServer, TTMyDrop, Class_TMyDrop,
    'TMyDrop', '', ciMultiInstance{, tmApartment});
end.

在自己的程序中,在FormCreate的时候,加入:

  OleInitialize(NIL);
  dd := TTMyDrop.Create;
  dd.OnDroped:=DoDroped;
  res1 := CoLockObjectExternal(dd, true, false);
  res := RegisterDragDrop(Handle, IDropTarget(dd));

其中,DoDroped在拖放发生时被调用:
procedure TForm1.DoDroped(Sender: TObject; Msg: Pchar);
begin
  ...//此处最好不要有太耗时的工作,因为被拖出的程序(比如说是浏览器)
     //要等待此事件结束
end;

在FormDestroy时:
  RevokeDragDrop(Handle);
  OleUninitialize;





一定要用COM对象吗?
用OLE2 接口就行了吧!
TTMyDrop = class(TInterfacedObject, IDropTarget)
这样用的资源更少,也不用包含与com有关的unit了,只用
包含activex就行了。
也不用产生TComObjectFactory。
没人做过吗?


你最多只能给49分,分数增加后超过了。, ?????????????什么意思?
强烈关注
我也是这样啊!
我想一次给别人一百分,,
但不能害得我分成几次给。。
看来这个问题没人能答

还有几位朋友都想送分,可惜没人能要。

flashGet 和 一拖即存 ,还有聊天宝宝, 网络收藏家都有这功能啊,为什么这就没人会呢?

我是不是该到delphi那边去问? :(
你想要吗?我刚刚写好了一个。呆会给你贴出来。
//////////////////////////////////////////////
//头文件

//---------------------------------------------------------------------------

#ifndef MyDropTargetH
#define MyDropTargetH
//---------------------------------------------------------------------------
#include "oleidl.h"
//---------------------------------------------------------------------------
class TDropBlasketMainForm;
class TMyDropTarget : public IDropTarget
{
public:
    TMyDropTarget(TDropBlasketMainForm* pForm);
    ~TMyDropTarget();
public:
    HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppv);
    ULONG STDMETHODCALLTYPE AddRef(void);
    ULONG STDMETHODCALLTYPE Release(void);

    HRESULT STDMETHODCALLTYPE DragEnter(IDataObject __RPC_FAR *pDataObj, DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect);
    HRESULT STDMETHODCALLTYPE DragOver(DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect);
    HRESULT STDMETHODCALLTYPE DragLeave( void);
    HRESULT STDMETHODCALLTYPE Drop(IDataObject __RPC_FAR *pDataObj, DWORD grfKeyState, POINTL pt,DWORD __RPC_FAR *pdwEffect);
private:
    int m_nRef;
    IDataObject* m_pDataObj;
    TDropBlasketMainForm* m_pForm;

    BOOL IsDataAvailable(IDataObject __RPC_FAR *pDataObj, CLIPFORMAT cfFormat);
};
#endif

/////////////////////////////////////////////////
//实现文件
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "frmDropBlasketMain.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

TMyDropTarget::TMyDropTarget(TDropBlasketMainForm* pForm)
{
    m_nRef = 0;
    m_pDataObj = NULL;
    m_pForm = pForm;
}
TMyDropTarget::~TMyDropTarget()
{
}

HRESULT STDMETHODCALLTYPE TMyDropTarget::QueryInterface(REFIID iid, void ** ppv)
{
    if (iid == IID_IUnknown)
    {
        *ppv = (IUnknown *)this;
        AddRef();
    }
    else if (iid == IID_IDropTarget)
    {
        *ppv = this;
        AddRef();
    }
    else
    {
        *ppv = NULL;
        return E_NOINTERFACE;
    }
    return S_OK;
}
ULONG STDMETHODCALLTYPE TMyDropTarget::AddRef(void)
{
    m_nRef++;
    return (ULONG)m_nRef;
}
ULONG STDMETHODCALLTYPE TMyDropTarget::Release(void)
{
    m_nRef--;
    if (m_nRef == 0)
    {
        delete this;
        return 0;
    }
    return (ULONG)m_nRef;
}

BOOL TMyDropTarget::IsDataAvailable(IDataObject __RPC_FAR *pDataObj, CLIPFORMAT cfFormat)
{
FORMATETC formatEtc = {cfFormat, 0, DVASPECT_CONTENT, -1, DWORD(-1)};

BOOL bRet = (pDataObj->QueryGetData(&formatEtc) == S_OK);
    return bRet;
}

HRESULT STDMETHODCALLTYPE TMyDropTarget::DragEnter(IDataObject __RPC_FAR *pDataObj, DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect)
{
    m_pDataObj = pDataObj;

if (!IsDataAvailable(m_pDataObj, CF_TEXT))
*pdwEffect = DROPEFFECT_NONE;
    else
        *pdwEffect = DROPEFFECT_LINK;
    return S_OK;
}
HRESULT STDMETHODCALLTYPE TMyDropTarget::DragOver(DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect)
{
if (!IsDataAvailable(m_pDataObj, CF_TEXT))
*pdwEffect = DROPEFFECT_NONE;
    else
        *pdwEffect = DROPEFFECT_LINK;
    return S_OK;
}

HRESULT STDMETHODCALLTYPE TMyDropTarget::DragLeave( void)
{
    return S_OK;
}
HRESULT STDMETHODCALLTYPE TMyDropTarget::Drop(IDataObject __RPC_FAR *pDataObj, DWORD grfKeyState, POINTL pt,DWORD __RPC_FAR *pdwEffect)
{
    HGLOBAL  hGlobal;
    LPCSTR   pData;

if (IsDataAvailable(pDataObj, CF_TEXT))
{
STGMEDIUM Stg;
     FORMATETC formatEtc = {CF_TEXT, 0, DVASPECT_CONTENT, -1, DWORD(-1)};
BOOL bValue = (pDataObj->GetData(&formatEtc, &Stg) == S_OK);
        if (bValue)
        {
     TCHAR *strText = (TCHAR*)GlobalLock(Stg.hGlobal);

     AnsiString strUrl = strText;

            m_pForm->AddURL(strUrl);

     GlobalUnlock(Stg.hGlobal);
    GlobalFree(Stg.hGlobal);
        }
}

    return S_OK;
}

//////////////////////////////////////////////
//使用:

在Form1:OnCreate里面:

    m_pDropTarget = NULL;
    m_pDropTarget = new TMyDropTarget(this);
    m_RegisterDragDrop(Handle, pDropTarget);

现在,就可以接受拖放了
首先声明,这部分代码,并不是从delphi那里搬过来的,而是看了mfc的部分代码,自己写成的,里面可能有不少的bug,不过,至少从ie里面,接受url拖放,是可行的了。

我的主业上面,有一个例子。
http://www.shijun.com/iel/cn/download.html
OK, 我测试完后就送分

叶老大, 学了一手,也要给人家送点分哦,不能白拿
试一试,
*.h
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
        void __fastcall FormCreate(TObject *Sender);
protected:
    BEGIN_MESSAGE_MAP
        VCL_MESSAGE_HANDLER(WM_DROPFILES, TMessage, trydo)
    END_MESSAGE_MAP(TForm)
    void _fastcall trydo(TMessage &Msg);
private:
            bool drawing;
            int xx,yy;
            // User declarations
public:

        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
*.cpp
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void _fastcall TForm1::trydo(TMessage &Msg)
{
char buffer[128];
int i,sum;
sum=DragQueryFile(HDROP(Msg.WParam),0xFFFFFFFF,NULL,0);//获得文件个数
ShowMessage(sum) ;
for(i=0;i<sum;i++)
{
DragQueryFile(HDROP(Msg.WParam),i,buffer,128);
ShowMessage(buffer);//取得文件名
}
DragFinish(HDROP(Msg.WParam));
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
DragAcceptFiles(Handle,true);        
}
//---------------------------------------------------------------------------
to easypaper() :

   兄台, 您提供的例子我用了一下, 总是有点问题 可以打个包给我吗?
   cool_calf@163.net   QQ:28551
   你的 BatchAdd 做得很不错。 按钮不错。 弹出菜单的兰色条不错。
   可惜在我的机子上运行时出错。

to czylj(夭夭) :
   你列出的程序是什么?


 
使用DragDrop 4.0 ,支持 BCB5.0
RegisterDragDrop之前用OleInitialize(NULL)初始化
接受拖放呀,
不好意思,看错了
coolcalf(牛犊初生):

你遇到的问题,可能就是bilyx所说的,

少了RegisterDragDrop之前用OleInitialize(NULL)初始化 

至于我的程序出错,是很正常的,因为这只是一个程序里面的部分内容,需要其他的程序支持(在我的叶上面有)。
to easypaper() 
咦,怎么http://www.shijun.com/iel/cn/download.html 上不了,说网站没创建的。
To wowboy(星仔):
==================
http://www.shijun.com/cn/iel/index.html
study
微评微软也推智能手表:是追求未来,还只是跟随? Firefox OS今年6月在5国首发 不含美国市场 8086/8088汇编指令手册 下一个被黑客攻击的对象—无线路由器 Windows Blue开始按钮或将回归,你怎么看? Evernote推孵化器 不占股权 基于C++和Lua的移动游戏引擎Leadwerks 3发布 苹果秘密测试iOS 7与iPhone 6 或将6月发布 酷6 CTO 陆坚:请先信任你的程序员 从电信联手i-Free,看运营商渠道的加速整合 “Animory”开发者分享HTML5游戏开发经验 Appflood SDK:连接中国与海外App流量交互平台 Apache Subversion 1.7.9正式发布! 微软IE浏览器5大动向 加速吸引开发者 开源的简繁转换库OpenCC支持Node.js 继Opera之后,Adobe表示将支持Google Blink 提高大型软件项目质量的一些实用型技术分享 谷歌推出Mirror API,开发者可为Google Glass开发应用 无需999,也不要499,99美元Linux超级计算机带回家 微软反击AWS:推出EC2并大幅降价,“价格战”正酣 Operation InVersion:拯救了LinkedIn的大修项目 五步走战略——Avocado在最初几周内迅速扩大30倍 NoSQL产品测评:Cassandra、MongoDB、Couchbase和Aerospike 谷歌眼镜开箱评测:比想象更精致 Pinterest谈实战经验:如何在两年内实现零到数百亿的月访问 初创公司Instart Logic:专为电子出版商和网站站长解决“痛点” 未来即卖芯片又卖服务!Intel收购软件厂商Mashery 继MSN之后,微软又开始整合Skype与Lync服务 阿里将推AMOS智能机 斥资10亿鼓励开发App AMPLab开发重构的Hadoop版本Tachyon:吞吐量要比HDFS高300多倍 一名理科生的创业路 两个窗口“挣饭吃”的问题:-)帮忙解决啦! 有没有和在下一样开发IBM电子商务平台的,有的请进来!! 为什么在配置Jaguar CTS的connection cache时ping会出错,出错信息为调用odbc出错 怎样做*.rtf文件??????应注意什么????? 求教:有无函数可控制webbrowser控件滚动条的滚动?!! ejb的事务处理 有急事求救,关于如何在WIN2000下安装我的显卡的驱动程序! 寻找Visual C++!!! 请问如何创建DLL? 请教一个简单的问题?? 请问用什么程序打开.DLL类型的文件???????????? 关于linux上网的问题 利用SHAppBarMessage是否不能直接制作自动隐藏的工具栏的?? OleServer错误! 选中LISTBOX的ITEM的时候触发的是什么事件? 抢分问题,如何把一个TStream存入数据库中的某个字段里? 快,能者不难,难者不能 急寻数值计算类软件---(如水质模拟)!!! 怎样取得CEditView中所显示的文字啊? 告诉我好么! 在线程中可使用回调函数吗? Socket里面ShutDown和Close函数分别有什么作用? CBC和VC相比好在哪里?CBC也能调用一切API,相比之下VC简直不能做数据库.但为什么就是招VCVB的比招CBC的多? wwwunix(木易)大侠请来令分。多谢你的帮助。 :) 下载文件夹的选择 立早在不在,还你分~~~~~~~~~~~~~~~~~ widlcatbb领分 请问做数据库开发 外面招人用VB的多还是用Delphi cbc的多?到底哪个好? 在flash中如何将色块转为线条模式? 我的电脑启动后不断运行超级解霸,不知怎么回事? 请问做数据库开发 外面招人用VB的多还是用Delphi cbc的多?到底哪个好?? QQ号码被盗,请各位大虾救命啊.高分送上. 请高手帮忙!!!!!!!!!!!!!!!!! 复合数据窗口如何存为HTML文件? :请问做数据库开发 外面招人用VB的多还是用Delphi cbc的多?到底哪个好??VB的优势在哪里? 我用Table连接Access 数据库,程序运行时出现 Database Login窗口,它是干什么的? flash中如何将色块转为线条模式? 是一个什么样的标签! 送分!!!!!!vb基础疑难! 这段程序中的SETFILTER()在没有事务对象和数据对象没有连接就可以用该函数吗?见内地的程序 关于postmessage 绿茶兄,你能告诉我你的QQ号吗? 我的为14588854 【 jinesc(杂牌军司令)(杂牌军是人民军队)接着! 】 请问:好的搜索引擎有那些?有没有新的上传思路? 考中程需要看哪些书? c/s模式的系统是什么样的概念,具体如何实现 关于vc调用调用CView的问题? 用jsp 使用sqlserver还是mysql与ODBC/JDBC连接哪个更方便? 大家好!请各位帮我参考一下学java应该用那种开发工具最好呀?谢谢!! 关于FTP代理服务器 为什么会出现闪屏现象 请问reportbuild6是否支持ado呢? 面心立方和体心立方晶体 哪个塑性好 在金刚石晶体的一个晶胞中含有几个碳原子?二氧化硅晶体的一个晶胞中有几个化学键答案给的是18和32..没明白怎么算出来的 18那个好像就是查出来的,没用原子晶胞共有问题计算, 怎样来计算晶胞的密度,棱长,摩尔质量速求 关于面心立方与六方密堆面心立方与六方密堆的原子密堆度(APF)均为0.74,配位数均为12,试从结构上用等径刚性球模型分析产生该结果的原因 . 金刚石晶胞中两个碳原子距离怎么表示?用109°28′吗 金刚石的晶胞是怎样的啊.具体一点.有几个C? 【无机化学-晶体】如图是硫化锌的种晶体结构,请问硫离子形成的八面体空隙是哪一个《硫离子六方密堆应该是两个八面体空隙》 最容易发生交滑移变形的晶体结构是什么 ALN晶胞有几个AL? 为什么晶体结构中没有底心立方结构? 材料科学基础计算含碳量为百分计算含碳量为百分之3.0的铁碳合金经727摄氏度共析转变后,相组成物、组织组成物的相对含量. 碳化硅(SiC)的一种晶体具有累死金刚石的结构,其中碳原子和硅原子的位置是交替的,在下列三种晶体1.金刚石 2.晶体硅 3.碳化硅中,它们的熔点从高到低的顺序是? 体积为1立方分米的正方体金属块全部浸入水中,它受到水向上的压力是20牛时,它受到水向下的压力是多少额额额额额额.g=9.8 六方ZnS的晶体结构是什么样的? 碳化硅晶体的结构是什么样的 一个晶胞内有几个碳原子? 一块金属块的体积为一立方分米,全部浸入水中为14.7牛,这时排开水的重力为多少?金属块的密度为多少? 六方zns 的晶体结构 金刚石是由碳原子所形成的正四面体结构向空间无限延伸而得到的具有空间网状结构的原子晶体.在立方体中,若一碳原子位于立方体中心,则与它直接相邻的四个碳原子位于该立方体互不相邻 一金属块体积为1立方分米 全部浸入水中弹簧示数为14.7牛 金属块的密度为多少?可以写的详细点吗 如何提高金属塑性?提高塑性的最常措施? 金刚石是由碳原子直接构成的吗 一金属快的体积为1立方分米,全部浸入水中时排开水的体积是多少?排开水的重力为多少?金属块所受的浮力? 什么是晶格和晶胞?金属中主要有那三种晶格类型?不用太详细必须写出要理着急 着急 着急 金刚石晶格可以破损是因为中间有原子破损,那如果金刚石所有原子都破损了呢?金刚石会不会全部破损呢?多长时间什么情况下才可以全部破损 最后 原子破损的难易程度和什么有关?原子键还 面心立方金体金属在室温下所有可能的滑移系 什么是金属的晶格? 假如金刚石的晶格中一颗原子被其他元素所替代而呈色,那这个元素参与共价键吗?天天作业网的那个孩子赶紧滚回家喝奶 求助:六方紧密堆积与面心立方堆积的区别?苏教版《化学:物质结构与性质》中,讲到金属原子排列时,老师引入六方紧密堆积,为ABA型,配位数为12,这些都可以理解,但在下仍对六方紧密堆积与 怎样提高金属的塑性 一颗钻石在常温环境下百万年后 失去光泽吗?比如原子衰变或晶格破损导致? 晶体的配位数如何计算,主要是面心立方的 面心立方晶格的晶面怎么画 假设一颗金刚石,晶格里包含氢原子和纯碳的晶格相比,硬度不如纯碳晶格的吗?1楼的当金刚石晶格产生缺陷时 会捕捉氢原子或其他原子填充晶格 NaCl晶体中阴离子的配位数为6,而Cl-按面心立方堆积的配位数是12.怎么都是配位数一会儿是6,一会儿又是12,这怎么理解? 如何理解"铜为面心立方晶格,1个单胞中有4个铜原子"?铜不是立方体心吗? 晶格破损说明晶格失掉原子,那那颗原子去了哪里? 直线不在平面上的表示符号! 一、填空题(每空1分,共20分) 1、金属材料中常见的晶格类型有: 、 、密排六方晶格. 2、按合金组元间相跪求大哥大姐 帮下忙 谢谢一、填空题(每空1分,共20分) 1、金属材料中常见的晶格 石墨与金刚石都是碳单质,为什么其颜色有这么大差别?难道光的反射与物体原子间的结构有关?石墨和金属都具有导电性,石墨与金属的性质差不多(柔软,固体,单质)是不是电阻的大小与其原 平面的立方计算,建筑类的我有一个楼面需要水泥,不知道要多少个立方的材料请高手解答下.平台面积:38.5平方水泥需要15CM 大梁:29.5米,20宽,30高 还有拦何:27.8米,厚度,8CM 麻烦大师们帮我计 铁碳合金的组元纯铁 在固态下随着温度的变化发生的晶格类型的转变里面的体心立方 和 面心立方是什么意思还有看不懂铁碳合金相图,理解不了,能指导下?谢谢 由碳原子构成的石墨、金刚石、碳60原子的物理性质为什么不同 CuO是面心立方晶体还是体心立方晶体 cscl晶胞里有多少个结构单元 碳原子构成的金刚石就是一种——水分子是由——和——填空 金属的晶体结构是哪样的 金刚石最简晶胞是什么 已知金刚石的晶胞如图,金刚石中C-C键长为1.55×10-8cm,求金刚石的晶体密度?小弟在线=答案阿(怎么也算不出3.47-3.5g/cm3)难道答案给错了? 金属钠的性质实验内容和操作步骤1.用镊子取出一块钠,用滤纸吸干煤油,然后放在玻璃片上,用小刀切下绿豆大小的一小粒.硬度:切口:3.(1)另切一小粒钠放入坩埚中,放在泥三角上加热。当 金刚石的结构上最小环上有六个碳原子,但每碳原子为几个环所共有? 怎样通过金刚石的晶体结构算出密度?(C-C键长0.115nm) 金属铜的晶体结构是什么样的? 金刚石和石墨的结构中碳原子的排列方式相同吗? 金刚石及具有金刚石结构的晶体是高中选修《物质的结构与性质》中的一道选作题,相关内容越多越好 金属钠的性质有哪些? 在金刚石的网状结构中,碳原子数与共价键数之比是多少 晶胞密度如何计算 氯化钠和氯化铯的化学式可用同一通式(AB型)表示,但晶体结构却不相同, 在金刚石的晶体结构中,一个碳原子被几个最小环共用 怎么求晶胞密度、体积
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn