当前位置:首页 » 比特币问答 » delphi比特币

delphi比特币

发布时间: 2021-07-23 23:55:30

⑴ delphi7如何提取数据库中的图片

unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB,jpeg, DBCtrls, Mask;type
TForm1 = class(TForm)
con1: TADOConnection;
qry1: TADOQuery;
img1: TImage;
btn1: TBitBtn;
btn2: TBitBtn;
OpenDialog1: TOpenDialog;
lbl1: TLabel;
edt1: TEdit;
lbl2: TLabel;
edt2: TEdit;
dbnvgr1: TDBNavigator;
ds1: TDataSource;
qry2: TADOQuery;
img2: TImage;
btn3: TBitBtn;
procere FormShow(Sender: TObject);
procere btn1Click(Sender: TObject);
procere btn2Click(Sender: TObject);
procere btn3Click(Sender: TObject);
procere dbnvgr1Click(Sender: TObject; Button: TNavigateBtn);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procere TForm1.btn1Click(Sender: TObject);
var
ms:TMemoryStream;
jpg:TJPEGImage;
begin
ms:=TMemoryStream.Create;
jpg:=TJPEGImage.Create;
jpg.Assign(img1.Picture.Graphic);
jpg.SaveToStream(ms);
ms.Position:=0;
qry1.SQL.Clear;
qry1.SQL.Add('Insert Into TIMG(PNAME,PINFO,PPHOTO) values(:pname,:pinfo,:pphoto)');
qry1.Parameters.ParamByName('pname').Value:=edt1.Text;
qry1.Parameters.ParamByName('pinfo').Value:=edt2.Text;
qry1.Parameters.ParamByName('pphoto').LoadFromStream(ms,ftBlob);
qry1.ExecSQL;
jpg.Free;
ms.Free;
end;procere TForm1.btn2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
img1.Picture.LoadFromFile(OpenDialog1.FileName);
end;procere TForm1.btn3Click(Sender: TObject);
var
ms:TMemoryStream;
jpg:TJPEGImage;
begin
if not qry2.FieldByName('PPHOTO').IsNull then
begin
ms:=TMemoryStream.Create;
jpg:=TJPEGImage.Create;
TBlobField(qry2.FieldByName('PPHOTO')).SaveToStream(ms);
ms.Position:=0;
jpg.LoadFromStream(ms);
img2.Picture.Assign(jpg);
end;
end;procere TForm1.dbnvgr1Click(Sender: TObject; Button: TNavigateBtn);
begin
btn3.Click;
end;procere TForm1.FormShow(Sender: TObject);
begin
con1.Close;
con1.ConnectionString:='Driver=Firebird/Interbase(r) driver;UID=SYSDBA;PWD'+
'=123456;Dbname='+ExtractFilePath(Application.ExeName)+'IMG.FDB';
con1.LoginPrompt:=False;
con1.Connected:=True; qry2.Active:=True;
//img2.DataField:='PPHOTO';
end;end. 我用的是Firebird数据库,存放图片的字段名是PPHOTO,数据类型是BLOB,其他数据库应该也差不多。

⑵ 在delphi中怎么利用button按钮删除ListBox里选中的项

没用过Rz控件;
你按btn5进行删除,现有的代码是只有你选中的项才会被删除,你删除一次以后,就没有选中的项了。

不明白你要修改什么。

⑶ delphi代码问题 SetControlVisibleFalse(btn1,btn2,btn3,btn4,btn7,btn8,btn7,btn8,btn5,btn6)

应该是自定义的一个过程,把参数中的控件设置为不可见(Visible:=False)。

⑷ 如何在Delphi里使用TMediaPlayer控件获取一个MP3文件的准确长度

Mp3size:=MediaPlayer1.Lengthdiv1000;
minutesMax:=Trunc(Mp3size/60);//分
SecondMax:=Mp3sizemod60;//秒

length 获取的是毫秒。

⑸ delphi怎么控制windows录音机

下面写的很详细啦,自己琢磨琢磨,如果实在写不出来,我可以帮你写源码
但最终希望你掌握理解,而不是抄代码
如果需要给我网络留言,并留下邮箱
---------------------------------------------
如何用Delphi制作录音程序
陈经韬

