くだすれDelphi(超初心者用)その56at TECH
くだすれDelphi(超初心者用)その56 - 暇つぶし2ch1:デフォルトの名無しさん
14/07/20 00:17:43.17 thSlzuP/.net
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

■Delphi XE6 Professional/Enterprise/Ultimate/Architect エディション(トライアル版有)
64bit Windows、Mac OS XからiOS、Androidのアプリも開発可能。ライブラリのソースコード付き。アカデミックライセンス有り。
旧バージョン(XE6/5/4/3/2/XE/2010/2009/2007/Delphi 7)のライセンス取得とダウンロードが可能。(アカデミック不可)
URLリンク(www.embarcadero.com)

■Delphi XE6 Starter エディション
個人/5人以下の企業・組織向け。年間売上1000US$以内の商用開発可。
(※)Delphi、Visual Studio等の有償/無償の開発ツールユーザーが対象。インストール確認は特に行わない。
URLリンク(www.embarcadero.com)

■Embarcadero RAD Studio XE6 (Delphi、C++Builder、HTML5 Builder等を含むビジュアル開発スイート)
URLリンク(www.embarcadero.com)

<前スレ>
くだすれDelphi(超初心者用)その55
スレリンク(tech板)

<過去スレ>
DelWiki (Delphi 関連の過去スレッド)※行方不明
URLリンク(delwiki.info)

2:デフォルトの名無しさん
14/07/20 00:27:27.53 thSlzuP/.net
<関連スレ>
Embarcadero RAD Studio/Delphi/C++Builder その3 ※終了(次スレ無)
スレリンク(tech板)

delphiで作った有名ソフトって何があるの?
スレリンク(tech板)
【Delphi互換!?】FreePascal/Lazarus その2【GPL】
スレリンク(tech板)

ネットワークゲーム作成のお勉強(Delphi専用スレ)
スレリンク(gamedev板)
Delphiでアクションゲームが作りたい!! Part2
スレリンク(gamedev板)
delphiでMMO
スレリンク(gamedev板)

<兄弟スレ>
くだすれC++Builder(超初心者用)その5
スレリンク(tech板)

3:デフォルトの名無しさん
14/07/20 00:37:55.56 zmfssaKU.net
pythonスレとかブル紛らわしいタイトルつけてんじゃねえよ

4:デフォルトの名無しさん
14/07/20 06:07:27.34 vlthEOg+.net
すみません、お願いします。
delphi5(古い)を使いはじめた者ですが、.dfmファイルの中に

object Image1:TImage

Picture.data={

文字列

}

というのがあるんですが、この文字列を動的に入れる方法はないんでしょうか?

Tpictureにdataというプロパティがないようなんですが…

5:デフォルトの名無しさん
14/07/21 11:18:26.18 b3gMOU9m.net
pasではなくdfmで定義されてるってことだろ そりゃpasのほうでやりゃええやん

6:デフォルトの名無しさん
14/07/21 14:33:14.20 NO0PZe+z.net
今、出先で開発環境がないんですが、object以下をpasのどこかにカット&ペーストする感じでいいんでしょうか?w

7:6
14/07/21 14:34:26.98 NO0PZe+z.net
あっ、wがついちゃった…

ごめんなさい。

8:6
14/07/21 14:35:33.15 NO0PZe+z.net
あっ、wがついちゃった…

ごめんなさい。

9:デフォルトの名無しさん
14/07/22 17:27:45.75 Tf55TaAO.net
>>4
自分は7なのでもしかしたらバージョンによって違うかもしれませんが…。
'Picture.Data = {'以降の文字列は意味のなさそうな数字の羅列ですよね?
だとすればオブジェクトインスペクタのTImage.Pictureに当たる部分だと思い
ます。画像データが文字コードに変換されて格納されているのでは?

10:デフォルトの名無しさん
14/07/22 22:49:06.02 Uj6EjqAH.net
dataのところはローダが解析して実際のイメージデータを作るために使うものだろ
フォームをロードする時だけ使われるものなので、動的に入れるなんて無意味

実行時にPictureの中身を差し替えたいって話なら、リソースくっつけといて
LoadFromResourceすればええ

11:4
14/07/23 13:04:31.88 yjjGsXl2.net
まず連投になってたことをお許しください。新しいスマホが、戻る押したら投稿までしてしまうようで…

10さんの言われるようにbmp→bmpのようなのは何種か試してできたんですが、文字列→bmpみたいなのに面白さみつけたんですね。

テキストデータの中に画像データも埋め込められるかなと、

おそらくimage1:tpictureが保持してる画像を開発環境が文字列に変更したんでしょうけど、これをまた逆に画像に変更する関数をつくらなきゃならない、と思い至りました。StrToBmpみたいなやつですね。で、picture.bitmapに結びつけるみたいな。

どういうルールで文字列に変えたのか、調べることにしてみます。

12:デフォルトの名無しさん
14/07/23 16:32:35.26 wcwRUD1m.net
何が目的なのかさっぱり分からん

「動的に」って言ってるんだから、実行時に
Image1の画像を変更するって理解でいいんだよな

だったら、
Image1.Picture.LoadFromFile('MyPicture.png'); // ファイルからImage1に読み込む
Bitmap.Canvas.Draw(0, 0, Image1.Picture.Graphic); // Image1の内容をBitmapにコピーする
Image1.Picture.Assign(Bitmap); // 既存のBitmapをImage1にコピーする
とかはダメなのか?

それとも、単に.dfmファイルの内容を解析したいとか?

13:11
14/07/23 18:33:44.61 yjjGsXl2.net
目的は、別にないんです。

.xmbファイルだったと思うんだけど、文字の羅列が、IEであけてみたら画像で出てきたんで面白かったと。
で、dfmファイルのこの文字列も画像に戻せたら面白いだろうなって。

読み込んだ画像そのまま表示でなくて。
ただの遊びです。「あぶり出し」みたいでたのしかろうと。

14:デフォルトの名無しさん
14/07/23 18:46:42.29 wcwRUD1m.net
>>13
picture.dataの内容は...

今実験してみたら、Delphiのバージョンによって違いがあるかもだけど
最初の20文字は不明だけど(たぶん画像の属性かも)、21文字目からは
オブジェクトインスペクタでImage1のPictureプロパティとして読み込んだ
ファイルそのまんまだ

もちろん、元はバイナリだから、それをHex文字列に置き換えてあるけど

15:13
14/07/23 19:28:44.59 yjjGsXl2.net
最初の20字が不要ってよくわかりましたね…

じゃ、最初の20字カットしてHex文に変えたやつをコード上で代入したらできますかね?

もっとも試すのは先になりそうです。
実は学生で帰省してるんです…

16:デフォルトの名無しさん
14/07/23 20:15:33.19 wcwRUD1m.net
>>15
代入って言っても、バイナリな画像ファイルイメージだからな

普通は1バイト分ずつ変換してストリームに加えていき
LoadFromStreamで一気に読み込む

17:13
14/07/23 21:18:17.65 yjjGsXl2.net
むつかしそうですが、やってみましょう!

18:13
14/07/23 21:19:32.07 yjjGsXl2.net
むつかしそうですが、やってみましょう!

19:デフォルトの名無しさん
14/07/24 09:59:43.09 HGzRV8MP.net
TImage.Picture.Dataはプロパティとして特別扱いになっているので、もしソースがあるなら
デバッグ版DCUを使う設定にしておいてTImage.Createにブレークポイント置いてそこから
処理を追っかけてみるといろいろわかっていいんじゃないかな。

20:デフォルトの名無しさん
14/07/28 10:55:39.53 hga3YgQr.net
Explore('c:\users');
とやるとc:\users以下のフォルダの構造そのままなコンテキストメニュー出してくれるサンプルやライブラリないですか

見た目はこんな感じ
URLリンク(www5f.biglobe.ne.jp)

21:デフォルトの名無しさん
14/07/29 10:13:19.52 f75LKv/I.net
ファイル一覧のサンプルで十分だろ 一覧を取得しながらメニューを作るだけ アイコン描画が若干面倒かもしれないが


22:



23:デフォルトの名無しさん
14/07/29 12:23:30.31 NTwBO5u1.net
それを一発でやってくれるライブラリを作ってってことだろ

24:デフォルトの名無しさん
14/07/29 14:44:15.48 sCotzjuV.net
プログラムが面倒ならプログラマなんてやめろよ

25:デフォルトの名無しさん
14/07/30 16:42:28.66 afhfKsVm.net
D7とFB2.5で開発中なのですがDBEditで登録済みのレコードの日付を修正する時にnullに戻すにはどうしたらいいでしょうか

26:デフォルトの名無しさん
14/07/30 17:24:49.96 vV8Gjhjf.net
>>24
DBEditのDataFieldプロパティに指定しているフィールドを
FieldByName('フィールド名').Clearとかでクリアすればいいんじゃない?

27:デフォルトの名無しさん
14/07/31 13:34:06.08 O6epLksn.net
>>25
ありがとうございます
どのイベントに記述ればいいでしょうか
onchangeやonvalidateに書いてみたのですがうまくいきませんでした
やりたいことはレコードを読んでデータが入っている日付型のフィールドを
キー入力でクリアしたいのですが、Delキーで消して次のフィールドに移ろうとすると
「' / / 'は日付ではありません」というメッセージが出て先に進めなくなります
これを何とかしたいのです

28:デフォルトの名無しさん
14/07/31 14:30:55.13 425EHz81.net
>>26
う~ん。細かい原因はデバッグしてみないと分からないなあ。
メッセージを見る限りDBEditをクリアしてもデータセットには' / / 'をセット
しようとてるみたいだから、何故そうなるのかを追及しないと。
最終的には問題の日付型のフィールドのOnSetTextイベントでどうにかできるん
じゃないかな。

29:デフォルトの名無しさん
14/07/31 16:31:33.89 tQBQzX5Z.net
データベースの主キーだからヌルにできないとか?

30:デフォルトの名無しさん
14/07/31 17:29:57.95 O6epLksn.net
>>27-28
ありがとうございます
ネットをあさったところDBEditのonKeyDownにDelキーが押されたらフィールドをクリアするというのを見つけて
試してみたらうまくいきました
' / / 'が残るのはEditMaskの設定でそうなってます

31:デフォルトの名無しさん
14/08/13 06:46:21.86 pVfQZsYk.net
的外れなことを聴く初心者です。
済みませんがお伺いいたします。

以下のサイトでボタンが1~4までありますが
何の処理をしているのでしょうか?
URLリンク(delphi.cjcsoft.net)

作ってみた方が早い思い作ってみましたが、
何の変化もしないため、解釈に困っています。

32:デフォルトの名無しさん
14/08/13 13:45:41.93 H1TSpU1k.net
見りゃ大体わかりそうなもんだが。1はCD-ROMドライブのボリュームの取得、2は設定、
3はAUX入力のボリュームの取得、4は設定だろ、多分。
URLリンク(msdn.microsoft.com)

33:デフォルトの名無しさん
14/08/13 17:55:48.08 pVfQZsYk.net
>>31
ありがとうございます。
ソースに普通にCDとAUXって入ってました。
全然動かなかったのでパニクってました。

34:デフォルトの名無しさん
14/08/13 18:13:41.17 pVfQZsYk.net
もう1つご教授いただけないでしょうか?
PS3用のリモコンを使ってアプリを操作したいと思っています。
コマンドとして"VK_MEDIA_PLAY_PAUSE"を送った場合には
イベントハンドラにはどう反映させたら良いのでしょうか?

35:デフォルトの名無しさん
14/08/28 16:05:00.43 28V1k94b.net
D7でボタンをいくつか縦横に並べてカーソルキーを使ってフォーカスのあるボタンを移動したいのですが
どうもボタンにフォーカスがあるとキーボードイベントが発生しないようでうまくいきません
上下矢印キーを押したときは上下に、左右矢印キーを押したときは左右にフォーカスを移動させたいのですが
どのようにしたらいいでしょうか
フォームにパネルを置きその上にBitBtnを配置しています
フォームのkeypreviewはtrueにしてあります

36:デフォルトの名無しさん
14/08/28 18:10:15.44 hW2yjl7Z.net
おれだったらTObjectの配列を用意して各ボタンを突っ込んでおく
それでメッセージループでキーボードイベントを受け取って、どこにフォーカスするか決める
10x10列とかボタンが規則性のある並び方ならできると思う

37:デフォルトの名無しさん
14/08/28 22:31:36.32 pJPsVZs/.net
Bitbtnかよw

