當前位置:首頁 » 比特幣問答 » 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;
}
}

熱點內容
以太坊價格172美金算低嗎 發布:2025-07-12 21:52:27 瀏覽:720
對元宇宙的極點展望 發布:2025-07-12 21:43:19 瀏覽:877
每天簽到就能掙比特幣 發布:2025-07-12 21:28:01 瀏覽:840
比特幣庫容 發布:2025-07-12 21:26:08 瀏覽:252
區塊鏈醫療設備 發布:2025-07-12 21:21:13 瀏覽:639
五年前偷電挖btc的人 發布:2025-07-12 21:19:39 瀏覽:556
以太坊官網礦機 發布:2025-07-12 21:19:34 瀏覽:882
火區的變形金剛測評元宇宙大帝 發布:2025-07-12 21:19:33 瀏覽:588
比特幣助手哪個好 發布:2025-07-12 21:09:49 瀏覽:962
區塊鏈菩提鏈 發布:2025-07-12 21:09:00 瀏覽:72