Delphi是Inprise(前Borland)公司的优秀的可视化编程工具,它自带的Mediaplayer控件是开发多媒体的利器。用它几分钟就可以做出一个象解霸一样可以播放多媒体文件的程序来。但可能很少人知道,用它也可以做一个录音程序。
运行Delphi,在System页拖一个Mediaplayer控件到窗体上,默认名为Mediaplayer1。由于我们的程序是采用自己的按钮,所以将Mediaplayer1的Visible属性设置为False,其它属性保持默认值。再放两个按钮Button1和Button2。Button1的属性Name改为BtStart,Caption改为"开始录音", Button2的属性Name改为BtStop,Caption改为"停止录音",Enabled属性改为False。然后切换窗口到代码窗口,开始书写代码。
程序中,我们定义了一个Wav文件的文件头格式,录音时先创建一个只有文件头的Wav文件,然后将Mediaplayer1录制下来的声音写进文件。其中CreateWav过程的几个参数意义如下:第一个channels代表声道,取1时代表单声,取2时代表立体声。resolution也只有两个值可以选择,取8时代表8位声音,取16时代表16位声音,rate则代表声音频率,如11025,22050, 44100。值越大则声音越清晰,当然,所录制的文件也越大。最后一个参数则代表对应的文件名称了。所以CreateWav可以有以下形式:
CreateWav(1,8,11025,'C:\abc.wav');//在C盘根目录下创建一个8位单声道频率为11025的名为abc.wav的Wav文件
CreateWav(2,16,44100,'C:\abc.wav');//在C盘根目录下创建一个16位立体声道频率为44100的名为abc.wav的Wav文件

外国一个很出名的用Delphi编写的远程控制软件Netbus有一个声音监听功能,就是用本文的方法写的。它先把对方的声音录制下来,然后传送回来,达到监听对方的目的。当然,前提是对方必须安装有话筒,否则监听到的是对方播放的声音(如打开解霸或者Readplay播放,运行本程序,就可以把播放的声音录制下来了)。
实际上,现在的网络声音传播技术已经发展到一定阶段,语音对讲和IP电话等也开始成熟。不过它们采用的是VOX格式或者ACM格式,具体代码可以在我的主页http://Lovejingtao.126.com下载。但如果对VOX或者ACM格式不熟悉的朋友,也可以用本文的方法来制作自己的“录音机”。至于如何调用系统自带的avifil32.dll来进行网络视频播放,在有机会时再跟大家交流吧。
本程序在Pwin98+Delphi5下通过。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, MPlayer;

type
TWavHeader = record //定义一个Wav文件头格式
rId : longint;
rLen : longint;
wId : longint;
fId : longint;
fLen : longint;
wFormatTag : word;
nChannels : word;
nSamplesPerSec : longint;
nAvgBytesPerSec : longint;
nBlockAlign : word;
wBitsPerSample : word;
dId : longint;
wSampleLength : longint;
end;
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
BtStart: TButton;
BtStop: TButton;
procere CreateWav(channels : word; resolution : word; rate : longint; fn : string);//自定义写一个Wav文件头过程
procere BtStartClick(Sender: TObject);
procere BtStopClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procere TForm1.CreateWav( channels : word; { 1(单声)或者2(立体声) }
resolution : word; { 8或者16,代表8位或16位声音 }
rate : longint; { 声音频率,如11025,22050, 44100}
fn : string { 对应的文件名称 } );
var
wf : file of TWavHeader;
wh : TWavHeader;
begin
wh.rId := $46464952;
wh.rLen := 36;
wh.wId := $45564157;
wh.fId := $20746d66;
wh.fLen := 16;
wh.wFormatTag := 1;
wh.nChannels := channels;
wh.nSamplesPerSec := rate;
wh.nAvgBytesPerSec := channels*rate*(resolution div 8);
wh.nBlockAlign := channels*(resolution div 8);
wh.wBitsPerSample := resolution;
wh.dId := $61746164;
wh.wSampleLength := 0;