38:デフォルトの名無しさん
14/08/29 11:26:02.04 AJ0Py05J.net
>>34
BitBtn自体のKeyPressイベントに書いたらいいんじやないの?
例えば左にBitBtn1、右にBitBtn2を並べてBitBtn1にフォーカスがある時に→が
押されたらBitBtn2にフォーカス移動したいならButton1KeyPressに
if Key = '27' then Button2.SetFocus;と書けばいい。

39: ◆rW3tmvmDLc
14/08/29 16:36:09.72 EE6o1/jo.net
Windows標準のコントロールの挙動で苦しめられるよりは自分で作ってしまった方が楽なことがあります。
全部作ると大変ですがグリッドコンポを使ってそれらしいものを作ってみました。イカソース(1/5)。

type
 { フォームにDrawGridを置き、AlignをalClientに、DefaultDrawingをFalseに、FixedColsとFixedRowsを0に。}
 TForm1 = class(TForm)
  DrawGrid1: TDrawGrid;
  (※中略)
 private
  { Private 宣言 }
  FPushed: boolean; // ボタン凹み中
  FPushedCol, FPushedRow: integer; // どのセルのボタンが凹んでいるか
  procedure PushDown(ACol, ARow: integer);
  procedure PushUp;
  procedure InvalidateCell(ACol, ARow: Integer);
  procedure DrawCell(ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
  procedure ButtonClicked(ACol, ARow: Integer);
  procedure ResizeCells;
 end;
(※中略)
// 偽ボタンクリック時の処理。
procedure TForm1.ButtonClicked(ACol, ARow: Integer);
var
 msg: string;
begin
 msg := format('[%d,%d]のボタンが押されたよ!', [ACol, ARow]);
 Application.MessageBox(PChar(msg), 'ボタンが押されたよ!');
end;

40:(2/5) ◆rW3tmvmDLc
14/08/29 16:37:03.78 EE6o1/jo.net
// 指定されたセルを描画します。
procedure TForm1.DrawCell(ACol, ARow: Integer; Rect: TRect;
 State: TGridDrawState);
const
 cPushedOffset = 2;
var
 IsThisCellPushed: boolean;
 uState: uint;
 str: string;
begin
 str := format('[%d, %d]', [ACol, ARow]);
 // このボタンは押されている?
 IsThisCellPushed := (FPushed and (ACol = FPushedCol) and (ARow = FPushedRow));
 // ボタンそっくりの絵を描く。
 uState := DFCS_BUTTONPUSH or DFCS_ADJUSTRECT;
 if IsThisCellPushed then
  uState := uState or DFCS_PUSHED;
 Windows.DrawFrameControl(DrawGrid1.Canvas.Handle, Rect, DFC_BUTTON, uState);
 // ボタン文字列の描画。
 DrawGrid1.Canvas.Brush.Style := bsClear;
 if IsThisCellPushed then
  Windows.OffsetRect(Rect, cPushedOffset, cPushedOffset);
 Windows.DrawText(DrawGrid1.Canvas.Handle, PChar(str), Length(Str), Rect, DT_NOPREFIX or DT_CENTER or DT_SINGLELINE or DT_VCENTER);
 if IsThisCellPushed then
  Windows.OffsetRect(Rect, -cPushedOffset, -cPushedOffset);
 // 現在位置のボタンならフォーカスの点線枠を描く。
 if gdFocused in State then
 begin
  DrawGrid1.Canvas.Brush.Style := bsSolid;
  Windows.DrawFocusRect(DrawGrid1.Canvas.Handle, Rect);
 end;
end;

41:(3/5) ◆rW3tmvmDLc
14/08/29 16:37:47.29 EE6o1/jo.net
// グリッドのOnDrawCellイベントハンドラ
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
 DrawCell(ACol, ARow, Rect, State);
end;
// グリッドのOnKeyDownイベントハンドラ
procedure TForm1.DrawGrid1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if Key = VK_SPACE then
  PushDown(DrawGrid1.Col, DrawGrid1.Row);
end;
// グリッドのOnKeyUpイベントハンドラ
procedure TForm1.DrawGrid1KeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if Key = VK_SPACE then
  PushUp;
end;
// グリッドのOnMouseDownイベントハンドラ
procedure TForm1.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var
 MouseCol, MouseRow: integer;
begin
 if Button = mbLeft then
 begin
  DrawGrid1.MouseToCell(X, Y, MouseCol, MouseRow);
  PushDown(MouseCol, MouseRow);
 end;
end;

42:(4/5) ◆rW3tmvmDLc
14/08/29 16:38:41.67 EE6o1/jo.net
// グリッドのOnMouseUpイベントハンドラ
procedure TForm1.DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbLeft then
  PushUp;
end;
// フォームのOnResizeイベントハンドラ
procedure TForm1.FormResize(Sender: TObject);
begin
 ResizeCells;
end;
// 指定されたセルの再描画をWindowsにお願いする。
procedure TForm1.InvalidateCell(ACol, ARow: Integer);
var
 aCellRect: TRect;
begin
 aCellRect := DrawGrid1.CellRect(FPushedCol, FPushedRow);
 InvalidateRect(DrawGrid1.Handle, @aCellRect, True);
end;
// ボタンを凹ます。
procedure TForm1.PushDown(ACol, ARow: integer);
begin
 FPushed := True;
 FPushedCol := ACol;
 FPushedRow := ARow;
 InvalidateCell(ACol, ARow);
end;

43:(5/5) ◆rW3tmvmDLc
14/08/29 16:43:51.55 EE6o1/jo.net
// 凹ませたボタンを戻す。
procedure TForm1.PushUp;
begin
 FPushed := False;
 InvalidateCell(FPushedCol, FPushedRow);
 ButtonClicked(FPushedCol, FPushedRow);
end;
// ボタン群のサイズ調整。
procedure TForm1.ResizeCells;
begin
 with DrawGrid1 do
 begin
  DefaultColWidth := (ClientWidth - GridLineWidth * (ColCount - 1)) div ColCount;
  DefaultRowHeight := (ClientHeight - GridLineWidth * (RowCount - 1)) div RowCount;
 end;
end;

以上です。Turbo Delphi Explorer / Windows 7 (64bit)で作りましたが古いバージョン、古いOSでも動くと思います。
このサンプルではDrawGridを使っていますが
StringGridを使ってボタンのテキストをCellsプロパティに持たせてもよいでしょう。

44:デフォルトの名無しさん
14/09/11 06:14:07.67 XTXbJyv5.net
以前書き込みした見当違いの質問をする初心者です。

wavやmp3ファイルの時間単位の長さ(5分12秒とか)や
現在の経過時間(1分16秒とか)を取得するには
どういう手続きがいるのでしょうか?

45:デフォルトの名無しさん
14/09/11 07:13:10.48 xV32gnNe.net
まず、wavやmp3のファイル構造を調べます。

46:デフォルトの名無しさん
14/09/11 12:14:37.06 76rNNHFD.net
長さはファイルに記録されているだろうし経過時間は再生開始時間との差を見ればいいけど、
それ用のコンポーネント任せにすれば簡単だろうね ビットレートとかタグとか知りたい情報あるだろうし

47:デフォルトの名無しさん
14/09/12 13:51:17.78 K1E736hN.net
>>45
そんなに難しいとは思えないのですが、
いくら探しても情報が出てこないんです…。

48:デフォルトの名無しさん
14/09/12 14:14:35.61 0pZgEsmB.net
何を使って再生してんのか、話はそこからだ

49:デフォルトの名無しさん
14/09/12 16:10:24.67 TbB0cb10.net
で、wavやmp3のファイル構造を調べたの?

50:デフォルトの名無しさん
14/09/12 16:21:58.78 TbB0cb10.net
無視されて腹が立ってるけど、
次は、Delphiでのファイルの取扱の作法を学びます。
いろいろありどれもよいものだが、個人的にはここでは TFileStreamあたりだろうか。
とりあえずここまで。

51:デフォルトの名無しさん
14/09/13 12:30:41.03 UKVm+YOd.net
日記は他でやれ

52:デフォルトの名無しさん
14/09/13 16:02:13.29 S4jvygID.net
>>49
すみません。
>>44さんとかの仰っている意味がしばらく分からず呆然としていました。
mp3は後回しにしてwavの構造なんかはフォーマットを見ながら確認しました。
wav構造で44.1kHz,16bitステレオなのでそこから計算していけば良いのでしょうか?
全然分かっていない感じですみません。

>>47
FileListBoxで選択したファイルをTMediaPlayerに丸投げするだけのソフトです。

53:デフォルトの名無しさん
14/09/13 16:52:06.75 DZFfxEW9.net
TMediaPlayerクラスにない機能を追加したいってことだろ 継承して作ればいいじゃん

54:デフォルトの名無しさん
14/09/14 10:32:18.62 phltxkIY.net
情報の取得にTMediaPlayerの何らかの機能が使えるわけでもないし、
わざわざ継承して作る意味を感じないんですが?

55:デフォルトの名無しさん
14/09/15 11:41:25.74 axRzhYMC.net
>>52
実現できる知識があれば、困らないわけで…

コンポーネントですとか、解説しているサイトなどありましたら
教えていただけないでしょうか?

56:デフォルトの名無しさん
14/09/15 13:56:21.15 bnu8+dqq.net
目の前の便利な箱で調べてみたら?

57:デフォルトの名無しさん
14/09/15 17:22:15.60 axRzhYMC.net
しつこく探しましたが、見つからなくて困ってます。

58:デフォルトの名無しさん
14/09/15 17:31:25.57 T4IYwvYx.net
TMediaPlayerはCurrentPositionや、Duration等の情報も公開しています

59:デフォルトの名無しさん
14/09/15 23:14:12.73 BpGaqprp.net
たとえば「Delphi mp3 演奏時間」とかでググってみた?
読んでないけど
URLリンク(drang.s4.xrea.com)
とか
URLリンク(www.sm.rim.or.jp)

Delphiは結構古いコードでも動くからとりあえず動かしてエラーが出たら直していって
色々試してみればいい

60:デフォルトの名無しさん
14/09/15 23:15:10.91 BpGaqprp.net
http://www.kobmov.sakura.ne.jp/DelphiTips/mciSendString.htm
ってNGワードなんだな

61:デフォルトの名無しさん
14/09/16 07:47:42.65 +0yickAA.net
delphi wav 再生時間
なんかのキーワードで検索してもヒットしないんです。
URLリンク(www.bvbcode.com)
なんかはそれっぽい感じもしますが。

CurrentPositionや、Durationについては、再度ヘルプを見てみます。

62:デフォルトの名無しさん
14/09/16 13:14:21.74 0EMTofDd.net
検索のしかたを覚えるのが先だね

63:デフォルトの名無しさん
14/09/16 23:05:03.84 M+eLRISc.net
>>60
>>58 の三つのアドレスは開いて読んでみた?
「読んでないけど」とは書いたけど一応ざくっと目は通してから書いたんだが

64:デフォルトの名無しさん
14/09/17 00:30:54.74 eg8MiQop.net
スレリンク(tech板)
前スレにもmciやMediaPlayer絡みの質問あるけど、君なんだろ?
1年以上たってる?がまだそんなことも自己解決できんとは正直全然進歩してないな・・

65:デフォルトの名無しさん
14/09/17 09:24:33.12 3UVYH3d1.net
英語が得意だと、delphiの英語の資産を調べていくらでも解決策が見つかる stackoverflowのフォーラムとか
意外とそんなところでつまづく人もいるのかな 日本語情報は英語情報の3割ぐらいしかないと感じる

66:デフォルトの名無しさん
14/09/17 21:42:58.98 7I0bAJ2w.net
>>59
そこのレンタルサーバー関係がNGワードになってますね。
タラコ唇のあいつがそこを借りて大量アクセスしてましたから。

67:デフォルトの名無しさん
14/09/18 05:44:48.70 tVlZqP6r.net
>>62
教えていただいたリンクについては、ソフトを作るときに最初に目を通しています。
手元に印刷して取ってありますが、DLLの取り扱いが必要なことと、
TMediaPlayerでMP3の再生ができるので、活用していませんでした。申し訳ありません。

>>63
まさしくその通りで、時間があるときにDelphiをいじっている感じです。
1年前から全く成


68:長していないのは自覚しています。 未だに、wavとmp3でボリュームコントロール一本化できないのはなぜか分かっていません。 >>64 明らかに必要なタイトルが分かるページは目を通していますが、 フォーラムなんかだとほとんど分からないレベルです。



69:デフォルトの名無しさん
14/09/18 07:34:15.13 8a9llVTL.net
URLリンク(code.google.com)
このソースを参考に mediainfo.dll を使用してみては。

70:デフォルトの名無しさん
14/09/18 12:18:12.10 PZ+8bRLv.net
スタックオーバーフローか
最近ロシアと交流してたせいかロシアの固有名詞に見えたよ

71:デフォルトの名無しさん
14/10/17 10:38:35.56 D5KoNnar.net
数年ぶりにソフト作りたくてこのスレ見ました。
Del7のことがレスされてますが、win7 64bit環境でDel7使うときの注意事項ってUnicode位なものでしょうか?

72:デフォルトの名無しさん
14/10/17 14:03:52.46 AL6vF8S8.net
UAC
Unicodeは逆にあまり気にしてもしょうがない(できたプログラムはANSI=Shift_JISだから)
あと可能ならIDEはXPモード上で動かせ

73:デフォルトの名無しさん
14/10/18 01:22:33.78 1zwgl9y1.net
BDE

74:デフォルトの名無しさん
14/10/22 21:35:22.57 bu+U1qDd.net
Delphi7の RegisterClass API リソースリーク関連
unit Classes;
procedure DeallocateHWnd(Wnd: HWND);
var
Instance: Pointer;
TempClass: TWndClass;//Add
begin
・・・・
if Instance <> @DefWindowProc then FreeObjectInstance(Instance);
Windows.UnregisterClass(UtilWindowClass.lpszClassName, HInstance);//Add

unit Controls;

procedure TWinControl.DestroyWindowHandle;
var//Add
Params: TCreateParams;//Add
begin
CreateParams(Params);//Add
・・・・
finally
Exclude(FControlState, csDestroyingHandle);
Windows.UnregisterClass(Params.WinClassName, HInstance);//Add
end;

75:デフォルトの名無しさん
14/10/22 21:36:27.10 bu+U1qDd.net
続き

destructor TWinControl.Destroy;
var
・・・・・
Params: TCreateParams;//Add
begin
CreateParams(Params);//Add
Destroying;
・・・
if FHandle <> 0 then DestroyWindowHandle;
Windows.UnregisterClass(Params.WinClassName, HInstance);//Add

unit Forms;
destructor TApplication.Destroy;
begin
・・・・・
DestroyWindow(FHandle);
end;
Windows.UnregisterClass(WindowClass.lpszClassName, HInstance);//Add

76:デフォルトの名無しさん
14/10/25 16:08:54.79 wdoXsx3q.net
visual studioではなく、delphiを使う
利点を教えて下さい。delphiは使った事は無いのですが、visual studioと同じくらい完成度の高い統合開発環境ですか?

77:デフォルトの名無しさん
14/10/25 16:17:49.51 CHKyg9/f.net
逆にVisual Studio使った事がないんだけどコンパイルが早いんで少しずつ作っては
試しで実行するのがストレスなく出来るとかかな?

78:デフォルトの名無しさん
14/10/25 16:24:00.15 wdoXsx3q.net
どうしてvisual studioを使わないんですか? intelではなくAMDのパソコンを買う
ような感じですか?

79:デフォルトの名無しさん
14/10/25 16:36:17.58 CHKyg9/f.net
会社で担当してるプロジェクトがDelphi製のシステムだからだよ。
趣味で両方使ってる人のほうが的確なコメントが出来るかもね。

80:デフォルトの名無しさん
14/10/25 16:39:15.14 4eYSIn39.net
>>76
どっち使っても目的とする物ができたらいい
VSだろうがDelphiだろうが道具
必要十分であればそれでいい

81:デフォルトの名無しさん
14/10/25 16:39:55.76 n8h91IfF.net
1.単体で動くexeが作れる
フレームワークの有無やバージョンに関わらず動作させられる

2.マルチプラットフォームで動作するアプリが作れる
特にアンドロイドかな?CPUはARMになるけど

3.さらにはWebサービスがほぼDelphiの知識のみで簡単に作れる

ざっとあ�


82:ーただけでもメリットは多いよ



83:デフォルトの名無しさん
14/10/25 16:50:04.27 wdoXsx3q.net
>>79
>1.単体で動くexeが作れる
>フレームワークの有無やバージョンに関わらず動作させられる

本当ですか?frameworkいらないんですか?
驚き桃ノ木です。delphiに乗り換えようかなと本気で思いました。検討します。

84:デフォルトの名無しさん
14/10/25 16:59:56.63 n8h91IfF.net
うーん、結局好みで選べばいいのかな?
自分にとってのメリットは他の人に当てはまるかどうかはわからんし…

>>80
実行環境にフレームワークは要らないですよ。
ただ今はデフォルトでフレームワークは入ってる時代だけどね
でもフレームワークのバージョンによっては動作しないアプリもあるしね

85:デフォルトの名無しさん
14/10/25 17:04:59.09 wdoXsx3q.net
visual studioだとc#のアプリ作ったら簡単に逆コンパイル出来ますがdelphiだとどうなるんですか?frameworkいらないならc#でもネイティブなexeが出来るんですか?

86:デフォルトの名無しさん
14/10/25 17:11:14.43 4eYSIn39.net
>>82
どんなコンパイラを通そうが動作するアプリケーションはすべてリバースエンジニアリングできる
出来上がりの可読性が高いか低いかは別問題だけどなー

87:デフォルトの名無しさん
14/10/25 17:27:05.50 n8h91IfF.net
C#っていうか.netはJITでしょ?
単体で動く実行形式はできないと思われ

Delphiはリバースエンジニアリングについては普通のネィティブコンパイラと同じなのかな?
アセンブラレベルには戻せるだろうけど
やったことないからわかんないです。

あと.netは難読化しないとwwだからなぁ~

88:デフォルトの名無しさん
14/10/25 21:08:15.86 wdoXsx3q.net
>>83
vsのc#だと逆コンパイルするとほぼ完全にソースコードレベルまで復元出来ますが
delphiのc#でも同じですか?

89:デフォルトの名無しさん
14/10/25 21:17:18.72 lUrFBeQ+.net
delphiのc#wwwww

90:デフォルトの名無しさん
14/10/25 22:07:31.93 n8h91IfF.net
>>85
相当な勘違いしてる?
C#とDelphiでは利用するプログラミング言語自体が違うよ
DelphiはPascal系の拡張言語、対するC#はC/C++系の文法を踏襲してる
またDelphiはCPUネィティブなコンパイラなのに対して、C#は中間言語+実行環境

うーん難しい、、説明しきれない…
とりあえずDelphiの場合はマシン語レベルまで実行形式が翻訳されるから、高級言語のソースレベルまでリバースするのは困難かな?

91:デフォルトの名無しさん
14/10/25 23:05:38.90 oOLuwoTk.net
Delphi7で範囲チェックが発生するのでFix

function SetFilePointerEx(hFile: THandle; liDistanceToMove: Int64;//Add
var lpNewFilePointer: Int64; dwMoveMethod: DWORD): Boolean; stdcall;
{$EXTERNALSYM SetFilePointerEx}
function SetFilePointerEx; external kernel32 name 'SetFilePointerEx';//Add

function FileSeek(Handle: Integer; const Offset: Int64; Origin: Integer): Int64;
{$IFDEF MSWINDOWS}
{
begin
Result := Offset;
Int64Rec(Result).Lo := SetFilePointer(THandle(Handle), Int64Rec(Result).Lo,
@Int64Rec(Result).Hi, Origin);
end;
}
begin
if not(SetFilePointerEx(Handle, Offset , result, Origin)) then//Fix
Result:=-1;//Fix
end;

92:デフォルトの名無しさん
14/10/25 23:47:03.73 btAdlciB.net
C#とDelphiを天秤にかけて何を迷う必要があるの?
今のC#ならJITコンパイラのおかげでC++よりも
パフォーマンスが上になる状況も多いのに
Delphiは最適化が糞だから遅いよ

93:デフォルトの名無しさん
14/10/26 06:50:48.69 2UTZTipn.net
.net の呪縛から逃れられる利点は大きいと思う

94:デフォルトの名無しさん
14/10/26 07:49:44.68 mAzIIl8o.net
C#www

95:デフォルトの名無しさん
14/10/26 15:36:27.93 7WR2jb2b.net
マルチプラットフォーム対応のアプリを作るにはいい選択じゃないかな
xamarinとかでC


96:#でもいけるみたいだけどMSはやはりWindows基準になるから、マルチプラットフォーム対応してもいつ潰されるかわからない



97:デフォルトの名無しさん
14/10/26 17:29:33.72 Are6beU9.net
C#のがC++より速いってマジ?
vsのC#とDelphiXE6で簡単なテストプロ(XorShift乱数を発生)で比較したら、3.5倍以上Delphiのが速いんだけど…

98:デフォルトの名無しさん
14/10/26 20:16:52.61 7WR2jb2b.net
コンパイラの実行速度比較はしちゃいけないんじゃなかった?
MSが言い出したんだっけ
なんだそりゃww
C#なんて所詮そんなもん

99:デフォルトの名無しさん
14/10/26 20:46:35.45 aRtWDNP3.net
最適化具合や特定の処理によっては速いってだけでしょ
でもまぁC#をネイティブ化する「.NET Native」ってのも
予定されてるみたいだし、将来性は語るまでもないよね
サポート体制も段違いだし
普通の企業ならBMPの不具合も早々にパッチ出してるよね
あげく、ユーザーにソース修正させるとかないわ

100:デフォルトの名無しさん
14/10/26 21:36:58.87 7WR2jb2b.net
>>95
.netの実行ファイルのネィティブ化って昔から言われてるけど未だに実現してないしなー
ってかネィティブ化したら.netなんて意味ない
(´`:)
あとマルチプラットフォーム開発を視点にするとVSにはまともな将来性などありません

スレ違いなんで落ちます(´V`)♪

101:デフォルトの名無しさん
14/10/26 22:02:20.54 WNmzUV+S.net
>>95
上でStarter使用者はソースないからBMPの不具合を
修正できないって言ったものだけど、エンバカにメールしたら、
ソース提供はしない、金払ってアップグレードしてくれと言われた

普通の不具合だったら、百歩譲って、それもアリとも思うが
セキュリティに関連した不具合だからね

予想はしてたけど、さすがに呆れた...

102:デフォルトの名無しさん
14/10/27 01:16:09.35 wXEzglFM.net
普通以下の体力しか無い企業としてはサポート切れの製品は新しいの買ってくれというのは仕方ない
天下のMSですらそんなもんだ
あっちは体力があって尚且つ政府レベルの圧力がある関係上、
サポートが10年単位とかアホみたいに長くて無償で何でもかんでもやってくれる印象があるんだろうけど、
普通にサポートが切れた製品は新しい製品に移行してくれと言ってる
最近パワポでBMPの比じゃない致命的な脆弱性が見つかったけど、XPはサポート外として非対応だし

103:デフォルトの名無しさん
14/10/27 01:17:10.26 wXEzglFM.net
まあ正直Starterくらい買えよと思うが
自力で修正できるProユーザーはその分金払ってんだし

104:デフォルトの名無しさん
14/10/27 03:06:43.05 o5rFt07R.net
Xpとdelphiを比較する?

Xpは10年以上前だし、XEシリーズなんか
バージョンアップが多いけど、出てまだ4年だし

自分は趣味でフリーソフト公開してるだけだけど
開発環境に金出すとか無理だし、Starterが限界

でも最近はさすがに他への乗り換えを考えてる
メインのソフトは2万行越えてるから移植は無理だけど
新規はdelphi使わない積もり

105:デフォルトの名無しさん
14/10/27 05:10:08.98 OnEHOzGM.net
うだうだ言ってないで好きなの使えばいいんじゃね

106:デフォルトの名無しさん
14/10/27 07:36:17.41 pFv79Jsf.net
選択者のセンスの問題。情報弱者が.netを選ぶ

107:デフォルトの名無しさん
14/10/27 11:20:15.97 ey0BnD1s.net
ところでみんなどのバージョンのDelphi使ってるの?

108:デフォルトの名無しさん
14/10/27 11:31:24.75 /BjGC8i3.net
>>103
いまだに2007。

109:デフォルトの名無しさん
14/10/27 12:14:55.39 a6rDsGZI.net
>>100
未練タラタラのかまってちゃんはウザいので最近といわず今すぐ乗り換えてくれないですかねぇ

110:デフォルトの名無しさん
14/10/27 14:48:19.41 mWyuhjq/.net
>>100が貧乏で開発環境に出す金すらないことは責めないであげて
悪いのは日本の政治だから…

111:デフォルトの名無しさん
14/10/27 19:18:19.97 o5rFt07R.net
>>106
だって、昼飯代を引くと小遣い15kしか残らないんだよ
Proとか夢のまた夢...

112:デフォルトの名無しさん
14/10/27 19:30:31.92 JWgy5v2k.net
おれはDelphiは軽自動車だと思ってる 最高速を出したいなら向かない
小回りは利いて便利なんだけど、速度面で不満は残る

たぶんメモリの使い方に難があって、関数のインライン展開ってXEではできるはずなんだけど効果が薄い
C系のコンパイラはインライン展開でメモリをドカ食いするけどその代わり速い

113:デフォルトの名無しさん
14/10/27 22:41:23.29 Y3X66mFh.net
>>97
embarcaderoのホームページに記載されてるけどHotfixが出てる
Starter用のもある
95が言ってるパッチは既に出ている
>>95 >>97この人たちは何が言いたいんだろう?

114:デフォルトの名無しさん
14/10/27 23:29:35.41 NojzEKgP.net
>>109
そのページどこよ
XE4以前のバージョンの対応が欲しいんだけど
メールでの告知も9/25にXE6についての1通来たきりなんだけど
新バージョン買えって言い分は分かるけど
いくらなんでもバージョンアップサイクル早くしすぎだろ

115:43
14/10/28 00:39:33.92 Ci5+5iZ6.net
上の方で音声の再生のことで聞いた者です

116:43
14/10/28 00:50:29.53 Ci5+5iZ6.net
流れちゃった…

再生ボタン①とFileListBoxに出ているファイルリストを1つずらすボタン(次の曲)②
のソフトを作っていていますが、notfyイベントが起きたときに②を押しますが

ボタン①でwavを流しているときに、②ボタンをおしてカーソルを移動した後
①の先頭から処理をさせるにはどうしたら良いんでしょうか?
分かりにくい文で済みません

117:デフォルトの名無しさん
14/10/28 01:17:46.12 1GDpWJ1S.net
>>112
ホント分かりにくい

「①の先頭から」ってどういう意味?
①って再生ボタンじゃなかったっけ?

118:デフォルトの名無しさん
14/10/28 02:04:58.92 fYcK8u5P.net
>>110
>>109じゃないからそのページについては知らないが、
別にTBitmap等のクラスを必ず使わないといけないわけじゃないし、
TSpeedButtonみたいにTBitmapがプロパティにあって使わざるを得ない場合も
TBitmapで直接読まずにWIC等を経由すればいいだけだからパッチが無くても回避方法はいくらでもある

119:43
14/10/28 10:07:45.11 Ci5+5iZ6.net
>>113
済みません
省略しすぎでした。

まずはwavがまともに扱えられねばと言うことでやってます。
TMediaPlayerには再生に必要な手続きをとっています。
playボタンを押すとnotfyがfalseにセットします。
曲の再生終了でnotfy=TrueになりOnNotfyイベントで
FileListBoxを1つ移動させます(次曲ボタン処理)。

この時に次曲ボタンを押してPlayボタンのprocedureの頭からまた
再生するにはどうしたら良いのでしょうか?

BASICで言う所のgosub,return処理みたいなことを行いたいのです。
ソースを見ていただいた方が早いでしょうか?
よろしくお願いいたします。

皆さんは、delphiの知識というのは何から学ばれているのでしょうか?

120:デフォルトの名無しさん
14/10/28 10:41:30.72 fYcK8u5P.net
お前さんはまずコミュニケーションの勉強から始めようか…
>>113は省略されて分からないとは言ってない。文章の意味そのものが分からないと言ってる
そして>>115でも文章が破綻してる
お前さんが何をしたくて今どうしてるのかなんて誰にも分からないんだから、
もう少し他人に理解できるような文章を書いてくれ

121:デフォルトの名無しさん
14/10/28 14:33:54.00 fy1+ZSke.net
関数Bから関数Aの処理を呼びたいって話なら簡単にできるけど?

まさかそんな単純なことでつまづいてんのか

122:デフォルトの名無しさん
14/10/28 16:29:18.62 jchrdehB.net
なにがわからないのかわからない

123:デフォルトの名無しさん
14/10/28 17:26:48.45 Vvkv7qAB.net
まさかbutton.onclickイベントかどっかで再生終わるまで
while true do begin
application.processmessages;
if 再生終了判定 then break;
end;
とかやってたりして。

124:デフォルトの名無しさん
14/10/28 17:27:33.67 dHuJ1Kxm.net
ですなぁ。>>112とか>>115を自分で読んで、(前提なしの他人が読んでも)きちんと理解できる質問なのかを
まずは考え直してほしい。

125:デフォルトの名無しさん
14/10/28 19:40:18.36 Ci5+5iZ6.net
すいません
本人がどう説明していいか分からなくて…

>>117のような感じで
Button1の処理の最中にButton2を呼び出して
Button1の処理を最初からやる感じなんですが。

126:デフォルトの名無しさん
14/10/28 20:18:23.07 EpB8Qmcz.net
どう説明したらいいかわからない質問にどう答えたらいいの?ってこった。とにかく細切れ、省略、いいわけを
全てやめて、最初からきちんと質問をまとめ直したほうがいい。>>121みたいな書き方は非常に答えにくい。
『...な感じで...感じなんですが』、だったらそういうコードを書けば?と思ってしまう。

127:デフォルトの名無しさん
14/10/28 20:26:10.73 Vvkv7qAB.net
>>121
Exit

128:デフォルトの名無しさん
14/10/28 20:45:49.44 Ci5+5iZ6.net
procedure TForm1.PlaybtnClick(Sender: TObject);
begin①
MediaPlayer1.filename:=filelistbox1.FileName;
MediaPlayer1.Notify := false;
MediaPlayer1.open;
MediaPlayer1.Rewind;
MediaPlayer1.Play;
MediaPlayer1.Notify := True;
//ここでNextBtnClickの処理をさせたい
//ここでbegin①に戻りたい
end;

procedure TForm1.NextBtnClick(Sender: TObject);
begin
if FileListBox1.ItemIndex=FileListBox1.Items.Count-1 then
FileListBox1.ItemIndex:=0 else FileListBox1.ItemIndex:=FileListBox1.ItemIndex+1;

end;

こんな感じです。イロハのイだと思いますが、
調べても分からず困っています。

129:デフォルトの名無しさん
14/10/28 20:56:03.42 EH5iuY52.net
>>121
こんなことしたいのかねぇ?

procedure TMyForm.PlayButtonClick(s:TObject);
begin
// 再生を開始
end;

TMyForm.NextButtonClick(s:TObject);
begin
// 停止
// 次曲に進める
// 再生を開始
end;

130:デフォルトの名無しさん
14/10/29 00:04:44.37 lgCi6cJO.net
こんな感じ?

procedure TForm1.NextButtonClick(Sender: TObject);
begin
if FileListBox1.Items.Count > 1 then begin
if FileListBox1.ItemIndex = FileListBox1.Items.Count - 1 then
FileListBox1.ItemIndex := 0 else FileListBox1.ItemIndex := FileListBox1.ItemIndex + 1;
PlayFile(FileListBox1.FileName);
end; end;

procedure TForm1.PlayButtonClick(Sender: TObject);
begin
if FileListBox1.FileName <> '' then PlayFile(FileListBox1.FileName);
end;

procedure TForm1.PlayFile(Filename: string);
begin
if FileExists(Filename) then begin
MediaPlayer1.FileName := Filename;
MediaPlayer1.Wait := true;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
end;

procedure TForm1.StopButtonClick(Sender: TObject);
begin
MediaPlayer1.Stop;
end;

URLリンク(uproda.2ch-library.com)

131:デフォルトの名無しさん
14/10/29 00:38:28.20 +YO6JhW2.net
なんか前向きに

132:デフォルトの名無しさん
14/10/29 04:52:55.09 W2zMeLsx.net
PlaybtnClick 内でNextBtnClick(Sender); って直接呼べる クリックイベントを起こさなくても

あと、BASICでいうgotoは、Delphiでもできる

 var
  label: LABEL1;
 begin
 LABEL1:

  ~何かの処理~

 //関数の先頭に戻る
 goto LABEL1;

ただし永久ループになってはいけないので注意が必要

133:デフォルトの名無しさん
14/10/29 11:35:25.52 i2b2zXDr.net
こういうレベルの人にgoto教えるとかやめて…

134:デフォルトの名無しさん
14/10/29 12:54:04.30 dVsMhWzu.net
>>128
これはやってしまいましたなあ

135:デフォルトの名無しさん
14/10/30 03:41:42.35 dOAr/3q


136:r.net



137:デフォルトの名無しさん
14/10/30 04:39:11.87 jmlvAasm.net
>>131
ソースいただけませんか?ってソース丸々あるのに何を言ってるんだね君は。

138:デフォルトの名無しさん
14/10/30 07:06:41.30 dOAr/3qr.net
>>132
ミュージックフィルターというのが使ったことが無いのと
全体的に指令を出しているのがどのコンポーネントなのかと
手元で動かしてデバッガーを使いながら勉強させていただきたいと思いました。

139:デフォルトの名無しさん
14/10/30 07:48:41.66 dOAr/3qr.net
PlayFileでエラーが出ていまして、どういう定義を行っているのかと
確認したいと思っています。

140:デフォルトの名無しさん
14/10/30 08:56:07.73 xiTB3i02.net
>>131

>>126だけど、ソースって言っても、ここに書いたものがすべてだよ

ただ、一曲の再生終了後に次の曲に移る部分だけは追加実装してみた

さらにTrackBarを追加しようと思ったけど何かヘン
TMediaPlayerの曲のLengthの値が異常に大きい

たぶんVBRなmp3だとそうなるのかも

検索すると、この問題を解決するにはmp3ファイルから直接
何らかの方法で曲の長さを取得する必要があるとか

気が向けば夜にでも追加部分を…

141:デフォルトの名無しさん
14/10/30 09:46:29.40 BS91IZg0.net
>>134
エラーが出たならまずエラーの内容を書くのが当然でしょ…
誰がそちらのPCで出たエラーの内容を知っていてそれに答えられると思ってる?
というかメソッドのことをブロックと呼んでいたり、
今までの言動を見ても基礎的な知識が圧倒的に足りなさすぎるから、
レベルの低い質問を詫びるくらいなら最低限の知識は身につけて来なよ

142:デフォルトの名無しさん
14/10/30 13:29:37.54 dOAr/3qr.net
>>135
>>126で頂いたソースを私の方で入力したものとエラー画面をキャプった画像と
私が今まで作っていたものをロダにあげました。
URLリンク(fast-uploader.com)
pass:delphi
です。

>>136
仰る通る、いくら初心者用といえど限度があるのは事実ですので
もう少し勉強して(言語ガイドになるのでしょうか)出直してきます。
用語の使い方が分かっていないのは致命的ですので。
失礼しました。

143:デフォルトの名無しさん
14/10/30 13:40:19.32 jmlvAasm.net
>>137
えー・・・ TForm1はPlayFileという名前のメンバを含んでいませんって
IDEさんがちゃんと教えてくれてるのになんでメンバを含ませようとしないの?

144:デフォルトの名無しさん
14/10/30 16:11:31.98 dOAr/3qr.net
>>138

完全なぽかミスです。修正したら動きました。
>>135-136
>>138
お騒がせいたしました。
ありがとうございました。

145:デフォルトの名無しさん
14/10/30 20:20:58.58 xiTB3i02.net
>>139
朝言った追加と修正だよ
1曲終わったら次の曲に進むやつ

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
if MediaPlayer1.Position = MediaPlayer1.Length then begin
NextButtonClick(nil);
end;
end;

procedure TForm1.PlayFile(Filename: string);
begin
if FileExists(Filename) then begin
MediaPlayer1.Close;
MediaPlayer1.FileName := Filename;
MediaPlayer1.Open;
MediaPlayer1.Play;
MediaPlayer1.Notify := true;
end;
end;

146:デフォルトの名無しさん
14/10/31 17:03:15.10 YOYMICa1.net
>>140
改良までしていただきありがとうございます。
頂いたソースはどれも読みやすく勉強させていただきます。
今まで使い方が分からなかった手続きの処理など勉強になりました。

147:デフォルトの名無しさん
14/11/02 00:37:10.00 Zees9Msj.net
>>137
ちょっと今気づいたけどDelphiのプロジェクトファイルを公開するとき
***.dpr、*.dfm、*.pasだけにしたほうがいいよ

他のプロジェクトファイルには意図せず個人情報が含ま�


148:黷トたりするから (Windowsのユーザ名が個人名だったりするとね)



149:デフォルトの名無しさん
14/11/02 13:38:39.88 2pOEVrbu.net
Delphi7のリーク修正
destructor TCustomForm.Destroy;
begin
if not (csDestroying in ComponentState) then GlobalNameSpace.BeginWrite;
try
if OldCreateOrder then DoDestroy;
MergeMenu(False);
if HandleAllocated then DestroyWindowHandle;
Screen.RemoveForm(Self);
FCanvas.Free;
FIcon.Free;
FreeAndNil(FActionLists);
if FClientInstance<> nil then//Add
Classes.FreeObjectInstance(FClientInstance);//Add
inherited Destroy;
finally
GlobalNameSpace.EndWrite;
end;
end;

150:デフォルトの名無しさん
14/11/06 19:28:03.31 zgQWk53P.net
>>142
ありがとうございます。
ネットとかで.dprojファイルとかが無いのは、
プライバシーのためなんですね。
以後気をつけます。

151:デフォルトの名無しさん
14/11/27 00:37:38.26 LnDUsV+c.net
Delphiで新規ユニットや新規フォームを作ったときの
デフォルトのusesを変更することって出来ますか?
generics.collections, types, math等を追加したいのですが

152:デフォルトの名無しさん
14/11/27 09:58:50.01 QFsdnT0Z.net
どっかのIDE関係のbplだかjaだかに埋め込まれてるので、これを書き換えれば…ただし最近の
バージョンではbinの下に署名のない、あるいは無効なファイルがあると起動しない(アンチクラック)ので、
まぁ無理だと思ったほうがいい。リポジトリを使うしかないかな?

153:デフォルトの名無しさん
14/11/30 18:30:14.57 hRb/WzXc.net
今無料で使えるのってトライアル版の30日試用しかありませんか?
ぐぐると出てくる6.0Personalの公開ってなくなったんですよね?

154:デフォルトの名無しさん
14/12/01 00:00:49.66 O2cXVQEj.net
どっちも『はい』
あとはAppmethod(30日以降はC++Builder/Androidのみ)

155:デフォルトの名無しさん
14/12/01 07:57:49.38 Bp9FhCWB.net
6.0Personal はCDさえあれば、今でもインストールして使用可能

156:デフォルトの名無しさん
14/12/01 18:58:46.70 YkVzx9uN.net
無料にこだわる人はJava Eclipseにすればいいんじゃないの CだってVC ExpressとかBCCとかあるし
古いDELPHIは結局あちこち手を入れないと使えないので初心者向きじゃない

157:デフォルトの名無しさん
14/12/02 01:26:03.97 YDJa1YVI.net
Delphi6の一番良いところは.NETを使わなくてすむところ

158:デフォルトの名無しさん
14/12/02 07:38:00.83 mjJQN5Se.net
Lazarusでいいっしょ

159:デフォルトの名無しさん
14/12/15 23:13:59.90 bNQzpkjQ.net
GExpertsの
implementation 以降の
{$IFDEF MSWINDOWS}
{$ENDIF}
{$IFDEF MSWINDOWS}
{$ENDIF}
がずれるのを修正

procedure TCodeFormatterFormatter.doExecute(_Tokens: TPascalTokenList);

rtCompEndif: begin
// pop and free the saved stack
if not FStackStack.IsEmpty then
begin//Add
FStackStack.Pop.Free;
if not FIsInInterfacePart then//追加
FLastPopResType:=FStack.Pop;//追加
end;//追加
end;

160:デフォルトの名無しさん
14/12/27 11:27:34.08 pIbWeYNU.net
Delphiで「\u3042」であれば「あ」という文字に変換するようなコンポーネントなどありますか?
あれば教えて欲しいです。

161:デフォルトの名無しさん
14/12/28 08:33:49.17 XpK6dXcL.net
んなもんぐらい作れよ。プログラミングが面倒ならプログラマなんてやめろ

162:デフォルトの名無しさん
14/12/28 08:50:07


163:.05 ID:RZF+yyv+.net



164:デフォルトの名無しさん
14/12/28 14:04:33.80 hVZ1HVRP.net
>>156
まさしくその通りです。
関数でも良かったので参考にさせていただきます。
素早い回答ありがとうございます。

165:デフォルトの名無しさん
14/12/28 14:47:55.95 yxgWSmbn.net
参考にさせていただきます=ソース丸パクリさせていただきます

166:デフォルトの名無しさん
14/12/28 18:27:23.31 Uhyg6v+A.net
プログラマ向いてない

167:デフォルトの名無しさん
14/12/28 18:30:02.82 4xuT+Oww.net
宿題終わったんだろw

168:デフォルトの名無しさん
14/12/29 06:40:02.28 ruOeSokU.net
おまいら
このスレのタイトルすら読めない阿呆なのか

169:デフォルトの名無しさん
14/12/29 10:10:55.01 513DLKk2.net
知り合いに巻き込まれ、はじめてRAD Studioでプログラムを書くことになりました。
httpsなどでサーバに認証付きで接続してデータをやりとりするのですが、
認証のためのユーザ名やパスワードをどのようにプログラムに埋め込もうか悩んでいます?

そのまま埋め込んでビルドすると、stringsとかでさっくりユーザ名とパスワードが見えてしまってなんだかまずい感じです。
これらを暗号化してコードの中に…とは思うのですが、標準的(?)なやり方が分からず,我流でやっちゃうのも怖いなーと思っています。

どなたか一般的な方法など教えていただけないでしょうか。

170:デフォルトの名無しさん
14/12/29 10:46:57.92 AfYg9JPv.net
認証用のユーザ名、パスワードをプログラムに埋め込むのはいかがなもんか、って気もするけど、それはともかく、
OSレベルでそういうのは用意されてんじゃね?WindowsならCrypt APIとか。ちなみにぼくのかんがえたさいきょうの
あんごうかを実装、は、ダメ。絶対。

171:デフォルトの名無しさん
14/12/29 10:56:17.96 ejX6K8DG.net
>>162
ユーザー名とパスワードが固定なのか、使うユーザー毎に違うのかでも変わってくるけど、MD5とかのHash値比較でパスワードそのものはやり取りしない実装が多いんじゃないかなー。

172:デフォルトの名無しさん
14/12/29 12:13:04.51 dqp7xwI8.net
だな。OSレベルで用意されてそうだけど。winなら資格情報なんたらってのなかったっけ?

173:デフォルトの名無しさん
14/12/29 13:01:47.97 yXbF+Tmc.net
Encrypt.dllとか言うのを使うのはどうだろう?

174:162
14/12/29 13:01:53.82 513DLKk2.net
>>163
使用するユーザごとのユーザ名とパスワードもあるのですが、
こちらは、saltを付けてハッシュ化したものをDBに突っ込んでいて、
https接続した後のやりとりで登録したり認証したりするようにしていて、
https接続自体は全員で同じユーザ名、パスワードを使おうと思っています。
(というか、恥ずかしながら今のところそういう風にしか考えられていません。)

で、プラットホームなのですが、Windows, Mac, andoroidを対象としたいと思っています。
これらプラットホームに依存しない方法で暗号化してやれればと思っているのですが、
その鍵をそのままコードに埋めてしまっては結局意味が無いのかなーと思っています。

>>164
おっしゃってることはhttps接続の上でユーザごとでやっているので、
いっそ、httpsの接続はパスワードを無しにして…とも思ってきましたが、
httpsを生で叩かれ放題というのもなんだか怖い気がしています。

ユーザのパスワードも「毎回入力したくない」などと言われると、
何かしら安全な形で保存しておかなければいけなさそうですし、
双方向な(ハッシュでない)暗号化と鍵の管理は考えなきゃいけないんだろうなとは思っています。

>>165
まずはdelphiで使いやすそうな双方向な(ハッシュでない)暗号化方式を探してみて、
その鍵を実行ファイルの何か(ハッシュ?)から生成するとかな方向で考えてみようと思います。

ダラダラと同じようなことばかり書いてしまい恐縮です。
引き続きご助言などいただければ幸いです。

175:デフォルトの名無しさん
14/12/29 14:08:31.71 ejX6K8DG.net
>>167
IDとパスワードをサーバーに送る

サーバーにIDとパスワードを保存する

ランダムなキーファイルをクライアントに送ってキーをサーバーに保存する

クライアントはキーを暗号化して保存する

キーをキーをサーバーとクライアントでハッシュ化して付き合わせる

ユーザー名とパスワードでキーを再発行する

ではいかんのか?

176:デフォルトの名無しさん
14/12/29 16:12:54.73 xzVgQVgc.net
そういう仕事を請け負ったってことでしょ なに質問スレで他人に頼ってんの 自力解決しろ

177:デフォルトの名無しさん
14/12/29 16:13:03.88 JxUHWkxq.net
>>167
すみません、何か分かるような分からないような感じで、
実は理解できていません。

最初のIDとパスワードを送ってサーバに保存するところで、
他のアプリ(もしかするとブラウザからでも)ガンガン保存させられ放題な気がするのですが、
私の理解不足でしょうか?

178:デフォルトの名無しさん
14/12/29 16:13:49.80 JxUHWkxq.net
仕事じゃないですー。
仕事でdelphi使ってないですー。

179:デフォルトの名無しさん
14/12/29 17:48:17.47 dqp7xwI8.net
>>使用するユーザごとのユーザ名とパスワードもあるのですが、
>>こちらは、saltを付けてハッシュ化したものをDBに突っ込んでいて、
>>https接続した後のやりとりで登録したり認証したりするようにしていて、
https接続の後にユーザーごとに認証するならこれだけでいいだろ。

>>いっそ、httpsの接続はパスワードを無しにして…とも思ってきましたが、
>>httpsを生で叩かれ放題というのもなんだか怖い気がしています。
防ぎようないから。Twitterだって、公開してるAPIは叩かれる。
もちろん、https接続の後にユーザーごとに認証を通ってない
不正なアクセスは4xxの適切エラーのステータスコード返すようにして。

180:162
14/12/29 19:33:55.95 60SvMH/8.net
>>172
ありがとうございます。

やっぱり何重にも難しく考えすぎていたんですね。
サーバ側のユーザ認証だけで守るように全体の設計を考えなおしてみます。
(恥ずかしながら、現状は設計がメタメタでこれだけでは守れない部分があるのです。)

とはいえ、いずれユーザのパスワードもクライアント側で安全に保存したりしたいので、
何かしらの方法で暗号化というか、そういうことをしてローカルに保存しなきゃいけなそうなのですが、
そういうのってどうするのが一般的なのでしょう?…って、これはもうdelphiの質問じゃないですね。
自分でちゃんとお勉強してみます。

>>169
171の書き込みも私自身なのですが、あまりにも説明がなさすぎて失礼かなとも思い、改めて状況だけ説明しておきます。

以下、経緯です。長いので興味のない方は読み飛ばしてください。

友人が趣味でアプリを作っていて、これまではそのアプリを動かした結果…
といいますかスコア的なものをローカルでしか保存していなかったのですが、
サーバ上に保存してランキングなど見られるようにしたいと言われまして、
「じゃ、私がプライベートで動かしているサーバを使っていいよ」と提案したのですが、
httpsでの通信方法が分からないと言われたので、私自身は不慣れなのですが、
友人が使っているDelphiでサンプルのプログラムを作って渡したんです。

そのサンプルが、https接続のためのユーザ名やパスワードをそのまま埋め込んだもので、
友人がそのサンプルをそのまま使ってしまいそうなので不安になり、
何とかしたいと考えてここで相談させていただきました。

181:デフォルトの名無しさん
14/12/29 20:54:21.28 SG/XU+zj.net
>>171
delphiの問題じゃないから

182:デフォルトの名無しさん
14/12/29 21:23:50.87 dqp7xwI8.net
>>とはいえ、いずれユーザのパスワードもクライアント側で安全に保存したりしたいので、
>>何かしらの方法で暗号化というか、そういうことをしてローカルに保存しなきゃいけなそうなのですが、
これも、OS毎に用意されてる方法で格納しとけばいいでしょ。Androidなら、アプリごとのプライベートな領域が
あるからそこに格納しとけば、暗号化しなくても、ルートとってない限り他の悪意あるアプリからは読めないし。
Windowsの場合は・・

183:デフォルトの名無しさん
14/12/30 08


184::38:36.13 ID:2eDh0lhO.net



185:43
14/12/30 09:55:15.90 Cvbz6uT6.net
おはようございます。

上の方で恥ずかしい質問をしていた者です。
やっとまともに動くソフトができました。
お時間がありましたらご評価頂けないでしょうか?

URLリンク(www1.axfc.net)
DLkey:delphixe5

ご教授頂いた前スレ503さん126さんありがとうございました。
MCIを使おうとしましたが、TMediaPlayerで十分でした。
体験版は1時間過ぎると終了してしまうんですね。
プログラミングは40過ぎてから始めたので
いろんな意味でキツかったです。

186:デフォルトの名無しさん
14/12/30 11:16:21.30 TONqKIA4.net
>>177

>>126を書いた者だけど、自分は50過ぎてプログラミングを趣味で始めて
今はもう60歳だよ

187:デフォルトの名無しさん
14/12/30 16:33:29.28 4fPScOIH.net
>>177
興味があったのでダウンロードさせていただきました。
ソースは見てないので、使ってみて気付いた点をいくつか挙げます。
ちなみに使用環境はWin7 32bit環境です。

・「|<」 のボタンが押しても効かないような気がします。
「>|」ボタンはちゃんと動作しました。
・mp3ファイル演奏中に対応していないファイルを選択
 →「MCIの初期化で・・・」のメッセージボックスがひたすら立ち上がります。
 致命的です。
・画面右上の最大化ボタンを押したときに他のコントロールが拡大しない。
 最大化ボタン無効にすべきだと思います。

とりあえずこんな所です。頑張ってください!

188:43
14/12/30 18:20:32.11 Cvbz6uT6.net
>>178
更に先輩が…。
>>178を見たときに>>177が失礼な物言いだったと反省しています。
MediaPlayerの使い方を教えて頂いたのに、
MCIを使おうとしたのは、現在経過時間を取得するためでしたが
>>126をみてMediaPlayer1.Lengthを見てMediaPlayer1.Positionを
ヘルプで発見してMCIを使う必要がなくなりました。
>>126のソースが非常にわかりやすかったため理解が進みました。

>>179
Win32環境下でメッセージボックスが出るエラーは先ほど私も確認しました。
OSそのものが停止してしまう事態が起きて他のソフトも巻き込んでしまっていたら
申し訳ありません。[|<]と最大化の問題は修正しました。
MCIエラーは拡張子フィルターを掛けて例外処理を施します。

前スレ50さんが仰っていたソース見た/見ていないと言っていたの真意と
フィルター掛けた/掛けていないことに確認されていたことに
今更ながら気づきました。
直接関係ない別の内容でも今でもあの時はこのことを指していたのかと思うことがあります。

完全に修正をした後に再度ご評価頂ければと思います。

189:デフォルトの名無しさん
14/12/30 18:26:23.81 0ftKZTxB.net
>>177
俺も何度かレスしたけど
Delphi始めたのは三十後半だった

190:43
14/12/30 19:27:03.84 Cvbz6uT6.net
サバ読んでいますね活きの良いのが。
S48なのでそれなりですが。
Delphi4だか6でやたら分厚い何かをボーランドから買った記憶はありますが

さすがにスレチになてきたので

191:43
14/12/30 19:40:29.64 Cvbz6uT6.net
自分でスレチと言いましたが補足をすると、
それ以前からコンパイラは買っていましたが、
本が1冊10000円とかする時代だったので
手が出ませんでしたが、最近やっと買える値段になったので。

本は著作権などや資金的にクリアになったら
スキャン業者に依頼してもいいかもです。
国会図書館の方がいい気もしますが。

192:デフォルトの名無しさん
14/12/30 19:50:52.18 TONqKIA4.net
>>177
[|<]ボタンに対応するイベントの内容がおかしいね

こうすればどうでしょうか?

procedure TForm1.RevBtnClick(Sender: TObject);
begin
if FileListBox1.Items.Count > 1 then begin
if FileListBox1.ItemIndex > 0 then begin
FileListBox1.ItemIndex := FileListBox1.ItemIndex - 1;
PlayFile(FileListBox1.FileName);
end;
end;
end;

193:43
14/12/31 08:32:00.30 VKUyTWZx.net
>>184
おはようございます。
「I<}ボタンのイベントハンドラな内のメソッド(?)が間違えていました。
FileListBox1.Items.Count < 1
になっていたためです。
>>184さんのソースを解釈していたため遅くなりました。
ぱっと見全て治ってそうなものはできましたが、MCIエラーの
対処が完全ではないため後ほどロダにあげますので、
再度ご評価頂けないでしょうか。

