小编Cra*_*aig的帖子

如何通过SndPlaySound启动音乐

在这个网站上,我找到了如何将音乐添加到.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)

所以我想知道的是如何在不关闭应用程序的情况下停止播放音乐?

delphi delphi-7 playback

3
推荐指数
1
解决办法
3286
查看次数

在 Scrapy 响应中执行内联 JavaScript

我正在尝试使用 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的方法。

javascript python scrapy scrapy-splash splash-js-render

3
推荐指数
1
解决办法
2657
查看次数

我该怎么重复一首歌?

我有一个名为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)

delphi delphi-7

2
推荐指数
1
解决办法
4520
查看次数

如何测试形状和面板是否位于同一位置

想法是你必须拍摄面板.因此,面板将设置在屏幕顶部的随机位置,然后向下移动到屏幕的底部.在到达底部之前,您必须使用形状拍摄面板.但我不知道如何测试创建的形状是否位于面板的位置以重置面板.目前这是我的代码,但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)

delphi collision-detection delphi-7

2
推荐指数
1
解决办法
1191
查看次数

Delphi中的SQL错误:当前提供程序不支持从单个执行中返回多个记录

我正在尝试使用以下代码将字段添加到数据库中:

        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提供程序

我不知道如何解决这个错误任何帮助表示赞赏!

sql delphi delphi-7

2
推荐指数
1
解决办法
2113
查看次数

如何在不添加相同数量的代码的情况下向表单添加更多对象

我一直在制作一个有趣的小游戏.在游戏中,你是一个小型宇宙飞船(一个图像),在物体(面板)上射出激光束(形状).此时你只能一次发射一个激光束,因为只有一个激光束(形状)并且只有一个物体(面板)可以射击.因此,通过编码,我想知道如何添加更多的激光束和物体,尤其是激光束,因为我不想重复每个激光束和每个面板的程序.

这是代码.

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 duplication delphi-7

1
推荐指数
1
解决办法
390
查看次数

在Delphi 7中通过互联网发送图片

想法

我和一个朋友想和另一个朋友开个玩笑,然后制作一个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)

(我正忙着努力让它发挥作用.)

额外信息 重新考虑之后,我再也看不到有趣的一面了.顺便说一下,我不打算把我的朋友身份搞得一团糟.在告诉他我们想做什么后,他向我们提出了尝试(他打赌我们做不到).

delphi delphi-7

-4
推荐指数
1
解决办法
3093
查看次数