assignfile(wf,fn); {打开对应文件 }
rewrite(wf); {移动指针到文件头}
write(wf,wh); {写进文件头 }
closefile(wf); {关闭文件 }
end;
procere TForm1.BtStartClick(Sender: TObject);
begin
try
//在程序当前目录下创建一个Wav文件Temp.wav
CreateWav(1, 8, 11025, (ExtractFilePath(Application.ExeName)+ 'Temp.wav'));
MediaPlayer1.DeviceType := dtAutoSelect;
MediaPlayer1.FileName := (ExtractFilePath(Application.ExeName)+ 'Temp.wav');
MediaPlayer1.Open;
MediaPlayer1.StartRecording;
BtStart.Enabled:=false;
BtStop.Enabled:=true;
except
BtStart.Enabled:=True;
BtStop.Enabled:=false;
Application.MessageBox('媒体设备初始化失败!','错误',MB_ICONERROR+MB_OK);
end;
end;

procere TForm1.BtStopClick(Sender: TObject);
begin
try
MediaPlayer1.Stop;
MediaPlayer1.Save;
MediaPlayer1.Close;
Application.MessageBox('声音录制完毕!','信息',MB_ICONINFORMATION+MB_OK);
BtStart.Enabled:=True;
BtStop.Enabled:=false;
except
Application.MessageBox('保存声音文件出错!','错误',MB_ICONERROR+MB_OK);
BtStart.Enabled:=True;
BtStop.Enabled:=false;
end;
end;
end.
补充:1、录制的文件播放时可能要把音频属性的Wav调大。
2、如果系统安装了其它一些音频驱动程序,则可能录制的Wav文件大小为零,但会同时生成一个TMP结尾的文件,将其扩展名改为Wav就是录制的声音文件。但这种情况很少发生。(机会几乎为零^-^)
3、本程序在运行解霸和Replayer下录制声音通过。

⑹ C#调用delphi动态库,总是报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

你看看是不是调用了已调用资源,这样会出现类似问题;例如:每次读取的图片名字都是一样photo.bmp。所以第一次读取成功后,刚存入的图片还在使用中,第二次读取一张又以同样的名字放到这个路径下边,这就需要覆盖第一次读取的图片,而第一次读取的图片正在使用,就会出现错误。
你的这个是不是先占用了端口,然后又用次调用此端口;或者调用后没有关闭。或者你读写一个地址,接着又读写这个地址;只看你的数据结构很难判断。一般情况都是这样
希望对你有用。

⑺ 为什么点击image assing 的时候 会在别的地方出现残像 delphi