よろしくお願いいたします。

MediaPlayerを使っていた副産物でmp4がサポートできているのを
確認しました。

194:43
14/12/31 10:56:10.21 VKUyTWZx.net
こんにちは
先ほど修正したファイルをロダにあげました。
アドレスはURLリンク(www1.axfc.net)
です。

ぜひ、不具合やご意見がありましたらお知らせください。

195:デフォルトの名無しさん
14/12/31 13:52:41.68 86KoP6xv.net
LV := Word((DWORD($FFFF * Pos)) div 100);
RV := Word((DWORD($FFFF * Pos)) div 100);

196:181
14/12/31 18:01:47.73 N43Nkg2j.net
>>182
さば読んでるって俺のことかな?俺は三十八年生まれだよ
Delphi 1 から買って少しだけ(俺自身が)まともに使えるようになってきたのは3.1の頃
職業も普通のサービス業でDelphiが初めてのプログラミングだったから
本もいっぱい買ったし毎日Niftyの書き込みを理解できないまま読みまくってフリーウェア作家にいきなり質問メール出したり
ネットが普通に使えるようになってからはググりまくった
ほとんど夜勤だったので睡眠時間を削って勉強した
しまいにはメルマガを書くようになったよ自分の勉強も兼ねて
途切れ途切れで結局十年以上続いたよ
ココまで書くと特定されるかも知れないけど

