如何实现以下功能???????(50分)

  • 主题发起人 主题发起人 zfpcb
  • 开始时间 开始时间
Z

zfpcb

Unregistered / Unconfirmed
GUEST, unregistred user!
我的Image中有一BMP图片,当我双击该图片时就用PhotoShop打开这副图片,如何做使得我在
PhotoShop中修改了图片,保存后,Image中显示的图片也跟着变了?
 
在代码中指定IMAGE所显示的图片。
 
保存后重新load一次。
 
调用OnChange的方法来刷新显示的图片即可!
 
可以重新LOAD,可是我怎么才能知道PHOTOSHOP已经保存了修改????
 
在系统保存该文件的事件中重新load以下,系统事件Delphi有提供
 
wlmmlw,能说的明白一点吗?如何得到PHOTOSHOP的保存事件已经响应。
 
“可是我怎么才能知道PHOTOSHOP已经保存了修改????”
你知道吗?
打开档案总管,选中C根目录。
开DOS,用EDIT在C根目录下新增一文本文件,当EDIT保存文件时
注意档案总管,发现什么了?它右边的文件列表里会出现刚才保存的文件。
知道这用什么方法实现吗?
我现在也忘了这种方法的叫法,不过你要的应该就是这个。
 
yhaochuan
我不是要新保存一个文件,PHOTOSHOP和IMAGE用的都是一个文件。
 
读文件的时间
 
在本程序被激活时 LOAD 就行,管它保没保存,没保存就 LOAD 原来的,
保存了就 LOAD 新的, 想想逻辑关系, 对不。


 
如果你用DELPHI6的话有个办法:
当调用PhotoShop后使用ShellChangeNotifier控件,监控你那图形文件所在的目录有没有发生变化
(比如有没有写入啊,大小有没有改变啊等待,可以在NotifyFilters中设置)
如果有的话,再判断你那个图形文件的文件大小(或修改时间)有没有变化。
如果有就重新装载你的图形文件,OK。
做法:
1、将ShellChangeNotifier控件据有的事件Filters都设为False,
2、在装入图形文件时先保存此文件的资料:文件大小。
3、调用PhotoShop后,设定ShellChangeNotifier控件的ROOT为图形文件所在的目录,
并将ShellChangeNotifier的nfWritechange设为TRUE。当有在这个目录写的时候做一个通知。
4、写一过程,在ShellChangeNotifier的OnChange里调用此过程。
5、这个过程里面做的事情是读取指定图形文件的大小资料,和先前保存的资料对比,
如果有变化则将文件重新装载。
6、在适当时候(比如用户观看其它图形文件)时将ShellChangeNotifier据有事件Filters设为False
重新开始。

还有一种方法,就是调用PhotoShop,然后等PhotoShop结束后继续运行程序。
这方面的内容请看网上有关“如何调用一外在程序,并等其运行结束”方面的内容,
因为我也没这样子做过。

又想到有关这方面的事情了:
你们有没有发现,在用Delphi打开一.Pas文件时,如果我们用另一Delphi打开同一个.Pas文件
假设第二个Delphi修改了这个文件的内容,保存后,转到第一个Delphi的时候,它会提示
“Module Path/filename's time/date Changed.Reload?”
它是怎么做的呢?我想了想,明白了,它的这个做法,很适合你的程序。
它的做法是:程序被推让到最前,成为当前程序时,它判断据有它已经装入的文件的时间和日期和
目录中现在的时间和日期比较,如果不一样,则提醒用户要不要重新装载。
你的程序也可以用这种方法啊。
 
多人接受答案了。
 
后退
顶部