在这个网站上,我找到了如何将音乐添加到.res文件中,然后在delphi .exe中使用它.这是启动WAVE歌曲的代码.
procedure TForm2.FormActivate(Sender: TObject);
var
hFind, hRes: THandle;
Song: PChar;
begin
hFind := FindResource(HInstance, 'SonicSong', 'WAVE') ;
if hFind <> 0 then begin
hRes:=LoadResource(HInstance, hFind) ;
if hRes <> 0 then begin
Song:=LockResource(hRes) ;
if Assigned(Song) then SndPlaySound(Song, snd_ASync or snd_Memory) ;
UnlockResource(hRes) ;
end;
FreeResource(hFind) ;
end;
end;
Run Code Online (Sandbox Code Playgroud)
所以我想知道的是如何在不关闭应用程序的情况下停止播放音乐?
我正在尝试使用 Scrapy 登录网站,但收到的响应是仅包含内联 JavaScript 的 HTML 文档。JS 重定向到我想从中抓取数据的页面。但是 Scrapy 不执行 JS,因此不会路由到我想要的页面。
我使用以下代码提交所需的登录表单:
def parse(self, response):
request_id = response.css('input[name="request_id"]::attr(value)').extract_first()
data = {
'userid_placeholder': self.login_user,
'foilautofill': '',
'password': self.login_pass,
'request_id': request_id,
'username': self.login_user[1:]
}
yield scrapy.FormRequest(url='https://www1.up.ac.za/oam/server/auth_cred_submit', formdata=data,
callback=self.print_p)
Run Code Online (Sandbox Code Playgroud)
print_p 回调函数如下:
def print_p(self, response):
print(response.text)
Run Code Online (Sandbox Code Playgroud)
我看过scrapy-splash,但找不到在响应中使用scrapy-splash执行JS的方法。
我有一个名为MediaPlayer1的TMediaPlayer然后打开一个文件(一首歌)我播放它.现在我的问题是我需要重复这首歌,直到程序停止.
这个想法是表单激活然后重复指定的歌曲,直到表单关闭.
MediaPlayer1.Filename := 'filename';
Run Code Online (Sandbox Code Playgroud)
然后打开它
MediaPlayer1.Open;
Run Code Online (Sandbox Code Playgroud)
然后它播放它
MediaPlayer1.Play;
Run Code Online (Sandbox Code Playgroud)
所以现在这首歌正在播放,但是当它结束时,我希望它再次播放(重复),然后再播放,直到表格结束.
我尝试过David Heffernan所说的但是它没有用,我想我做错了可以有人请求纠正我.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, StdCtrls;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Label1: TLabel;
procedure FormActivate(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
mediaplayer1.FileName:='E:\it project\mario.mid';
mediaplayer1.Open;
mediaplayer1.AutoRewind:=true;
mediaplayer1.Play;
mediaplayer1.Notify:=true;
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
if MediaPlayer1.NotifyValue=nvSuccessful then begin
MediaPlayer1.Play;
MediaPlayer1.Notify := …Run Code Online (Sandbox Code Playgroud) 想法是你必须拍摄面板.因此,面板将设置在屏幕顶部的随机位置,然后向下移动到屏幕的底部.在到达底部之前,您必须使用形状拍摄面板.但我不知道如何测试创建的形状是否位于面板的位置以重置面板.目前这是我的代码,但if测试错误.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;
const
MaxRays=100;
RayStep=8;
type
TForm1 = class(TForm)
Panel1: TPanel;
Timer1: TTimer;
Timer2: TTimer;
Button1: TButton;
Shape1: TShape;
Timer3: TTimer;
Image1: TImage;
procedure Timer2Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure Timer3Timer(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码将字段添加到数据库中:
adoquery1.Close;
ADOQuery1.SQL.Clear;
adoquery1.SQL.Text := 'INSERT INTO tbllogin (txusername, txpassword, link, full_name) VALUES ("' + e1 + '","' + e2 + '","' + cb2 + '","' + e4 + '");';
adoquery1.Open;
adoquery1.Close;
Run Code Online (Sandbox Code Playgroud)
e1,e2,e4和cb2是使用的变量.
这是查询的示例:

这是我得到的错误:

Microsoft Jet 4.0 OLE DB提供程序
我不知道如何解决这个错误任何帮助表示赞赏!
我一直在制作一个有趣的小游戏.在游戏中,你是一个小型宇宙飞船(一个图像),在物体(面板)上射出激光束(形状).此时你只能一次发射一个激光束,因为只有一个激光束(形状)并且只有一个物体(面板)可以射击.因此,通过编码,我想知道如何添加更多的激光束和物体,尤其是激光束,因为我不想重复每个激光束和每个面板的程序.
这是代码.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;
type
TForm1 = class(TForm)
Panel1: TPanel;
Timer1: TTimer;
Timer2: TTimer;
Button1: TButton;
Shape1: TShape;
Timer3: TTimer;
Image1: TImage;
procedure Timer2Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure Timer3Timer(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ …Run Code Online (Sandbox Code Playgroud) 想法
我和一个朋友想和另一个朋友开个玩笑,然后制作一个delphi应用程序,它会拍摄我们朋友的屏幕截图然后发送到我的电脑.
问题
问题是我和我的朋友不知道如何将图像发送到我的电脑.知道怎么样?
我试过GolezTrol所说的
这是代码(从第27行开始)
procedure TForm1.Button1Click(Sender: TObject);
var
Params: TIMultipartFormDataStream;
Response1: TStringStream;
begin
try
Params := TIMultipartFormDataStream.create;
Response1 := TStringStream.Create;
try
Params.AddFile('file', 'C:\temp\YourTempImageName.jpg', 'image/jpg');
IdHTTP1.Post('http://localhost/uploadimage.php', Params, Response1);
finally
Params.Free;
Response1.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
(我正忙着努力让它发挥作用.)
额外信息 重新考虑之后,我再也看不到有趣的一面了.顺便说一下,我不打算把我的朋友身份搞得一团糟.在告诉他我们想做什么后,他向我们提出了尝试(他打赌我们做不到).