197:デフォルトの名無しさん
14/12/31 18:10:21.13 NnGydb4r.net
>>188
特定できませんでした

198:デフォルトの名無しさん
14/12/31 18:29:23.75 N43Nkg2j.net
それはありがたいw

199:デフォルトの名無しさん
14/12/31 18:30:18.08 j0o4knDn.net
>>186
ご苦労さんです。
プログラミング的には問題ないと思います。

ただ、アプリとして少々...

1. DirectoryListBox1に初期ディレクトリを設定したほうがいい
繰り返し使うと、起動直後が結構メンドクサイ。レジストリや
Iniファイルを使うのが理想的だけど、そこまでしなくても、
MyMusicフォルダを初期値とするとか(SHGetSpecialFolderPathを利用)

2. ボリュームコントロールが少しぎこちない
以下のサイトを参考にするのもいいかも
URLリンク(www.swissdelphicenter.ch)

3. PlayFileメソッドの入り口で、最低でも拡張子のチェックをしたほうがいい

4. サウンドファイルの拡張子として *.wma もお忘れなく

200:43
14/12/31 18:45:16.10 VKUyTWZx.net
>>188
サバを読んでいたのは私でした。
最初にこのスレに書き込んだのはRAD Studio2010を購入した頃でしたが(確か)、
勉強し始めて質問したのは2013年四月頃でしたので、当時は30後半でもアリ
今は40過ぎでもあり…。最近はIEの倍率が150%位で使っていますが。




