我完成它后,我需要安全地删除我的输入文件,此时我用零覆盖所有数据,这很麻烦,因为我的临时文件夹变满了旧文件,文件名也是安全问题.
我不希望将它们移动到回收站,而是希望它们跳过它并消失,这与字节擦除相关,因为数据恢复软件可以从回收站之外恢复项目.由于名称也很重要,我需要在删除它们之前重命名它们.
我最近(今天)开始在Delphi中使用我的注册表进行meddeling.:)所有工作正常,我的自定义文件类型现在打开我的程序,但有2个问题,我无法解决.
1)我想要从所有文件类型"打开"的选项,所以我添加
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
reg.LazyWrite := false;
reg.OpenKey('*\OpenWithList\EncryptionSystem', true);
reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"');
reg.CloseKey;
reg.free;
Run Code Online (Sandbox Code Playgroud)
如果我使用regedit查看注册表,它肯定会出现,但是当我右键单击一个文件并选择打开它时它不存在...
所以我加了这个
reg.OpenKey('*\shell\Encrypt\command', true);
reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"');
reg.CloseKey;
Run Code Online (Sandbox Code Playgroud)
这适用于每个文件,但选项位于顶部,带有"打开"和"编辑".我有点希望它像大多数程序一样出现在菜单子部分中...我意识到我需要使用shellext但我不理解这些如何与上下文菜单处理程序一起工作的结构...我已经学会了所有无论如何我从阅读注册表...我知道shellext的名称出现在".*"后面,但至于大胡言乱语的含义我不知道.
我目前正在使用:
if ParamStr(1)<>'%1' then
begin
address.Text:=ParamStr(1);
autoconfigfile;
end;
Run Code Online (Sandbox Code Playgroud)
获取用于通过文件关联打开文件的文件的名称.
我现在想要开发对多个文件进行操作的能力.即如果我选择5个文件并右键单击并选择打开"EncryptionSystem".我有注册表项:
reg.OpenKey('*\shell\Encrypt\command', true);
reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"');
reg.CloseKey;
Run Code Online (Sandbox Code Playgroud)
为所有文件添加右键单击打开功能.然后我想要检测的能力
在delphi7我有一个函数,我需要返回一个数组作为结果类型b
"function createsbox(key:tkey):byte的数组[0..255];" 这是不允许的,它期望"识别器预期但发现阵列"是错误抛出.如果我声明一个记录类型的数组似乎工作正常,但对一个函数这样做似乎没有意义.
我有这个代码,
showmessage('C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID);
if removedir('C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID) then
showmessage('Removed')
else
showmessage('Failed');
Run Code Online (Sandbox Code Playgroud)
消息显示C:\TEMP\0并且该目录确实存在,因为程序先前创建它并使用其中的文件然后删除它们.我可以看到文件和目录,所以我知道他们在那里.程序成功删除文件但不删除目录.
如果我对其工作的目录进行硬编码 - 这意味着它接受字符串
C:\TEMP\0但不接受C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID两者等同于C:\TEMP\0.我无法对这些目录进行硬编码,所以我该怎么办?如何从字符串+字符串转换removedir()为期望的字符串.我仔细研究了Delphi的基础知识,并期待一个字符串.
我很困惑,因为string + string = string.到底是怎么回事?
我最初有这样的提交按钮
<form action="<?php $self ?>" method="post" >
<input name="search" type="hidden" >
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "search">
</form>
Run Code Online (Sandbox Code Playgroud)
它使这个声明成真
if(isset($_POST['Search'])){}
Run Code Online (Sandbox Code Playgroud)
一时间一切都很顺利,然后我将提交按钮设为图像
<form action="<?php $self ?>" method="post" >
<input name="Search" type="hidden" />
<INPUT value="Search" TYPE="image" SRC="search.jpg" BORDER="0" ALT="Search">
</form>
Run Code Online (Sandbox Code Playgroud)
更多时间一切都很好,直到我想把这个按钮变成文本链接..
我在互联网上看了很多东西,在那里我了解到它不能在html中完成但是需要java脚本..所以我试着使用这段代码,但它不再使我的声明真实.
这是我找到的javascript提交按钮
<a href='javaScript:document.FORM_NAME.submit()'>Submit</a>
Run Code Online (Sandbox Code Playgroud)
我对你的两个问题向导有1)我在哪里提交提交的价值?2)如何让这个替换我早期的提交按钮?
上下文
我正在绘制画布,它会定期更新并闪烁.逻辑思考我认为这是因为我的重绘方法清除了Canvas,然后一次将一个元素绘制到画布上.所以我的想法是写一个Timage,然后将图片设置为Timage.
信息
这是我的代码
procedure Tmainwindow.Button3Click(Sender: TObject);
var bufferpicture:TImage;
begin
//draw stuff to bufferpicture
//***
//draw stuff to bufferpicture
myrealpicture.picture:=bufferpicture.picture;
end;
Run Code Online (Sandbox Code Playgroud)
运行代码后,我得到一个错误显示如下.

问题 如何将画布设置为另一个画布,因为画布是只读属性?或者有更好的方法来做我想做的事情?
背景
我正在制作一个简单的程序来记录数据并使用.MDB数据库进行一些计算.通过Jet 4访问.
目标
我希望能够从主键上的sql查询中获取/从任何字段中获取值(一个结果)
当前
我目前已连接到数据库,我可以通过"数据控件"查看编辑数据
如下所示:

题
如何访问数据库中的数据,以便将值放入合适的变量然后将其写回?
我有这个代码:
$distance= -1 ;//default
//distance calc
if($dgalaxy = $galaxy){
if(($dx = $x) && ($dy = $y))
{
//inter planitary currently unknown formula
}else{
$distance = round(Sqrt(pow(($dx-$x),2)+pow(($dy-$y),2)));//interstllar
}
}else{//intergalatic
if ($galaxy < $dgalaxy){
$distance = (((9-fmod($galaxy,10))*200)+2000+(fmod($dgalaxy,10)*200));//anti clockwise galactic
}else{
$distance = (((fmod($galaxy,10))*200)+2000+(fmod(9-$dgalaxy,10)*200));//clockwise galactic
}
}
Run Code Online (Sandbox Code Playgroud)
它应该为每个计算返回一个值,除了行星间条款.对于星际(当($ dgalaxy = $ galaxy)和x,y坐标不同时)这运行星际公式,这很好.
但是,当$ dgalaxy!= $ galaxy时,它返回-1,这意味着它没有运行任何一个银河距离计算!
我做错了什么,我该如何解决?