找到所有的答案,问题出遗憾的是我没有找到在这种情况下的解决方案。我有下面的代码 Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 ); namedWindow( "Contours", CV_WINDOW_AUTOSIZE ); for( int i = 0; i< contours.size(); i++ ){ Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); drawContours( drawing, contours_poly, i, color, 1, 8, vector(), 0, Point() ); rectangle( drawing, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0 ); drawing.at(centroid[i])[0]=color[0]; drawing.at(centroid[i])[1]=color[1]; drawing.at(centroid[i])[2]=color[2]; circle(drawing, centroid[i], 5, color, 3,8,0); cout<(...)(其中b这里。 你可以阅读CV_xxtCn作为 XX:比特数 T:类型(F=浮点型,S=符号整数,U=无符号整数) N:通道数 本文标题 :使用垫:: AT&LT; Vec3i和GT;点无assing正确的像素

⑻ DELPHI XE2 的串口控件MSCOMM怎么安装和应用

Mscomm控件默认存在于delphi的ActiveX面板上,如果不存在,需要先导入该控件,步骤 :通过菜单 component---Import Activex component 打开Import Acitvex对话框。

如果列表中找不到该Microsoft Comm Control,那么点Add按钮找到Mscomm32.ocx,最后点Install..即可。

⑼ 谁知道爱尔克的灯光的传说

这是巴金的一篇散文。

爱尔克的灯光

傍晚,我靠着逐渐黯淡的最后的阳光的指引,走过十八年前的故居。这条街、这个建筑物开始在我的眼前隐藏起来,像在躲避一个久别的旧友。但是它们的改变了的面貌于我还是十分亲切。我认识它们,就像认识我自己。还是那样宽的街,宽的房屋。巍峨的门墙代替了太平缸和石狮子,那一对常常做我们坐骑的背脊光滑的雄狮也不知逃进了哪座荒山。然而大门开着,照壁上“长宜子孙”四个字却是原样地嵌在那里,似乎连颜色也不曾被风雨剥蚀。我望着那同样的照壁,我被一种奇异的感情抓住了,我仿佛要在这里看出过去的十九个年头,不,我仿佛要在这里寻找十八年以前的遥远的旧梦。

守门的卫兵用怀疑的眼光看我。他不了解我的心情。他不会认识十八年前的年轻人。他却用眼光驱逐一个人的许多亲密的回忆。

黑暗来了。我的眼睛失掉了一切。于是大门内亮起了灯光。灯光并不曾照亮什么,反而增加了我心上的黑暗。我只得失望地走了。我向着来时的路回去。已经走了四五步,我忽然掉转头,再看那个建筑物。依旧是阴暗中一线微光。我好像看见一个盛满希望的水碗一下子就落在地上打碎了一般,我痛苦地在心里叫起来。在这条被夜幕覆盖着的近代城市的静寂的街中,我仿佛看见了哈立希岛上的灯光。那应该是姐姐爱尔克点的灯吧。她用这灯光来给她的航海的兄弟照路。每夜每夜灯光亮在她的窗前,她一直到死都在等待那个出远门的兄弟回来。最后她带着失望进入坟墓。

街道仍然是清静的。忽然一个熟习的声音在我耳边轻轻地唱起了这个欧洲的古传说。在这里不会有人歌咏这样的故事。应该是书本在我心上留下的影响。但是这个时候我想起了自己的事情。

十八年前在一个春天的早晨,我离开这个城市、这条街的时候,我也曾有一个姐姐,也曾答应过有一天回来看她,跟她谈一些外面的事情。我相信自己的诺言。那时我的姐姐还是一个出阁才只一个多月的新嫁娘,都说她有一个性情温良的丈夫,因此也会有长久的幸福的岁月。

然而人的安排终于被“偶然”毁坏了。这应该是一个“意外”。但是这“意外”却毫无怜悯地打击了年轻的心。我离家不过一年半光景,就接到了姐姐的死讯。我的哥哥用了颤抖的哭诉的笔叙说—个善良女性的悲惨的结局,还说起她死后受到的冷落的待遇。从此那个作过她丈夫的所谓温良的人改变了,他往一条丧失人性的路走去。他想往上爬,结果却不停地向下面落,终于到了用鸦片烟延续生命的地步。对于姐姐,她生前我没有好好地爱过她,死后也不曾做过一样纪念她的事。她寂寞地活着,寂寞地死去。死带走了她的一切,这就是在我们那个地方的旧式女子的命运。

我在外面一直跑了十八年。我从没有向人谈过我的姐姐。只有偶尔在梦里我看见了爱尔克的灯光。一年前在上海我常常睁起眼睛做梦。我望着远远的在窗前发亮的灯,我面前横着一片大海,灯光在呼唤我,我恨不得腋下生出翅膀,即刻飞到那边去。沉重的梦压住我的心灵,我好像在跟许多无形的魔手挣扎。我望着那灯光,路是那么远,我又没有翅膀。我只有一个渴望:飞!飞!那些熬煎着心的日子!那些可怕的梦魇!

但是我终于出来了。我越过那堆积着像山一样的十八年的长岁月,回到了生我养我而且让我刻印了无数儿时回忆的地方。我走了很多的路。

十九年,似乎一切全变了,又似乎都没有改变。死了许多人,毁了许多家。许多可爱的生命葬入黄土。接着又有许多新的人继续扮演不必要的悲剧。浪费,浪费,还是那许多不必要的浪费——生命,精力,感情,财富,甚至欢笑和眼泪。我去的时候是这样,回来时看见的还是一样的情形。关在这个小圈子里,我禁不住几次问我自己:难道这十八年全是白费?难道在这许多年中间所改变的就只是装束和名词?我痛苦地搓自己的手,不敢给一个回答。

在这个我永不能忘记的城市里,我度过了五十个傍晚。我花费了自己不少的眼泪和欢笑,也消耗了别人不少的眼泪和欢笑。我匆匆地来,也将匆匆地去。用留恋的眼光看我出生的房屋,这应该是最后的一次了。我的心似乎想在那里寻觅什么。但是我所要的东西绝不会在那里找到。我不会像我的一个姑母或者嫂嫂,设法进到那所已经易了几个主人的公馆,对着园中的花树垂泪,慨叹着一个家族的盛衰。摘吃自己栽种的树上的苦果,这是一个人的本分。我没有跟着那些人走一条路,我当然在这里找不到自己的脚迹。几次走过这个地方,我所看见的还只是那四个字:“长宜子孙”。“长宜子孙”这四个字的年龄比我的不知大了多少。这也该是我祖父留下的东西吧。最近在家里我还读到他的遗嘱。他用空空两手造就了一份家业。到临死还周到地为儿孙安排了舒适的生活。他叮嘱后人保留着他修建的房屋和他辛苦地搜集起来的书画。但是儿孙们回答他的还是同样的字:分和卖。我很奇怪,为什么这样聪明的老人还不明白一个浅显的道理,财富并不“长宜子孙”,倘使不给他们一个生活技能,不向他们指示一条生活道路!“家”这个小圈子只能摧毁年轻心灵的发育成长,倘使不同时让他们睁起眼睛去看广大世界;财富只能毁灭崇高的理想和善良的气质,要是它只消耗在个人的利益上面。

“长宜子孙”,我恨不能削去这四个宇!许多可爱的年轻生命被摧残了,许多有为的年轻心灵被囚禁了。许多人在这个小圈子里面憔悴地捱着日子。这就是“家”!“甜蜜的家”!这不是我应该来的地方。爱尔克的灯光不会把我引到这里来的。

于是在一个春天的早晨,依旧是十八年前的那些人把我送到门口,这里面少了几个,也多了几个。还是和那次一样,看不见我姐姐的影子,那次是我没有等待她,这次是我找不到她的坟墓。一个叔父和一个堂兄弟到车站送我,十八年前他们也送过我一段路程。

我高兴地来,痛苦地去。汽车离站时我心里的确充满了留恋。但是清晨的微风,路上的尘土,马达的叫吼,车轮的滚动,和广大田野里一片盛开的菜子花,这一切驱散了我的离愁。我不顾同行者的劝告,把头伸到车窗外面,去呼吸广大天幕下的新鲜空气。我很高兴,自己又一次离开了狭小的家,走向广大的世界中去!

忽然在前面田野里一片绿的蚕豆和黄的菜花中间,我仿佛又看见了一线光,一个亮,这还是我常常看见的灯光。这不会是爱尔克的灯里照出来的,我那个可怜的姐姐已经死去了。这一定是我的心灵的灯,它永远给我指示我应该走的路。

⑽ Delphi中,怎么把已有的usb通讯改成串口com通讯

//创建一个串口通讯
SerialPort CurrentPort = null;
CurrentPort = new SerialPort();
CurrentPort.ReadBufferSize = 128;
CurrentPort.PortName = comName; //端口号
CurrentPort.BaudRate = bandRate; //比特率
CurrentPort.Parity =parity;//奇偶校验
CurrentPort.StopBits = stop;//停止位
CurrentPort.DataBits = databit;//数据位
CurrentPort.ReadTimeout = 1000; //读超时,即在1000内未读到数据就引起超时异常
//绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理
CurrentPort.DataReceived += Sp_DataReceived;
CurrentPort.Open();

定义一个变量 byte[] receiveStr;

//绑定的事件处理函数
private static void Sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
SerialPort sp = sender as SerialPort;
if (sp == null)
return;
byte[] readBuffer = new byte[sp.ReadBufferSize];
sp.Read(readBuffer, 0, readBuffer.Length);

//赋值
receiveStr=readBuffer;//当然你可以通过转换将byte[]转换为字符串。
}

//你要求的按钮事件可以这么写
private void button1_Click(object sender, EventArgs e)
{
if(receiveStr!=null)
{
变量 xxx=receiveStr;
}
}

热点内容
比特币1确认2确认6确认 发布:2025-07-13 02:39:10 浏览:798
深圳地铁数字货币 发布:2025-07-13 02:26:13 浏览:555
合作合约期到期会怎么样 发布:2025-07-13 02:21:35 浏览:904
冷钱包销毁密钥 发布:2025-07-13 01:59:09 浏览:329
停车位不符合约定事实怎么处理 发布:2025-07-13 01:56:48 浏览:509
国家对金融区块链 发布:2025-07-13 01:39:18 浏览:110
区块链的交易为啥用支付宝 发布:2025-07-13 01:35:49 浏览:459
上海能买到蚂蚁矿机吗 发布:2025-07-13 01:33:52 浏览:911
去快处中心需要开车去吗 发布:2025-07-13 01:33:51 浏览:326
目前挖出来btc也多少 发布:2025-07-13 01:04:32 浏览:817