201:рヘWizard常連だった瑞輝智佳さんという方がPascalへの熱い思いを語ってるのを聞いて。 2000年頃4を購入した記憶が…。 知り合いにプログラミングを進められたときにRAD Studio2010を買って今に至ります。 >>187 waveOutSetVolumeと言うものがあるんですね。さっきまで調べていました。 ボリュームコントロールだけは分からないと決めつけて忌避していたので、 どうしたら良いのかは少々お時間をいただけないでしょうか。 ボリュームコントロールは私の手元ではノイズが乗ったりしています。 なぜなのが分からないのですが。 ディスプレイの調子が悪くて、デスクトップを乗っ取ってネットブックから書いているため 見難いためレスが荒いのをご容赦ください。



202:デフォルトの名無しさん
14/12/31 18:59:23.64 j0o4knDn.net
ところで、>>186について、どうでもいい感想...

同梱の実行ファイルって、こんな小さいなアプリなのに
11MBもあるけど、なんで?

自分の環境(XE)だと、普通にコンパイルして1MB程度だけど

XE5でコンパイルしてるみたいだけど、XE5の問題?
それとも作者がデバッグ情報とか、なんか途方もないものを
実行ファイルに含めてしまってる結果?

203:43
14/12/31 19:24:57.14 VKUyTWZx.net
>>191
1は仰るとおりマイミュージックが無難だと思います。
元々関連づけの勉強するためでもあったので
後回し気味でした。
2は私の環境由来なのか分からなかったのと、教えて頂いた方法では
wavのボリュームコントロールができなかった気が…、
ただ単にあるべき場所似なかっただけかもしれないので
そちらについては追追試します。
1.2に時間がかかるかもしれません。

たとえば、今回だとStopBtnのProcedure~bigin~end;の間を
イベントハンドラと言って、MediaPlayer1.Stop;をメソッドで良いのでしょうか?
191を見ていて大きな間違えをしている気がしました。

204:デフォルトの名無しさん
14/12/31 20:54:06.19 j0o4knDn.net
>>194
>wavのボリュームコントロールができなかった気が

確認した。Waveだとダメなんだね。

自分の環境だと、TrackBarを動かすと、イベントが発生しすぎて
再生がギクシャクしてしまう。で、以下のような変更するといい感じ


var
fVolume: DWORD = 0;

function VolumeChange(Pos: Integer):Boolean;
var
Volume:DWORD;
begin
// TrackBar1.Positionが100以上変化した場合のみ音量調整
if Abs(fVolume - Pos) > 100 then begin
Volume := ($FFFF * Pos) div 100;
Volume := MakeLong(Volume, Volume);
waveOutSetVolume(WaveDevID, Volume);
fVolume := Pos;
end;
end;

205:デフォルトの名無しさん
15/01/01 01:04:50.77 tUgicYeE.net
>>193
なんの確認もせずに憶測で書くけど(186のリンク先すら見ずに)

実行時パッケージを使わずに作っているだけじゃね?

206:43
15/01/01 08:03:05.21 KleUIheK.net
明けましておめでとうございます。
>>196
そうです。
チェックを入れたら、2MBくらいになりました。
ただ、今まで作ったものだと「エラーがあります」とだけでて
コンパイルできないので、新しく作り直したらMCIのエラーがでて
困っている状況です。

昨日のうちに解決する予定でしたが、ダメでした。

207:43
15/01/01 11:59:53.56 KleUIheK.net
こんにちは
先ほどファイルをあげました
いつのアーカイブの中に2つのアーカイブが入っています。
1つが今までのものと大差はありません。
ファイルサイズを小さくするために実行時の~に
チェックを入れ得コンパイルすると「エラーがあります」
とだけ表示されて止まってしまうもの。

もう一つは実行時~にチェックを入れるために作り直した者です。
こちらはファイル静は小さいですが、MCIのエラーが出ます。
原因はFileListBox.Filename=''でMediaPlayerに渡しているためと
推測していますが。デバッガーで追う前に停止してしまう状態です。
194の後ずっといじっていましたが分かりませんでした。
お手間をおかけしますが、お知恵を頂けないでしょうか?
URLリンク(www1.axfc.net)
です。
特殊フォルダの指定は、勉強に時間がかかるため積み残しています。
今は、紙に出力して赤ボールペンで理解している状態です。
よろしくお願いいたします。

208:デフォルトの名無しさん
15/01/01 12:21:14.52 CiUnxHWA.net
すいませんここデバッグ依頼スレじゃないんで(^^;

209:43
15/01/01 14:17:40.87 KleUIheK.net
そんなつもりはなかったのですが、
そう映ってしまったのでしたらスマンです。

210:デフォルトの名無しさん
15/01/01 15:38:20.06 5hCvChV4.net
別にいいだろ。誰もいないんだし。

211:デフォルトの名無しさん
15/01/01 17:03:50.41 bUNGYu+u.net
>>199の能力が低くて理解できなかっただけなのでお察し下さい

212:デフォルトの名無しさん
15/01/01 18:07:02.74 tUgicYeE.net
>>198
実行時パッケージを使わないでコンパイルが通るならそれでいいんじゃね?

>原因はFileListBox.Filename=''でMediaPlayerに渡しているためと
>推測していますが。デバッガーで追う前に停止してしまう状態です。

・エラーが発生していると推測するコードの前後にブレークポイントを仕込む。
 「前のブレークポイントは正常に停止、後ろのブレークポイントで止まらずエラーが出る」ならその間のコードに問題があると判断できる。
 (エラー箇所を特定する)

・TButtonを適当にくっつけてOnClickイベントにエラーが起きていそうなコードと、それの実行に必要な最小限のコードを書いて実行してみる。
 MediaPlayerにどういうデータを渡すとエラーになるのかを調べる
 (エラーの理由を調べる)
 →理由が分かったならそれを回避するコードを書く

で、Filenameが空でMediaPlayerに渡すとエラーになると思うなら、渡さないコードを書けばいいんじゃねーの?
(あとアップロードされたファイルはrarなんで見ていない。)

213:43
15/01/01 18:08:44.28 KleUIheK.net
できました。
55分毎に保存と再起動。
しかも、作り直したものはMCIのデバイスエラーが消えず、
昨日あげたものはなぜか実行時~チェックしても
コンパイルできてた。サイズは2MBくらい。直近15時間くらい返して欲しい。

ご評価ぜひともお願いいたします。
URLリンク(www1.axfc.net)
寿命は3時間くらいです。

214:43
15/01/01 18:11:10.25 KleUIheK.net
書き込みが…

rarはダメなんですか。rrつける癖が付いているので何も考えずに圧縮してました。
lzhとかの方が良いでしょうか?

215:デフォルトの名無しさん
15/01/01 18:31:44.35 tUgicYeE.net
自分が解凍できない(解凍ソフトを入れる気が無い)だけでダメとかじゃないよ

216:43
15/01/01 18:55:51.91 KleUIheK.net
こんばんは。
>>203
しつこくステップで1行ずつ動かしていましたり
try-except-end構文など試しましたが、渡す前というか、
フォーム作った瞬間にMCIオープンエラーが出ています。

あたらしく作ったものは履歴をとっていて
プロトタイプ(FilelistboxとplayBtnとNext<Stop,ediaPlayer)
のものだとエラーが出ていなかったので
ちゃんと調べると実力が付くかと思っています。
突然出始めたのではっきりとした理由が分かっていません。

217:デフォルトの名無しさん
15/01/01 21:30:27.29 FNdBmO0/.net
43さんのエラーの説明はよく分からない。ごめん。

それとは別に、自分だったら、こう作るかなっていうサンプル
URLリンク(www.geocities.jp)

43さんのコードは、インデントなし、コメントなし、使用されてない変数宣言あり、
変数や関数/メソッドの宣言場所が不適切...
まだまだ勉強すべき部分が多々あるような気がする

がんばってください

218:43
15/01/02 07:20:31.60 QEqgZHjs.net
>>208
おはようございます。
すごい…
ボリューコントロールのうちポインタを使う方法の例もありましたが
Cを�


219:冾゚た理由の1つでもあったのでポインタを使う方法は避けていました。 後は>>191と>>187でした。 印刷して読んで他はついていけそうです。 今こそ、ちゃんとオフィシャルコースとかを読むべき時期が来たかと >43さんのエラーの説明はよく分からない。ごめん。 エンジニアは技術を言葉に翻訳できないと話にならないのですが、 分からないところをが分からなかったので上手く説明できませんでした。 総じて40年生きていた人間の文章ではありませんでした。 大晦日から助けてくださった皆様ありがとうございました。 自分の力で何とかできるよう精進いたします。



220:デフォルトの名無しさん
15/01/02 11:24:12.89 5UO7QPlf.net
>>209
これからコードを示す時は>>208みたいにソースの状態でアップするか、
それができないならpastebinやgistみたいなサービス使った方がいいよ
圧縮ファイルになってるだけでブラウザ、アーカイバ、エディタと必要な手順が多くてそれだけで人を選ぶ
ブラウザだけで見れた方がまだ見てくれる人は多いと思う

221:43
15/01/02 14:23:37.93 QEqgZHjs.net
>>210
>>203

222:43
15/01/02 14:33:47.90 QEqgZHjs.net
>>210
>>203
>>(あとアップロードされたファイルはrarなんで見ていない。)
で、アーカイバの形式のことをさしていたのかと
ボケをかましましたが、上野他の方は皆ソースを書き込んでいたのを思い出し
あとで、それがこのスレのお作法なのだと後で気づきました。
このスレだけでは無いとも思いますが。
プロジェクトファイルが必要なのは自分だけですし。

あのソースでも整形を掛けるとだいぶ見やすくなりましたが、
検討中の残骸を残すよりも、文章で書いてあった方が自分でも分かります。
たくさん勉強させていただきました。

223:デフォルトの名無しさん
15/01/02 15:25:11.92 YfMEguvw.net
せめて圧縮するならWindowsのエクスプローラも標準で対応してるzipでいいと思うけど。rarとか実質1社しか圧縮ソフトだしてないようなフォーマットは俺も嫌いだわ。

224:デフォルトの名無しさん
15/01/02 18:01:04.64 tVz4tZc7.net
203だけど・・・

>>212
>アーカイバの形式のことをさしていたのかと
>ボケをかましましたが、
自分を巻き込まないでくれwww
>>213も言っているが、自分は普通にアーカイバの形式のことをさしていたんだよ
XP以上ならzipは標準対応だしlzhならまだ利用者はいると思う

>あとで、それがこのスレのお作法なのだと後で気づきました。
単純にそのほうが早いからというだけ
ファイルをアップロードさせるのは面倒だし、
同時に相手方もダウンロードする(リンクを踏む)必要があって読まれない可能性が高い。
あとは丸々ソースコードアップするのは恥ずかしいwという人もいるwww
だが部分的なコードで説明するよりは全体を見てもらったほうが間違いを発見しやすい
どちらがいいかはケースバイケース

225:デフォルトの名無しさん
15/01/02 18:09:26.64 DxMaNM7u.net
いろんな人がいますが
43の人がんばってください

226:43
15/01/02 22:44:02.66 QEqgZHjs.net
>>208
午後まるまる掛けてソースを読んでいました。
学会的な質問できる箇所を探していましたが、
ポインタがらみの初心者的なことしなく…。

ただ、「このイベントの必要なのか」は、
本当はon ClickイベントでDirectoryListBoxで
シングルクリックでFileListBoxの内容が表示されるはずでした。
ポカで忘れてました。

227:デフォルトの名無しさん
15/01/05 23:30:25.59 qGsDlbmF.net
array [0..1024] of char をstringにキャストするとヌルが切り詰められるのか

228:デフォルトの名無しさん
15/01/06 00:22:37.03 xz5brL/O.net
>>217
Nullで終わるarray of charをstringにするのは
キャストするか単に代入するだけでいいと思ったけど?

「ヌルが切り詰められる」って、どういうこと?
文字配列の最初のヌル文字までが文字列にコピーされると思う

229:デフォルトの名無しさん
15/01/06 21:57:55.01 1/BDcPAc.net
実体は、PChar型を引数に受けstringを返す関数(名前忘れた、System.pasにあるやつ)が呼ばれてるんだっけ?

配列があらかじめゼロクリアされてれば、最初のnull byte (\0) までで文字列化だったかな

230:デフォルトの名無しさん
15/01/08 03:25:37.20 tyG0saF2.net
SetString

231:デフォルトの名無しさん
15/01/08 09:15:20.78 Aj3Xuad4.net
>>220
SetStringってヌルで終わらない文字配列の文字列へのコピーって感じかな

ヌルで終わる文字配列の場合はStrPasが簡単だけど今は非推奨?
てかStrPasのソース見ると代入してるだけ
function StrPas(const Str: PChar): string; begin Result := Str; end;

要するにヌルで終わる文字配列の文字列化はコンパイラがやるから
代入なり型キャストするだけでいいよって感じ?

そもそもdelphiの文字列の実体ってヌルで終わる文字配列の前に
各種情報を加えただけだしね

232:デフォルトの名無しさん
15/01/10 15:11:33.00 +sMS8xW2E
まったくの初心者です。
申し訳ありませんが、親切な人教えてください。

環境:Delphi XE5、Windous7

Androidやios用のアプリを作りたい場合は、新規作成でどのモードを選べばいいですか?

FireMonkey?マルチなんとかってやつ?

それと、Windows、iPhoneで実機テストとかできますか?(ios)
macが必要?

Windowsでiosのエミュレート表示は出来ますか?

233:43
15/01/16 00:52:54.05 2sT6Trbs.net
また分かりにくい質問でスミマセン。

d:\music\1.wav~10.wavで、5.wavをダブルクリックしたときに
ListBoxコンポーネントなどで、カレントフォルダ内のファイル
を確認した上で5.wavから再生する方法はどうしたら良いのでしょうか?
サイトを見ていますが、難しいように見えて困っています。

234:デフォルトの名無しさん
15/01/16 01:01:00.45 l+MLYS0e.net
>>223
FileExistsではいかんの?

235:デフォルトの名無しさん
15/01/16 01:16:05.51 2sT6Trbs.net
>>224
やっぱり書き方が悪かったようです。すいません
コマンドラインの引数としてバイナリに渡したいのです。
??.mp4をエクスプローラー上でダブルクリックすると
wmpが起動して再生が始まりますが、あんな事をしたいと考えています。

236:デフォルトの名無しさん
15/01/16 01:20:06.02 l+MLYS0e.net
>>225
ShellExecuteじゃいかんの?

237:デフォルトの名無しさん
15/01/16 06:21:50.59 unydFLdh.net
わかりにくいと思うならわかりやすく書け

238:デフォルトの名無しさん
15/01/16 07:44:06.42 YUNboWcm.net
ParamStr(0)を解析する

239:デフォルトの名無しさん
15/01/16 09:43:34.42 WlqGo9rc.net
まず下のページが理解できないと難しいかも

拡張子の関連付けの登録と削除
URLリンク(mrxray.on.coocan.jp)

240: ◆rW3tmvmDLc
15/01/16 15:57:09.60 Kw2ffNwT.net
>>223,224
残念ながらまだわかりません。
細々とした手段の話よりまず先に自分が何をやりたいか(目的)を伝える方が上手くいきやすいと思います。

あなたが作りたいものがWMPもどきのメディアプレイヤー(ぽいもの)で
エクスプローラー上で拡張子が.wavのファイルをダブルクリックすると
そのWMPもどきが起動してそのファイルを再生させたいのか、

それとも自作アプリのウィンドウに表示されている拡張子が.wavのファイル名を
ダブルクリックするとWMPを起動させてそのファイルを再生させたいのか、

あるいはこれらのどちらでも無いのか。

241:デフォルトの名無しさん
15/01/16 16:44:25.11 2BjlVLjD.net
>>230
これまでの彼の発言を見てると明らかに前者だろうね

で、プログラムで拡張子の関連付けの変更はやめたほうがいい
レジストリを弄るから彼には危険すぎる
OSのツールを使った方がいい

後は>>228の言ってるようにパラメータをチェックして
再生可能ファイルだったら再生するとか…

242:デフォルトの名無しさん
15/01/17 01:45:05.14 AUdFKm9H.net
こんばんは

>>227
>>227
分からないところが分からないって感じで…。お手数をおかけします。
キーワードを知らないことが多いです。
>>229
どうもです。最初Mr.XrayさんのところのドキュメントNo.480,485辺りを読んでいて
分からないところだらけで途方に暮れました。今年の正月に怒濤の修正がだいぶ入ったことを経験したのである程度なら読めます。
>>230
遠雷さんという方が作ったmp3再生君が目標です。
ソフト見ながら解説して頂けると良い感じですが、そこまでは図々しいですね。
今後は
こんなソフト作りたい→今ここではまって増すみたいな方が良いですか?

がんばってきます

243:デフォルトの名無しさん
15/01/17 02:59:50.72 4Lb0lwbg.net
>>232
このテンプ埋めるところからやろうぜ

・何がしたいか(最終目標)
・自分はどうやったのか
・何に躓いているのか
・エラーが出るならエラーの詳細
・必要な動作と違うなら何が違うのか

244:デフォルトの名無しさん
15/01/17 12:29:18.44 21HK+xF0.net
まだやる気かいな

まずコテつけろ(相手にしたくないと思ってる人もいるはずなので)
手を抜かず説明をしろ(現在置かれている状況と、既にわかっていることと、そこからやりたいこと)
読んだ人が労力をかけずにわかるようにURLとかをちゃんと書け

つまりは自分勝手ではなく、同じことを他人から質問されたときに答えたくないと思うようなことをするなってことだ

245:デフォルトの名無しさん
15/01/17 13:42:00.60 5xjQBKbi.net
>>232
漠然と分からないじゃ答えられないよ

具体的にコードを示して、ここの意味が分からないとかじゃないと

で、拡張子の関連付けとか、たぶんDelphiの問題ってより
Windowsの領域でしょ

基礎が理解できてなくてプログラミングとか無意味

246:43
15/01/17 13:50:28.45 AUdFKm9H.net
>>233-235
まず>>229を読んでみます。

247:デフォルトの名無しさん
15/01/17 14:08:43.27 04tEzZEv.net
>>236
理解してもしなくてももう帰ってこなくていいよ
あんたの日記帳じゃないんだからさ

248:43
15/01/17 18:43:02.90 AUdFKm9H.net
>>233
テンプレの内容を満足できるところまで考えて落とし込みます。
>>234
もう少し頑張らせてください。
読んで頂ける方への労力を考慮していませんでした。
>>235
>>基礎が理解できてなくてプログラミングとか無意味
はい

249:デフォルトの名無しさん
15/01/18 16:46:47.52 emdSicrZ.net
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

250: ◆rW3tmvmDLc
15/01/19 04:27:28.63 5CoFZp7P.net
>>232
MP3再生君がどういうソフトなのかはサイトの説明で大体分かりました。
自作のMP3再生君もどきを自分で使うだけなら
拡張子.mp3と再生君もどきとの関連づけはプログラムを書かなくても
エクスプローラーで指定するだけでいいように思います。



> こんなソフト作りたい→今ここではまって増すみたいな方が良いですか?

はい、そうです。
自分がやりたいことの解決策だと思っていたことが間違っている場合もありますし
もっと良い解決策がある場合も多いです。

ちなみに伝えたいことを言葉にするのって自分の経験からすると難しいことだと思いますが
何度も何度もやってみていくうちにある程度は鍛えられると思います。

251:デフォルトの名無しさん
15/01/19 12:27:37.81 C/c4zK1+.net
彼は去年からたびたびここに書いてるけど
表現力の点で進歩はないような


252:… 最初のレスはいつも意味不明で



253:43
15/01/19 16:50:16.37 55Bbi6Ar.net
コテをつけるようにと言われているので、つけています。
>>240
関連付けのお手本がmp3再生君なのと、具体的な解説ページが
分かったとの少し筒勉強しています。

中学生以来の体験ですが、分からないところが分からなかったため、
スレ住人の方にはご迷惑をおかけしました。
でも、もう帰ってくるなとか言わないでくださいね。かなりショックでした。

>>241
とりあえず、文系ではないよねと言われていますが、
技術を言葉に翻訳できないのはエンジニアとしてどうかと思っています。

今年の年末の進行のおかげで、ソースをある程度の内容であれば
頭の中で追えるようになりました。

254:デフォルトの名無しさん
15/01/19 19:57:05.26 +tMUrZZM.net
ここに書き込む前に下書きして、次の日それを自分で読んでみるといいよ
時間を置くのは推敲の基本
まとまって無い状態でアウトプットされて、それを読まされる方の身にもなろうね

255:デフォルトの名無しさん
15/01/19 21:51:14.76 c5aUr1nh.net
読みたくないやつは無視すりゃいいんで、気にすんな。そのためのコテハンだし。

256:デフォルトの名無しさん
15/01/20 00:53:13.19 9eNrvNBv.net
>>43

コードが書かれているわけじゃないが
ここの解説は役に立つかも

逆に言うと、この程度の基礎知識がないと
関連付けを使ったプログラミングは難しいかも

URLリンク(tunemicky.blogspot.jp)

257:43 ◆HdTBZ7DE26
15/01/23 06:48:34.00 vL4LxJti.net
>>

258:デフォルトの名無しさん
15/01/25 20:53:55.82 qa0tIS8x.net
ちょっと教えてください。

浮動小数点の内部表現の問題だと思うんですが、以下の例のように
その精度によってTruncの結果が異なるようです。
たぶん13が内部的に12.9999...となる場合があるのが原因だと思うんですが。

var s: single; d: double; e: extended;
s := 1.2; d := 1.2; e := 1.2;
ShowMessage(Format('1.2: single=%1.1f, double=%1.1f, extended=%1.1f', [Trunc(s*10)/10, Trunc(d*10)/10, Trunc(e*10)/10]));
// 結果1.2: single=1.2, double=1.1, extended=1.2
s := 1.3; d := 1.3; e := 1.3;
ShowMessage(Format('1.3: single=%1.1f, double=%1.1f, extended=%1.1f', [Trunc(s*10)/10, Trunc(d*10)/10, Trunc(e*10)/10]));
// 結果1.3: single=1.2, double=1.3, extended=1.3
s := 1.4; d := 1.4; e := 1.4;
ShowMessage(Format('1.4: single=%1.1f, double=%1.1f, extended=%1.1f', [Trunc(s*10)/10, Trunc(d*10)/10, Trunc(e*10)/10]));
// 結果1.4: single=1.3, double=1.3, extended=1.4

目的は実数を10倍して、小数点以下を「切り捨て」て整数として保存しておき、
必要に応じて10で割って元も実数に戻したいわけです。
どのようにしたらいいでしょうか?

環境はDelphi XEで作る32bitアプリです。extendedだと精度が高いせいか結果が正しいんですが
64bitアプリにすることも考えると、使いたくないと考えています。

よろしくお願いします。

259:デフォルトの名無しさん
15/01/25 22:24:21.51 wrmvKfvK.net
> 実数を10倍して、小数点以下を「切り捨て」て整数として保存しておき、
もうわかっていると思うけど、このときに誤差が入る。切り捨てを前提とするなら、意図した値になるように
小さい値を足してあげればいい。

260:デフォルトの名無しさん
15/01/25 23:15:12.97 ZEYzfSIs.net
>>248
なるほど...

小数点のあとに9がどのくらい続くの分からないけど
0.000...1とか足してからTruncすればいいんですね

ありがとうございました。

261:デフォルトの名無しさん
15/01/26 14:50:17.58 Pa0ci83e.net
そういう場合は浮動小数じゃなくCurrencyとかTBcdを使った方がいいんじゃないの
なんでわざわざ誤差を作りこむようなアホらしい処理が必要なのかわからないけど、
本当は対症療法よりもっと根本的な部分で解決した方がいいと思う

262: ◆rW3tmvmDLc
15/01/26 17:57:31.38 m7Kr84jL.net
>>247
コンピューターでよく使われる浮動小数点形式では
なんと10進数の1/10(0.1)を正確に表現することが出来ません。
つまり1を10で割るだけで(切り捨てなくても)誤差が出てしまうのです。

これらの形式では数値は二進数として格納されていて、
10進数の0.1は二進数では無限小数になってしまうので有効桁数いっぱいで切り捨てられてしまい、
正しい値を表現できないのです。

ゆえに実数を10倍して10で割って元に戻したいならsingle, double, extended型は使ってはいけません。

ではどうすれば良いかというと>>250さんの通りです。
精度が小数点第4位まででよろしければcurrency型を使って下さい。変数型をこれに変えるだけでOKです。
この数値型は値を10000倍して64ビット整数型として格納しているだけなので
たとえば1は10000として、0.1は1000として格納されるので1を10で割っても誤差が出ないのです。

TBcd型は私は使ったことがありませんがBCDは「二進化十進数」と訳されていて
4ビットごとに10進数の各桁の0~9の値を格納してあくまで10進数として扱う方法です。
専用の手続きで計算しなければならないようでめんどくさそうではありますね。

あるいは10倍したり10で割るというやり方そのものを見直す必要があるかもしれません。
目的とのことですが私にはどうも手段のようにも見えます(本当に目的だったらごめんなさい)。

263:デフォルトの名無しさん
15/01/26 19:55:12.67 q2qVRi4l.net
>>250
そうですね。よく考えたらCurrencyを使うべきケースですね。
Currencyが固定小数点変数だということは頭の中にあったんですが
なぜだか今回は思い浮かばなかったです。

Currencyを使う方向で修正しみます。

>>251
分かりやすい解説ありがとうございます。

実は0<=X<10(あくまでも例です)の実数値の大量のデータがあり、
10~10000倍してByteやWord型としてファイルに保存し、
必要に応じて読み込んで元の実数に戻すってことをやってるところです。

264:43 ◆HdTBZ7DE26
15/01/26 20:51:38.21 rN49mNrC.net
とりあえずトリップつけました。
>>244
このスレ見るのは結構怖いですよ。結構色々言われてましたし。
いわゆる荒しの方のいくら叩かれてもへこまない精神力というのはすごいなと思います。

265:デフォルトの名無しさん
15/01/26 21:01:53.92 P42EVsRu.net
で?
Delphiの質問は何かな?

266:デフォルトの名無しさん
15/01/26 21:07:02.80 BTweobmD.net
まぁあの質問じゃいろいろ書かれんのはしょうがない気がする。ただ書くな、来るなってのは(ここに限らず)
違うと思う。>>43の書き込みが嫌なら見なきゃいいし、親切に回答してくれる人も何人かはいるんだから。
要するにめげずに質問する>>43は書くな、来るなとか書くやつよりは遙かにマシってこった。

267:43 ◆HdTBZ7DE26
15/01/26 22:36:01.35 rN49mNrC.net
>>254-255
連投規制だけじゃなくて花が咲いたとか出ていて書き込めませんでした。
年末にあげたものはMediaPlayer使いましたが、元々はMCIの勉強のために試作していたものでした。

268:デフォルトの名無しさん
15/01/26 22:47:23.41 khqyHCqi.net
凄い自演を見た気分だぜ・・・

269:43 ◆HdTBZ7DE26
15/01/26 22:51:01.57 rN49mNrC.net
さくらが咲いているとかでかきこめない

270:デフォルトの名無しさん
15/01/27 01:10:28.12 L148k2+x.net
ちゃんと書き込めてるじゃん

271:デフォルトの名無しさん
15/01/27 10:25:00.88 qFBg0/NV.net
ちゃんとした理由を書いた上で批判してる奴も全部荒らし扱いか
質問とは関係ない話でダラダラ伸ばすのが嫌いな奴も多いし、
馴れ合いがしたいならそういうのも気持ち悪いくらい相手してくれるMLに行けばいいのに

272:デフォルトの名無しさん
15/01/27 18:16:47.71 J7FqiF9r.net
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

273:デフォルトの名無しさん
15/01/27 18:33:13.19 6Jp0TBFU.net
コテハンとトリップ外して書き込まなくていいから

274:デフォルトの名無しさん
15/01/27 18:50:38.18 BcCd


275:psTR.net



276:デフォルトの名無しさん
15/01/27 20:41:51.97 iEDPvIyz.net
>>260のように指摘されるのが分かっているので
指摘されているのを怖いという趣旨の発言でしたが
上手く受け取っていただけない文章で申し訳ない。

荒らしというのは12/31から1/1の書き込んだ私の投稿をさして言っています。

277:デフォルトの名無しさん
15/01/27 20:59:37.56 iEDPvIyz.net
さくら咲きまくり、どうしていいのか分からない、
世間話的なのはさくらが咲くルールが分からないから

278:デフォルトの名無しさん
15/01/27 21:06:24.59 L148k2+x.net
もういいだろ
質問がないんだったら書き込むなよ

質問すれば答えがあるかもしれないし、ないかもしれない

ルールについての話は別の場所でやれ

279:デフォルトの名無しさん
15/01/27 21:22:44.74 iEDPvIyz.net
delphi mciでググると最初に出てくるページの通りにすると
致命的なエラーが出ます。

280:デフォルトの名無しさん
15/01/27 21:24:49.31 iEDPvIyz.net
自分のコードが悪いのか、お手本なのか切り分けができません。
他のサイトを見ながら修正しても、playでも音が出ません
音量ミキサーにもソフト自体が表示されません。

281:デフォルトの名無しさん
15/01/27 21:41:25.85 iEDPvIyz.net
サクラとか規制のせいで説明しきれないのですが、良い方法はありますか?

282:デフォルトの名無しさん
15/01/27 21:47:11.98 iEDPvIyz.net
{ Public 宣言 }
end;

var public
Form1: TForm1;

//implementationの前に以下関数をインポートする必要が有ります。

//mciSendString関数をインポートする
//mmSystemで無くDLL使うとPcha型キャスト不要
fnction mciSendString(lpstrCommand: string; lpSectorsPerCluster : string ; uReturnLength : Integer; hwndCallback : integer): integer;Stdcall;
external 'winmm.dll' Name 'mciSendStringA';

implementation

{$R *.DFM}

mciError := mciSendString('open "' + AFName +'" type MPEGVideo'+ ' alias '+FMCIEriasName, '', 0, 0) ;
mciSendString('window '+FMCIEriasName+' handle ' +
IntToStr(FMCIDsphandle),'',0,0);
など

ヒントなどいただけないでしょうか

283:デフォルトの名無しさん
15/01/27 21:49:38.12 mRBjUfrP.net
Win32APIなのに引数にString型はねーだろ。PCharまたはconst PCharだ。

284:デフォルトの名無しさん
15/01/27 21:55:22.84 mRBjUfrP.net
あー検索して最初にひっかかるサイトがダメなやつなのか。uses MMSystemを追加して、
fnction mciSendString...'mciSendStringA';は削除だ。

285:たぶんこれ以上の長さはダメ
15/01/27 21:59:04.24 iEDPvIyz.net
これmciSendStringの使い方サイトものを丸写ししたものなんです…。
アドレス入れると咲いちゃうので

286:デフォルトの名無しさん
15/01/27 22:12:58.19 mRBjUfrP.net
そのページが間違ってるってだけ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch