X



くだすれDelphi(超初心者用)その57 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2016/10/13(木) 13:21:54.84ID:7i5E+q2+
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)のライセンス取得とダウンロードが可能。(アカデミック不可)
ttp://www.embarcadero.com/jp/products/delphi

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

■Embarcadero RAD Studio XE6 (Delphi、C++Builder、HTML5 Builder等を含むビジュアル開発スイート)
ttp://www.embarcadero.com/jp/products/rad-studio

<前スレ>
くだすれDelphi(超初心者用)その56
http://echo.2ch.net/test/read.cgi/tech/1405783063/

<過去スレ>
DelWiki (Delphi 関連の過去スレッド)※行方不明
ttp://delwiki.info/?
0006デフォルトの名無しさん
垢版 |
2016/10/15(土) 08:01:16.21ID:Wck8f7HF
>>4
今はAnsiStringなら>5でOK。
ShortStringだとstraaaa[0]に長さが入ってるので
@straaa だけだと PChar と互換性ないから
0008デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:03:38.40ID:u9f1SlFV
有料版買えばandroidで動くプログラムをDelphiで作れるの?
Indyみたいなhttpコンポーネントって使えるのだろうか?
0009デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:24:59.98ID:DkHWfezI
>有料版買えばandroidで動くプログラムをDelphiで作れるの?
モバイルパック?だかなんだかを買わないといけないんじゃねぇか?
Starterでモバイルパックつかえなきゃ、Pro版も買わないといけんと。
>Indyみたいなhttpコンポーネントって使えるのだろうか?
Indy使わなくても最新のにはhttpのクライアントライブラリ含まれてるからそれ使えば?
0010デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:41:43.85ID:PmRH05Ee
cとかc++のenumって、Delphiの列挙型ということでいい?
集合とは違うんだよね?
0014デフォルトの名無しさん
垢版 |
2016/10/22(土) 10:30:31.92ID:VBuj+teK
tabsheetの色を変えられるようにしたんだけど、clBtnFaceを指定しても白くなるんですけど何故でしょうか?
他の色は反映されます。
Delphi10.1Berlinを使っています。
0015デフォルトの名無しさん
垢版 |
2016/10/22(土) 10:35:27.82ID:VBuj+teK
バカみたいな質問をしてしまいました。
clBtnFace以外は反映されるのでプログラム的には間違いはないと思います。
clBtnFaceだけ弾かれる理由ってあるんでしょうか?
0017デフォルトの名無しさん
垢版 |
2016/10/22(土) 11:01:18.05ID:AS0AO2zF
>>15
勘だけと、システムカラーだからOSのテーマカラーが優先されて使われてるんじゃないのかな?
0018デフォルトの名無しさん
垢版 |
2016/10/22(土) 11:34:02.15ID:VBuj+teK
ありがとうございます。
と言ってもどうしていいか分からないのでパネル貼ります。w
0019デフォルトの名無しさん
垢版 |
2016/10/23(日) 10:04:04.33ID:FT6Wwhog
昔Del7で作ったExcelを操作するプログラムを、Berlinで作り直したいんだけど今だとFirerDacを使うんですか?
取り敢えずやりたいことは、xlsxをcsvに変換したいだけなので簡単な方法があったら教えて下さい。
0021デフォルトの名無しさん
垢版 |
2016/10/23(日) 13:40:03.44ID:MP5NXD0l
今まで Delphi 7 で作っていましたが、Delphi 10.1 に移行することにしました。

そこで、10.1のListViewの挙動について質問です。
D7では、以下のコードで ListItem の一行の背景全てが綺麗に塗りつぶされていましたが、
10.1では Caption と SubItems[0]、そして SubItems間で 2pixel の白い区切り線のようなものが出来てしまいます。
回避方法をご存知の人は教えて下さい。

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Not Odd(Item.Index) then
begin
with ListView1.Canvas do
begin
Brush.Style := bsSolid;
Brush.Color := clLime;
end;
end;
end;
0023デフォルトの名無しさん
垢版 |
2016/10/23(日) 15:14:16.61ID:MP5NXD0l
>>22
GridLines は False です。
試しに True にしても同じように 2pixel の区切り線が出ます。
他の人の環境では出ないのでしょうか?
0025デフォルトの名無しさん
垢版 |
2016/10/23(日) 16:44:38.74ID:kZkGsd/R
ちょっと教えてください

CD-ROMドライブのデバイス名(「EX-DVD04K」とか)と
ドライブ名(「D」とか)の一覧を得たいんですが
それぞれ別の方法で取得できるんですが、
複数のCDドライブがあると、対応が分かりません(EX-DVD04K = D)。

たぶんAPIを使うことにあると思います。

似た質問はあったんですが、回答がない...
ttp://okwave.jp/qa/q1942763.html
003019
垢版 |
2016/10/24(月) 11:23:45.88ID:V1HEhUaE
>>20
ありがとうございます。

delphiは久々なのでググりまくってる最中なんですが
Excelのコンポーネントとか有ったと思うんだけど今は無くなった?
悩んでてもしょうがないのでXRAYさんのサイト見ながらやってみます。
003219
垢版 |
2016/10/24(月) 12:20:49.82ID:V1HEhUaE
>>31
>Excelのタイプライブラリ取り込めばおk
おぉ、そんなのありましたね。
一気に進めそうです。
ありがとうございます。
003319
垢版 |
2016/10/25(火) 23:13:37.93ID:PC8b9+iO
oleコンテナだけでExcelのブックを表示できました。
昔とは違うんですね。
ただ、Excel本体も立ち上がってくるのですが、Excelは立ち上げずにブックを弄るにはどうしたらいいでしょうか?
003619
垢版 |
2016/10/26(水) 00:18:32.99ID:5VsTRTiY
>>34
ありがとうございます。
試してみます。
0041デフォルトの名無しさん
垢版 |
2016/10/30(日) 03:41:18.12ID:5WyC57Kn
>>40
「デフォルトレイアウト」から「クラシック(ドッキングなし)」に変えたら
Delphi7のような画面レイアウトになるけど、お望みの回答かどうかはわからない。
0042デフォルトの名無しさん
垢版 |
2016/10/30(日) 08:46:34.99ID:GMyWViLu
丸が幾つか描かれているbitmapがあるとして特定の丸の色を変えたいと思い、
丸の上にshapeの丸を置いて対応しました。
このbitmap上の丸とshapeをきっちり対応させる方法ってないですか?
bitmapの大きさ変えたりスクロールさせた時にshapeも追従させたいのですが。
004442
垢版 |
2016/10/30(日) 13:14:20.67ID:VzVr3D3G
>>43
説明不足ですみません。
ビットマップの画像ファイルを貼り付けた状態と言うことでした。
0045デフォルトの名無しさん
垢版 |
2016/10/30(日) 15:20:00.36ID:+fHRwEF9
>>44
じゃ、ビットマップ内の円を直接塗りつぶすのがいいよ?

モグラ叩き(?)みたいに動的に表示するんだったら
1) Bitmap0にオリジナルをロードしておいて
2) Bitmap1に都度コピーして任意の円を塗りつぶす
3) そんで最終的にPaintBoxのCanvasにコピーする
4) これを繰り返す

Shapeを使う必然性があるんだったら別だけどね
004642
垢版 |
2016/10/31(月) 20:22:37.53ID:I4hSi9OL
>>45
ありがとう!!
出来ました、
0047デフォルトの名無しさん
垢版 |
2016/11/01(火) 14:44:48.26ID:aPCKG/Vh
Delphi10のインストーラーが一瞬立ち上がってすぐ終了してしまうのですが原因がわかる方いませんか?
サポートサイトを見てもレジストリを触る事しか見当たりません。
どなたかよろしくお願いします。
0049デフォルトの名無しさん
垢版 |
2016/11/01(火) 17:44:57.98ID:wawt2m9n
まずはdependencywalkerとか
あとウィルスチェックソフト止めるとか
ファイアウォール開いてみるとか
0052デフォルトの名無しさん
垢版 |
2016/11/03(木) 13:26:56.03ID:2mKhPyDG
符号付きのダブルワードとか言うデータを扱う事になったんだけど、普通に数値が相手から送られて来ると思ったら
16Bit毎に分かれて、しかも、-だと65535とか-が付かない値が送られてくるんだけどプロの人はどうやってるの?

ググったら変換の考え方は分かったんだけど、プログラムをどう書けば良いかわからん。

Delphiって16進数とかに変換すると文字列になるでしょ?
文字列をどうやれば計算に使えるの?
0053デフォルトの名無しさん
垢版 |
2016/11/03(木) 13:32:53.30ID:6FeMk1RE
16bitでわかれるって
65535,65535
っていう意味?
だったら
0xffff,0xffff
で1dwordだから
リトルエンディアンなら
(dword)((a[0]<<16) | a[1])
で済むはず
0055デフォルトの名無しさん
垢版 |
2016/11/03(木) 13:41:15.66ID:2mKhPyDG
早速、ありがとうございます!!
式の意味がわからないw
調べ倒します。

65535,65535に分かれるんですが、-の時には両方2の補数がナンタラカンタラ変換された10進数が送られてきます。

また、分からないことがあったら宜しくお願いします。
0056デフォルトの名無しさん
垢版 |
2016/11/03(木) 16:09:43.66ID:nO9s2Og+
SmallInt変数に代入すればいいんじゃない?

var
si: SmallInt;

si := StrToInt('$' + Edit1.Text); // 16進数の文字列
si := StrToInt(Edit1.Text); // 10進数の文字列
Edit2.Text := IntToStr(si);

...こう云うことじゃないの?
0057デフォルトの名無しさん
垢版 |
2016/11/03(木) 16:20:54.86ID:KRq5Cur1
こういうあほと仕事したくないな
005853
垢版 |
2016/11/03(木) 18:24:42.65ID:2mKhPyDG
やってみたらあっさりできました。
右や左にシフトさせるだけで、マイナスも簡単に処理できました。
2の補数とかそういうことはDelphiが内部で勝手にやってくれるという認識でOK?
10進数のまま処理ができるのは他の言語でも一緒?
0059デフォルトの名無しさん
垢版 |
2016/11/03(木) 18:32:31.39ID:Vzj8eJlj
>Delphiが内部で勝手にやってくれる

その認識はおかしい

「Delphiは何もしない」が正しい
006053
垢版 |
2016/11/03(木) 19:10:20.41ID:2mKhPyDG
>>59
そうなんですか?
プログラムとして読み取る時は上位の16bitを
a:=a shl 16;
で左にシフトさせて
c:=a + b;
で、cにダブルワードの数値がマイナス値も含めて正しく入ったのでdelphiが勝手に処理してるのかなと思いました。
プログラムとしてはこれでOKですか?
0063デフォルトの名無しさん
垢版 |
2016/11/03(木) 19:44:23.50ID:ieIIzjtH
DWORDというかWORDが符号なし整数値やろ
BYTEはunsigned char
WORDはunsigned short
DWORDはunsigned long
UINTはunsigned int
いずれも符号なし整数
0064デフォルトの名無しさん
垢版 |
2016/11/03(木) 20:02:43.66ID:URbOgVYK
DWORDは符号なしだけど
送られてくるデータはDWORDだけど符号を扱うっつってんだから
普通に中身はintだろ
intにキャストすれば万事OK
0065デフォルトの名無しさん
垢版 |
2016/11/03(木) 21:13:18.27ID:iYejUQc8
曖昧すぎるんだ

>普通に数値が相手から送られて来ると思ったら
>16Bit毎に分かれて、しかも、-だと65535とか-が付かない値が送られてくるんだけど
0066デフォルトの名無しさん
垢版 |
2016/11/05(土) 12:52:45.83ID:edcXpxnV
>>60
同じ数値型変数でも a の型を変えてビット数や符号付きかどうかが変わると結果も変わる。
006753
垢版 |
2016/11/06(日) 00:10:46.65ID:EC/gao/y
>>66
仰る意味が分かりました。
符号付き16BitのデータをLongに入れるとマイナスが判断されず16Bitのプラス値が入る。
Smallintに入れるとマイナスを認識する。
と言う事で、扱うデータにあった型の変数に代入する、
もしくはデータの符号の位置が変数の左端に入るように
シフトさせるとプラマイを勝手に判断してくれると言う事で良いでしょか?
0068デフォルトの名無しさん
垢版 |
2016/11/06(日) 04:28:48.06ID:nNdE2u+1
>>67
勝手に、というか、歴史的なものでもあるんだが、そもそもコンピュータは符号について考慮できない。
というのはビットのON/OFFしかないからだ。かといって計算ではマイナスの値も考慮する必要がある。
ということで色々あって、結局今のコンピュータでは高速に計算する場合はこういう手法を使うことになった。
(低速になってもいいが精度が必要な場合にBCDにするとか、他の方法もあるがちょっとそれは置いておく)。

1. 0/1が表せるビットを束ねてまとめて2進数として大きな数値も表せるようにする。
2. 0の時は全てのビットが0になる。
3. 0の状態で1を引いた時、つまり-1は全ビットが1になる。
4. 更に1引いた場合は符号なし整数の時と同じ計算で1を引く。
5. 1番上のビットが1の場合はその値はマイナス、0の場合はプラス。

なので例えば8bit符号付整数は -128 〜 127 までが表せるが、-128の時は2進だと 10000000 になっている。
127 は 01111111 になっている。

画面に10進数に変換して出す場合はまず最上位ビットを見て1ならばマイナス記号を出しプラスならば何も出さない。
次に最上位ビットが1ならば全ビットを反転させた後に1を足す(符号をマイナスからプラスに変換する)。
その後10で割った余りを数字の文字に変換して出し10で割るというのを0になるまで繰り返すが、これだと
逆順になるので再帰処理にするかバッファに入れておいて逆順に出すか少しテクニックが必要。
0069デフォルトの名無しさん
垢版 |
2016/11/06(日) 09:03:20.09ID:j4rRKkND
コンピューター工学
ASM
2の補数
・・・・いろいろ学ばないと分からないかも
一番いいのは痛い目食わないと覚えられないかも
趣味なら?
0071デフォルトの名無しさん
垢版 |
2016/11/07(月) 02:58:59.60ID:k8MgRjfU
じゃあおまえが書けよ
0072デフォルトの名無しさん
垢版 |
2016/11/07(月) 07:51:58.89ID:MiZ0k8Uw
わしもそう思う
しかし、理解すべきは、型の互換性や代入の互換性についての処理系の決め事であって、
動作原理やらは趣味の領域。
0073デフォルトの名無しさん
垢版 |
2016/11/07(月) 11:31:55.07ID:VvMqHJ76
変数の宣言で符号有り、無しのどちらの宣言しても
キャストでどうとでもなるから、くよくよするな
var
i : LongInt;

キャストで
LongWord(i)
出来るから
0075デフォルトの名無しさん
垢版 |
2016/11/09(水) 15:53:32.11ID:i2gLSeC7
D7のクイックレポートで質問です
現在単純な一覧を作っているのですが、罫線で全体の外枠を太く、明細行の仕切りを細く描きたいと思っています
Bandのフレームを外枠にして明細行は左右だけフレームで描き、下部にQrshapeを置いてやってみたのですが
その明細行がページの最終行かどうか判断する方法がわからず
外枠の下を印刷できません
各ページの行数は不定です
何かいい方法は無いでしょうか


もう一つ、グループで小計を印刷したいのですが、その際小計行は太線で囲みたいと思います
小計行はグループフッターで印刷し四方をフレームで囲ってみたところ明細行のShapeとフレームが重なって
小計行の上の線だけ少し太く印刷されてしまいました
うまいやり方は無いでしょうか

よろしくお願いします
0076デフォルトの名無しさん
垢版 |
2016/11/09(水) 16:14:12.62ID:i2gLSeC7
済みませんもう一点ありました
グループではなくページの小計を印刷したいのですが、ページフッターだと明細行と離れて印刷されてしまいます
何かいい方法は無いでしょうか
0077デフォルトの名無しさん
垢版 |
2016/11/18(金) 05:32:26.95ID:mITFokzs
仮想のイーサネットインターフェース(NIC)の作り方って知りませんか?
linuxだと簡単にできるらしいけど、windowsでできるコンポとかコマンドとかないのかな?
0078デフォルトの名無しさん
垢版 |
2016/11/18(金) 16:27:06.42ID:vbdBJsNN
softetherみたいなの?
0079デフォルトの名無しさん
垢版 |
2016/11/18(金) 17:38:12.72ID:mITFokzs
そういうのいじってみたい
仮想NICというかループバックていうのはMS純正でできるのが分かった
0082デフォルトの名無しさん
垢版 |
2016/11/20(日) 12:33:25.79ID:omU4WGo2
canvasやcaptionを持ってないコントロール上に文字描こうと思ったら、LABELを被せるのが一番簡単?
0084デフォルトの名無しさん
垢版 |
2016/11/21(月) 02:06:39.96ID:9bjfwpvu
動的に沢山作ったコントロールの破棄方法を教えて下さい。
作っ時にTLISTに入れておいて、破棄する時にリストから引っ張り出してfreeでいいですか?
0089デフォルトの名無しさん
垢版 |
2016/11/22(火) 11:23:52.32ID:J8mgYJIF
16万かー 高すぎる
昔の4万位ならまた買いたいと思っていたのに、これじゃ無理だわ
C#ならタダだから、こっちで我慢する
0090デフォルトの名無しさん
垢版 |
2016/11/22(火) 13:02:30.45ID:d73nUv9a
すごく初歩な事だと思うんだけど、フォームを最大にした状態でコントロールを配置するにはどうしたら良いですか?
0092デフォルトの名無しさん
垢版 |
2016/11/22(火) 16:00:58.51ID:d73nUv9a
フォームデザイナは消せない?
フォームデザイナの中で少なからずスクロールさせるのがうざくて。
0095デフォルトの名無しさん
垢版 |
2016/11/22(火) 18:10:29.79ID:kKFxgFqP
コンポーネントパレットのコンポーネントをダブルクリックすればいいんじゃね。
0096デフォルトの名無しさん
垢版 |
2016/11/22(火) 18:15:01.08ID:jjDYJ6Bv
最大化した状態を想定してコントロールを配置したい?
...ということでもなよね
0098デフォルトの名無しさん
垢版 |
2016/11/22(火) 20:54:34.84ID:1EZz+VvR
フォームのサイズに追随するように作るから
わざわざ最大化で考えたりしない
0099デフォルトの名無しさん
垢版 |
2016/11/22(火) 21:23:29.12ID:jjDYJ6Bv
>>97
自分だけが使うんだったら、最大化を想定して
コントロールの絶対位置を決めることもありだけどね

でも、どのような環境で使われるか分からない場合
フォームの最大化への対応は結構難しいと思う

まあコントロールのAlignでフォームサイズに
追随するだけでいいなら簡単だけど...
0103デフォルトの名無しさん
垢版 |
2016/11/23(水) 13:16:56.95ID:wddBimUU
4Kディスプレイはプログラミングする上で非常に作業性が高まって
生産能力が跳ね上がるからアリだな
たくさんの資料と開くのはマルチディスプレイでも出来なくないけど
4Kディスプレイは縦が長いのが素晴らしい

一つ問題があるとしたら
自分のソフトを4Kディスプレイで最大化したら
描画が追い付かなくなってカクカクになるという事実に気づいてしまうこと
ただし、MS謹製のエクスプローラでもカクカクになるぐらいなので
本当の意味で4K対応のソフトはそんなに多くないし
気にしなくてもよいのかもしれんが、どーなんだろ
アンチエイリアスのかかった文字の描画がとにかく遅い
1FPSぐらいになって操作困難だ
0105デフォルトの名無しさん
垢版 |
2016/11/24(木) 21:31:04.24ID:EbGC2MML
サブスクリプションって、アップデート2をインスコすれば
勝手にライセンス適用してくれるの?
0107デフォルトの名無しさん
垢版 |
2016/11/26(土) 10:20:52.50ID:RLaeAJYk
>>106
フォーム(上のエディットコンポ)に入力した数値を(ファイルに)保存する方法ということかしら?

簡単な一例。
フォームにエディットコンポEdit1とボタンButton1があるとしてボタンを押したらエディットコンポに入力されたテキスト(数値でなくても同じ)をファイルに保存する。

procedure TForm1.Button1Click(Sender: TObject);
var
 sl: TStringList;
begin
 sl := TStringList.Create;
 try
  // 入力された文字列を取り出し(数値だろうと扱いは文字列)、文字列リストに追加
  sl.add(Edit1.Text);
  // 文字列リストの内容をファイルに保存(ここでは実行ファイルと同じフォルダーにした)
  sl.SaveToFile(ChangeFileExt(Application.ExeName, '.txt'));
 finally
  sl.Free;
 end;
end;
0111107
垢版 |
2016/11/27(日) 22:12:21.76ID:Vd8hDN3e
昔のDelphiしかないので最近のはわかりません、あしからず。
昔のでもメモコンポならLines.SaveToFile(ファイル名)できますね。
0113デフォルトの名無しさん
垢版 |
2016/11/28(月) 13:10:31.06ID:/4N3P5Kl
TEditにはLinesはないね
もともと1行編集ボックスだからね

TEditの内容を保存するんだったら
TStringList.に読み込んでSaveToFile()を使うか
TFile.WriteAllText()を使うかだね

まあ後者のほうが簡単だけど
0116デフォルトの名無しさん
垢版 |
2016/11/29(火) 11:14:31.26ID:Ln/aQe4r
パスワードがかかっているExcelファイルを開ける時にパスワードを入れる方法を教えて下さい。
delphi からパスワード無しファイルを操作する事は出来ています。
0117デフォルトの名無しさん
垢版 |
2016/11/30(水) 09:51:10.70ID:YyN+WuPe
>>116
どういうやりかたで
「delphi からパスワード無しファイルを操作する事は出来ています。」
ができているのかしらんけど

OLEオートメーションを使っているなら、
xlApp.Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format,
Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin,
Delimiter, Editable, Notify, Converter, AddToMRU)


excelを持ってないなら
?FlexCel for VCL / FireMonkey
を使うとか 
0130デフォルトの名無しさん
垢版 |
2016/12/05(月) 22:44:55.05ID:FaC7RcWw
>>128
Unicode対応なんだ・・・TNTいらなくなるのか
これだけでも少し便利そうだな・・ありがと考えてみる
0131デフォルトの名無しさん
垢版 |
2016/12/05(月) 23:11:20.14ID:3xjBziHl
新機能使わなきゃそりゃあってもしょうがないけど、
さすがに7からならアップグレードすりゃ色んな新機能がわんさかだと思うよ。
古い新機能ではUnicodeから始まってWin64bit対応やOSX対応、ジェネリックやら
Vistaとかの新コントール。
http://docwiki.embarcadero.com/RADStudio/Berlin/ja/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
から新機能のページだけを過去のバージョンにさかのぼってみていけばいい。
0133デフォルトの名無しさん
垢版 |
2016/12/06(火) 18:04:09.67ID:GBHXmuqR
Editへの入力時のキーバッファをキャンセルする方法を教えて下さい。
今、バーコード入力するソフトを書いているのですが、担当者をComboboxで選択していないと
EditをクリアしてShowMessageを表示するつもりです。
EditをクリアしてMessageを出す事自体は出来ているのですが、バーコードから送られるデータの
最後にCRがついてきて(バーコードリーダーが付けてきます。)、多分このCRがShowMessageに
送られてShowMessageが勝手に消えてしまうようなのです。
イベントはKeyPressを使っています。
Windows7 Delphi10.1の環境です。
よろしくお願いします
0135デフォルトの名無しさん
垢版 |
2016/12/06(火) 18:24:00.95ID:B1jaM3TV
「Editへの入力時のキーバッファをキャンセルする方法を教えて下さい。」
後ろにごちゃごちゃよくわからん説明が書いてあるけどこれが聞きたいの?

単に入力された文字をキャンセルならKeyPressのイベントでKeyパラメータに
Key := #00とか代入すればいいんじゃなかったっけ?
if Key = 'A' then
 Key := #00;
すりゃ、Aの文字が入力できなくる

このことじゃなかったらもっと適格に書いてくれんとわからん。
0136デフォルトの名無しさん
垢版 |
2016/12/06(火) 19:02:50.65ID:GBHXmuqR
ありがとうございます。
バーコードから送られてくる文字を全てキャンセルしたいのです。
一文字ずつチェックするのではなく、一気に送られて来た文字を消す方法はありませんか?
宜しくお願いします。
0137デフォルトの名無しさん
垢版 |
2016/12/06(火) 19:18:11.18ID:BLWAVjyu
>>136
CRって復帰コードのことだろ?
最後にCRがついてくるなら、それが送られてくる最後の文字
なら、それが送られてきたら Key には0入れて Edit.Text := ""; でよかんべ
0138デフォルトの名無しさん
垢版 |
2016/12/06(火) 20:03:14.51ID:4bwuxuwQ
こんなんじゃだめなの?

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then begin
ShowMessage('Enter!');
Edit1.Clear;
end;
end;
0139デフォルトの名無しさん
垢版 |
2016/12/06(火) 20:26:28.30ID:GBHXmuqR
ありがとうございます。
出来ました。
条件に合わなかったら入力したらいけないと変な思い込みをしてました。
助かりました。
0143デフォルトの名無しさん
垢版 |
2016/12/07(水) 16:09:50.00ID:1k8Mb6um
できません。

大きなラジオボタンの絵を描くならできます(ちょっと気持ち悪いので注意)。

procedure TForm1.FormPaint(Sender: TObject);
begin
 DrawFrameControl(Canvas.Handle, ClientRect, DFC_BUTTON, DFCS_BUTTONRADIO or DFCS_CHECKED);
end;

procedure TForm1.FormResize(Sender: TObject);
begin
 Invalidate; // フォームの再描画をWindowsに促す。
end;
0144デフォルトの名無しさん
垢版 |
2016/12/08(木) 15:42:09.36ID:G/Oz9Gxc
Berlin update2 のFireMonkeyで
Listbox.Items.Exchangeメソッドが動作しないXE2では動くのに
0147デフォルトの名無しさん
垢版 |
2016/12/10(土) 23:33:56.35ID:KMGjeMy/
関連付けされてるファイルを起動するのは ShellExecute でできますが
例えば abc.csv ファイルを .txt で関連付けされてるアプリケーションで
開く簡単な方法はあるでしょうか
0148デフォルトの名無しさん
垢版 |
2016/12/11(日) 06:10:35.77ID:RsXQTiEs

Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

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

0149デフォルトの名無しさん
垢版 |
2016/12/11(日) 12:45:00.53ID:DKctrae4
>>147
簡単には無いと思う。
レジストリ開いて関連付け調べてabc.csvを引数にそのプロセスを起動させる。
0152デフォルトの名無しさん
垢版 |
2016/12/12(月) 14:28:19.03ID:JuHHFpqe
私はFindExecutable APIで拡張子".txt"のダミーのファイル名を渡して…というところまで考えていたのですが、そのものずばりなAPIがあるのですね。
0153デフォルトの名無しさん
垢版 |
2016/12/15(木) 11:41:17.48ID:KMS/yunp
Cのライブラリで
const char *ss[] = {"abc", "def", "xyz", NULL};
を引数として要求するAPIがあるのですがDelphiからは
どうやって定義すればよいでしょう?
0154デフォルトの名無しさん
垢版 |
2016/12/15(木) 12:42:40.01ID:jYtTego3
ポインタのポインタ
0157デフォルトの名無しさん
垢版 |
2016/12/16(金) 13:53:20.44ID:bP8vH7ub
 IntArray: array[0..99, 0..99] of Integer;

 AI :IntArray;
 P  :Pointer;
 Fs :TFileStream;
 i,j :Integer;

  for i := 0 to 99 do
   for j := 0 to 99-1 do
    AI[i,j] := Random(1000)+50;

  Fs.Write(AI[0,0], SizeOf(Integer)*L );
  Fs.Write(AI, SizeOf(Integer)*L );    ………(#)
のどちらでも OK ですが、これは AI[0,0] と AI のアドレスが同じというだけで
  AI[0,0] = AI
ではないのですから、(#)の記述は AI という '配列名' はポインタのように感じられます。しかし、
  P := AI;
とするとコンパイラに怒られます。Delphi の '静的配列名' はポインタではないのしょうか。
0159デフォルトの名無しさん
垢版 |
2016/12/16(金) 14:20:04.02ID:bP8vH7ub
 引数は型なしパラメータだから、実際にはパラメータのアドレスが Fs.Write に渡され、
そのアドレスが処理対象になる。つまりそこに必要なサイズのメモリ領域が正しく確保さ
れていれば、その領域がどのような型なのかは関係ないということか。

 結局 Delphi の '静的配列名' はポインタではないんだね。
0161153
垢版 |
2016/12/16(金) 16:08:44.84ID:khJxMTBU
後に誰かの参考になるかもしれないので少し詳しく書いておきます。

Cで作成されたDLL内の関数の.hファイルの定義が
void hoge(const char **hage);
となっていて、
const char *ss[] = {"abc", "def", "xyz", NULL};
hoge(ss);
という使用例が書かれてたところ、

procedure hoge(hage: array of PAnsiChar); cdecl; external 'kage.dll';

hoge(['abc', 'def', 'xyz', nil]);

で上手く動作しました。ペコリ。
0163153
垢版 |
2016/12/17(土) 10:45:35.06ID:1MhgkvS0
>>162
そうですか。スレ汚し失礼しました。ペコリ
0164デフォルトの名無しさん
垢版 |
2016/12/18(日) 18:39:46.50ID:SM4ZDbUW
 TreeView をデザイン時にフォームに貼り付けてできたアプリを終了するとき
 TreeView の各ノードが保持するデータ(TreeView1.Items[n].data が保持しているデータ)
も自動的に廃棄されるのですか?
0166デフォルトの名無しさん
垢版 |
2016/12/18(日) 20:05:19.93ID:SM4ZDbUW
>>165
 ありがとう。
 以下のような感じでいいのですかな?

//TNodeData は TreeNode.Data が保持するデータのクラス

//+----------- FormDestroy ------------+
procedure TForm1.FormDestroy(Sender: TObject);
i: Integer;
begin
with TreeView1 do
for i = 0 to Items.Count - 1 do
TNodeData(Items[i].Data).Free;

//TreeView1.Items.Clear; 不要
end;

 あるいは TreeView のOnDeletion を使って

//+-------------- TreeViewDeletion --------------+
procedure Form1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
if Assigned(Node.Data) then
TNodeData(Node.Data).Free;
end;
0168デフォルトの名無しさん
垢版 |
2016/12/20(火) 23:16:00.88ID:ifPrFvUo
スレッドを使ったプログラムで、スレッド内にある未使用の変数をコメントアウトしたら、
終了する時にアクセスバイオレーションが出るんだけど、こんな事ってあるの?
プライベートに宣言してあるからメインとかが絡んでる事は無いのだけど。
0169デフォルトの名無しさん
垢版 |
2016/12/20(火) 23:35:38.32ID:qjg7YQIs
コメントアウトされた変数が確保していたメモリ域のおかげで
偶然アクセス違反が発生しない状態になってるとかじゃね?
要はコメントアウトしていなくてもコーディングミスで不正なメモリアクセスしている状態なのかも
0173デフォルトの名無しさん
垢版 |
2016/12/21(水) 17:50:14.49ID:69vl5rId
ちょっと教えてください

自分自身(実行ファイル)を再起動する方法を教えてください
ちなみに二重起動を禁止したアプリでです
できれば再起動用の別アプリを使用しないのが理想的です...
0175デフォルトの名無しさん
垢版 |
2016/12/21(水) 21:13:47.15ID:69vl5rId
>>174
ありがとうございます。
やはりその方向ですか。

リスタート後に最初のインスタンスのiniファイルを読み込みたいで
Mutexのチェックの前に最初のインスタンスの終了を待つ処理が
必要かなと漠然と考えていたんですが...

簡単でスマートな方法はないんですね
0176デフォルトの名無しさん
垢版 |
2016/12/21(水) 21:25:28.28ID:GvkBvmPc
>>175
自分(プロセスA)が自分(プロセスB)を起動するときに、コマンドラインで /restart というようなコマンドを渡す。
プロセスBは /restart ってコマンドを受け取ったら、Mutexの所有権を得るまで待機する。(再起動処理)
プロセスAはMutexの所有権を開放する。
/restartを受け取らなかった場合は、Mutexの所有権を得られなかった場合は終了する。(二重起動防止)
0177デフォルトの名無しさん
垢版 |
2016/12/21(水) 23:03:33.63ID:V2gs4HSo
>>176
そうですね

Mutexが取得できるまで待機すればいいですよね
終了待ちをもっと複雑な方法で考えてました
ありがとうございます
0178デフォルトの名無しさん
垢版 |
2016/12/22(木) 20:53:24.89ID:GbxNFxpQ
よろしくお願いします。
『レコード型Aを利用する、クラスA』を自作したとします。
そして、『このクラスAとほとんど同じ機能を持つが、レコード型Bを利用する、別のクラス』を作りたいとします。
この場合、どう記述するのが効率良いでしょうか。

例えば、よくサンプルで見る、TListのItemにレコード型のポインタを使ってデータを入れる場合。
type
// レコード型A
PTRecA = ^TRecA;
TRecA = record
// 略
end;
// レコード型B
PTRecB = ^TRecB;
TRecB = record
// 略
end;

// クラスA・・・レコード型Aを利用
TClassA = class(TList)
 procedure SetItem(Rec: TRecA);
 function GetItems(Index: Integer): TRecA;
end;
// クラスB・・・レコード型Bを利用
TClassB = class(TList)
 procedure SetItem(Rec: TRecB);
 function GetItems(Index: Integer): TRecB;
end;

上記の様に、クラスAとクラスBで似た様なコードの重複が多い場合、
クラスの定義をもっと効率良く記述できる方法があれば教えていただきたいです。
0179デフォルトの名無しさん
垢版 |
2016/12/22(木) 20:58:35.19ID:T2mCxqBZ
delphi ジェネリックスでググる
0180デフォルトの名無しさん
垢版 |
2016/12/24(土) 05:08:06.07ID:dJj6Jdn2
クラスの継承を使えないか?
レコードのほうに「違い」を押し込んでクラスにして継承して、クラスは共用とできないか?
そもそもクラスとレコードに分ける必要があるのか?
などなど
0181デフォルトの名無しさん
垢版 |
2016/12/24(土) 16:48:03.74ID:NvTs06qg
レコード型をクラスのメンバとしてポインタで管理して
そのポインタの実体を操作する仮想メソッドなどを作る。
0182デフォルトの名無しさん
垢版 |
2016/12/24(土) 23:24:23.58ID:SRluPO+r
firemonkeyを使ってandroid向けのゲームを作り始めましたが
いきなり躓いて困ってます。

ゲームループのスレッドを作って描画を行っていますが
TBitmapがスレッドセーフでないため描画処理が正常に行えません。

firemonkeyでゲームを作る場合はメインスレッドのみで作るのでしょうか。
0184デフォルトの名無しさん
垢版 |
2016/12/25(日) 09:12:26.41ID:LRNNB7e/
DrawGridのセルの色を取得する方法を教えて下さい。
どのセルに何色を塗ったか記憶しているのですか、
もっと簡単に知る方法があると思い質問させてもらいました。
宜しくお願いします。
0186デフォルトの名無しさん
垢版 |
2016/12/25(日) 09:59:02.44ID:BtIm+2Ns
>>183
Delphi6の時はCanvas.Lockがあったと思いますが
今使ってるDelphi10.1ではLockが見つからなくて・・・
0187デフォルトの名無しさん
垢版 |
2016/12/25(日) 10:11:02.14ID:BtIm+2Ns
>>185
スレッド側で描画用のBitmapをCreateしてWidth、Heightを設定した段階で
EBitmapSizeTooBigの例外が発生してしまうため、そこまで辿り着けなくて困ってます。
0188デフォルトの名無しさん
垢版 |
2016/12/25(日) 10:30:12.14ID:rexwkbDx
例外の種類見る限り、スレッドと関係なさそうに見えるが。
ビットマップが大きすぎるってWidthとHeightをいくつに設定しようとしたの?
0189デフォルトの名無しさん
垢版 |
2016/12/25(日) 10:36:40.00ID:BtIm+2Ns
>>188
サイズは350x450なのでたぶん大きすぎることはないと思います。
メインスレッドで動作させた場合は、例外が発生することなく動作するので
メインスレッド以外ではTBitmapは使えないのかと・・・

また、Windowsでは正常に動作してAndroidで動作させると例外が発生するため
Android固有の問題なのかなと思いまして
0191デフォルトの名無しさん
垢版 |
2016/12/25(日) 17:27:44.55ID:HB1HITh4
>>189
AndroidのThreadで発生するってQPに上がってるからVOTEしとけばそのうち治るんじゃないかな
そのうち。
0193デフォルトの名無しさん
垢版 |
2016/12/25(日) 18:04:15.67ID:BtIm+2Ns
>>190
教えていただいたものを使って処理を行ってみましたがダメでした。


>>191
期待しないで待つことにします。


別スレッドでの処理を諦めてとりあえずメインスレッドで全て行うようにします。
相談に乗っていただいた方々ありがとうございました!
0194デフォルトの名無しさん
垢版 |
2016/12/28(水) 09:28:27.13ID:aele3sW5
Delphi 10.1 BerlinのStarterでチュートリアルをやってます。
http://docwiki.embarcadero.com/RADStudio/Berlin/ja/ユーザー アクションに対する応答をコード エディタでコーディングする(IDE チュートリアル)
このページの中ほどまで進んだら
[dcc32 エラー] TextEditorUnit.pas(94): E2003 未定義の識別子 : 'TDialogServiceSync'
というエラーが表示されてしまいます。
どうしたら修正できるのでしょうか?
0195デフォルトの名無しさん
垢版 |
2017/01/01(日) 00:51:30.42ID:u9hnImCi
>>194
ここで引っかかってるのかな?
UserResponse := TDialogServiceSync.MessageDialog(
'File already exists. Do you want to overwrite?',
TMsgDlgType.mtInformation, mbYesNo, TMsgDlgBtn.mbYes, 0);

TDialogServiceSync はFire Monkeyでしか使えないからvclプログラムではエラーになって当然かも。
チュートリアルのソースコードって色々バグってるからなぁ…
とりあえず

UserResponse := MessageDlg(
'File already exists. Do you want to overwrite?',
TMsgDlgType.mtInformation, [mbYes, mbNo], 0);

と書き換えたらエラー出なくなると思う。
0197194
垢版 |
2017/01/02(月) 12:22:05.25ID:THkmnZCs
>>195
ありがとうございました。早速試してみましたが、
[dcc32 エラー] TextEditorUnit.pas(99): E2003 未定義の識別子 : 'mbYes'
[dcc32 エラー] TextEditorUnit.pas(99): E2250 指定された引数で呼び出すことのできるオーバーロード関数 'MessageDlg' が定義されていません
[dcc32 警告] TextEditorUnit.pas(99): W1000 シンボル 'MessageDlg' を使用することは推奨されていません : 'Use FMX.DialogService methods'
とエラーが出てコンパイルが通りませんでした。

FireMonkeyはデフォルトで使えるのかと思ってました。いろいろと無知すぎるので
もうちょっと分かりやすいところから勉強しなおしてみます。
0198デフォルトの名無しさん
垢版 |
2017/01/02(月) 20:49:19.17ID:7Rs/ksIu
>>197
その警告が出るって事はFire Monkeyの方なのか。
だったらそこは元の>>194の命令でいいはず。

usesの所に FMX.DialogService.Sync が記載されているか確認して
なければ追加。
0199デフォルトの名無しさん
垢版 |
2017/01/04(水) 22:56:01.95ID:SVZbRNc5
スレッドからサブフォームを表示する事は可能ですか?
他の機器から特定の信号が来たら、警告画面みたいなのを表示しようとして
スレッドで信号監視してフォーム表示のつもりがうまくいきません。
なのでメインフォームにタイマー置いてタイマーイベントで信号監視しています。
ヘルプを読むとスレッドからフォームはコントロール出来ないような事が書いてあったのですが、皆さんならどうしますか?
0201デフォルトの名無しさん
垢版 |
2017/01/04(水) 23:55:57.26ID:07zJ2hFc
ごめん

post-/sendmessageにはwm_closeみたいな表示するメッセージはなかった

独自のメッセージを定義して受け取った側でshowするか
showwindow(async)を使うかだね
0202デフォルトの名無しさん
垢版 |
2017/01/05(木) 00:45:48.42ID:sWl9IbhJ
>>199
TThread.Synchronizeで、メインスレッドに切り替えてから、引数で渡されたコールバックメソッド(手続き)でサブフォームを表示させるとか
0203194
垢版 |
2017/01/05(木) 06:34:16.06ID:KgVZC7r0
>>198
エラーが消えて無事に動きました。
ありがとうございます。

こういうのはIDEが教えてくれるのかと思って
いましたが、有料版だとそういう機能は
あるんでしょうかねー
0204デフォルトの名無しさん
垢版 |
2017/01/05(木) 07:19:36.75ID:DrifgVvY
>>203
関数や手続きが定義されていないってエラーが出たときはその関数などのヘルプを見て
そこに書いてあるユニット名が自分のプログラムのuses節に書かれているか調べるといいよ。
0205199
垢版 |
2017/01/05(木) 09:38:01.68ID:u8XERnLo
>>200,202
ありがとうございます。
教えてもらった方法を調べながらやってみます。
0206デフォルトの名無しさん
垢版 |
2017/01/08(日) 16:20:11.76ID:lAdNqeO/
TShellCtrlコンポーネントって、デモに含まれるものなんだよね なんでVCLに含めなかった??
0208デフォルトの名無しさん
垢版 |
2017/01/10(火) 11:27:52.10ID:D5z5IiVv
マルチスレッドが終了したかどうか確認するのに、フラグで確認してるんだけど、
なんかもっとスマートな方法ってありませんか?
ググったらWaitForが出て来たのですが、hoge.WaitForとしてもハンドルエラーとか出て使えませんでした。
宜しくお願いします。
0211デフォルトの名無しさん
垢版 |
2017/01/10(火) 17:41:03.73ID:9hDOaePS
>>208
hogeってTThread?
そんだったらTThread.FreeOnTerminateをTrueにしてるから、
スレッドが終了してFreeされてるから、ハンドルエラーと出てくるんだろう。
FreeOnTerminiateをFalseにすればOK(そのかわりTThreadの破棄は自分でやる必要がある)。
0212デフォルトの名無しさん
垢版 |
2017/01/10(火) 18:11:59.83ID:uT10hEea
終了したか確認するのにWaitForしたら確認じゃなく待機しちゃってダメじゃないのかと思うけど。
FreeOnTerminiate:=true;で OnTerminateイベントでフラグ立てるので良くないかい?
あとはメインフォームに終了通知としてメッセージ送るとか。
Win32API使うのOKなら FreeOnTerminiate:=false; にして
スレッドハンドルに対して WaitForSingleObject (タイムアウトは0に設定)使い
WAIT_OBJECT_0が返るかWAIT_TIMEOUTが返るか確認する。
もしくはGetExitCodeThread関数を使うとかかな。
0217デフォルトの名無しさん
垢版 |
2017/01/11(水) 08:27:35.32ID:7+b9GoiT
ああOnTerminate 内はメインスレッドか。
なら簡単だわ。メンゴ。
昔はOnTerminateイベント無かった希ガス
0218208
垢版 |
2017/01/11(水) 08:51:02.04ID:jn+AzvnI
おはようございます。
皆さん、ありがとうございます。
フラグがやはり良さげなんですね。

もう1つ教えて下さい。
スレッドの中で
try
stringlist:=TStringList.Create;
while not Terminete do
begin
何かの処理
end;
finally
stringlist.free;
End;
とした時に、TermineteをTrueにして終了するとfinallyの処理をしてくれません。
異常終了した時はfinallyの処理をしてくれます。
stringlistの解放はOnTermineteでするのが普通なのでしょうか?
0221デフォルトの名無しさん
垢版 |
2017/01/11(水) 14:43:08.49ID:mOqhfYH5
>とした時に、TermineteをTrueにして終了するとfinallyの処理をしてくれません。
んなわけない。ちゃんとfinallyの処理するはずだからもっとしっかり確認しよう。

>フラグがやはり良さげなんですね。
もうちょっと具体的にスレッド終わった後何したいのかとか書いてくれんと答えようがねぇ。
0222デフォルトの名無しさん
垢版 |
2017/01/11(水) 17:34:02.96ID:y79IyYLw
>>220
ホントだtryはあった...でも
最近のdelphiは仕様が変わったのか...

念のため例外処理入れてみたら?

list=:tstringlist.create;
try try
while not terminated do begin ...end;
// ここで正常処理終了のフラグをセット
except....end;
finally list.free; end;
0223デフォルトの名無しさん
垢版 |
2017/01/11(水) 18:26:26.78ID:tCuecbSb
>>218
>TermineteをTrueにして終了するとfinallyの処理をしてくれません。
どうやって確認したの?
あとTThreadの派生クラスならTerminateはメソッドとTerminatedプロパティが使える。

>stringlistの解放はOnTermineteでするのが普通なのでしょうか?
そんなことはない。
0224デフォルトの名無しさん
垢版 |
2017/01/11(水) 18:29:24.22ID:+wq8yOB3
昔昔、QuadrupleDを使ってやってたサウンドの再生を最新のDelphiでやりたいんですが、使えるライブラリを探してます。

・複数のwaveファイルをマルチチャネルで読み込んでそれぞれ別個に再生したい
・チャネル単位でループ再生、ピッチ変更、音量変更がしたい

あるかな…(´・ω・`)
0225デフォルトの名無しさん
垢版 |
2017/01/11(水) 21:03:36.27ID:go3Ym2g4
ブレーク入れてね
ステップで見るときブレーク入れないと
見かけ飛ばすから
0226デフォルトの名無しさん
垢版 |
2017/01/12(木) 06:31:56.17ID:a5xM53E0
フラグの排他制御は簡単だと思うが。
boolean変数一個なら読み書きは1命令で、割り込まれることはないだろうし
書く前に消されちゃうようなコードを書かなければいいだけ。
0228デフォルトの名無しさん
垢版 |
2017/01/13(金) 08:37:54.09ID:ZuNdbFdt
フラグをグローバルやメインフォームなどに
持たせるのはなんか古臭いという気持ちはある
0230デフォルトの名無しさん
垢版 |
2017/01/14(土) 13:25:01.19ID:h3eR+GmF
>>229
元号とか使わないか
自力で変換

OSの機能を使ってるんだったら大丈夫か
ただvistaも今春でサポート終了するけど
0232デフォルトの名無しさん
垢版 |
2017/01/18(水) 13:40:10.70ID:YhLwefSp
string、ansichar、pansicharの型キャストってどうやるの?
暗黙の型キャストの警告を消したいんだけど、ググってstrpcopyとかのサンプルを実行しても消えない。
0235デフォルトの名無しさん
垢版 |
2017/01/27(金) 12:59:02.17ID:/S2JEwyl
Konopkaコンポーネントのアンインストール方法を教えて下さい。
インストール中に異常終了したのでアンインストールしたいのですが、
アンインストールも途中終了してしまって、行き詰ってしまいました。
よろしくお願いします。
0236デフォルトの名無しさん
垢版 |
2017/01/27(金) 14:49:41.44ID:5OkJm/3R
>>235
マイドキュメント\Embarcadero\Studio\18.0\CatalogRepositoryにあるKonopkaのフォルダと
パブリックのドキュメント\Embarcadero\Studio\18.0\CatalogRepositoryにあるKonopkaの
リポジトリデータを削除すればよかったと思う。(心配ならバックアップとっといてね)

konopka、インストール失敗するとアンインストールもできなくなるんだよね。
0237235
垢版 |
2017/01/27(金) 22:35:47.30ID:/S2JEwyl
>>236
ありがとうございます。
助かりました。
0238デフォルトの名無しさん
垢版 |
2017/02/01(水) 09:20:48.68ID:5qzbuLNZ
入力の支援機能で出て来た候補にカーソルを合わせて、
ピリオド打ったら選んだ候補が入力される設定ってどこにありますか?
ベルリンのup2を入れたのですが、最初は良かったのにいつの間にかピリオドで選択されなくなってしまいました。
0239デフォルトの名無しさん
垢版 |
2017/02/06(月) 19:05:34.17ID:xOrt0AYX
StringGridのセルをデータの合わせて塗りつぶすことをしています。
タイマーイベントで0.2秒毎にデータに変化がなくても一旦デフォルト色にしてから他の色を塗っています。
そのせいだと思うのですがセルの選択ができません。
セルをランダムに色を塗りつつ、セルの選択もできるようにするにはどうしたらいいでしょうか?
0241デフォルトの名無しさん
垢版 |
2017/02/06(月) 20:38:57.75ID:U9v8FdBr
TSringGridのOnDrawCellイベントの引数で渡されるTGridDrawStateで、選択されたかどうか判断できる。
選択されてないときだけ、色を変更するよろし。
0242239
垢版 |
2017/02/06(月) 22:36:47.54ID:xOrt0AYX
>>240.241
ありがとうございます。
まだ、試してませんがどういうコードを書けば良いか案が浮かびました。
0243デフォルトの名無しさん
垢版 |
2017/02/07(火) 04:11:46.40ID:odr3U2KT
タイマーで200ミリ秒ずつやってるところが壮絶にまぬけっぽい 小学生以下の知能
0244デフォルトの名無しさん
垢版 |
2017/02/07(火) 07:48:29.48ID:uL0lBsbg
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0245239
垢版 |
2017/02/07(火) 14:14:09.54ID:vf4YiH1/
昨日はありがとうございました。
TSringGridの特定のセルに数値を書き込むのにDrawTextを使って右寄せで書き込んでいます。
この書き込んだ数値を後から取得することってできますか?
セルにHintみたいに埋め込めたら簡単なんですけどググっても分かりませんでした。

>>243
シーケンサーの信号状態を監視するんで手っ取り早くタイマー使ってます。
0246デフォルトの名無しさん
垢版 |
2017/02/07(火) 21:01:48.32ID:qgMFF5pP
その「数値」はどこにしまってあるの? それは自分で世話するしかない。
DrawTextは文字列を描画するだけで、何書いたかなんてどこにも覚えていないよ。
0247デフォルトの名無しさん
垢版 |
2017/02/07(火) 22:53:48.58ID:GEF3mu7C
StringGridなんだから、Cellsプロパティを通して、文字列として各セルにでも入れときゃいいんでね?(ハナホジ
0250デフォルトの名無しさん
垢版 |
2017/02/26(日) 22:21:06.30ID:S5w82ICF
vs2015アンインスコしたらDel10.1でコンパイルできなくなった。
Del再インスコするしかない?
0253デフォルトの名無しさん
垢版 |
2017/03/14(火) 14:46:39.28ID:SzM2z6wx
スレッド1で変数aの値を読み書きしていてスレッド2では変数aを読み込みしかしない場合って干渉対策って必要?
0255253
垢版 |
2017/03/14(火) 22:26:02.83ID:M7D1b0oM
ありがとうございます。
干渉対策じゃなくて排他処理っていうんですね。
失礼しました。
各スレッドで共有する変数を集めたUnitに変数aを宣言して使っています。
この変数aを複数のスレッドからアクセスする場合、Synchronizeを使うのでしょうか?
SynchronizeはスレッドからVCLを描画する場合に使うと書いてあったので、フラグを立てるとかして
排他処理をするのでしょうか?
0256デフォルトの名無しさん
垢版 |
2017/03/14(火) 23:05:45.72ID:137tpMLx
クリティカルセクションでも使えばいい、どっかで
CS := TCricalSection.Create()で作っておいて、

同時にアクセスされたら困るところで
CS.Enter();
try
 共有リソースの変数Aにアクセスなど
finally
 CS.Leave();
end;
0257デフォルトの名無しさん
垢版 |
2017/03/14(火) 23:07:46.72ID:137tpMLx
まぁ、他にもSyncObjs.pasにTInterlockedとかあるけど、
そこは自分で頑張ってくれ
0258デフォルトの名無しさん
垢版 |
2017/03/15(水) 07:56:13.67ID:OMQXGO2Q
>>255
Synchronize内の処理はメインスレッドでの処理となるから
同時アクセスがありえなくなるということらしいよ
0259253
垢版 |
2017/03/16(木) 09:51:28.35ID:IMOOaoXR
皆さん、ありがとうございます。
これから調べて確認しようと思うのですが、最後に1つ教えて下さい。
シンクロナイズを使い過ぎるとマルチスレッドの意味が無くなるとヘルプに書いてありました。
クリティカルセクション等は使い過ぎてもメインフォームの反応が悪くなるとかそういう事が無くなる、若しくは低減されるとかあるのでしょうか?
もし、それならクリティカルセクション等を推奨すると思うので使い過ぎはやはりダメとは思いますがどうなんでそょう?
0260デフォルトの名無しさん
垢版 |
2017/03/16(木) 17:53:22.67ID:Xe646fvV
どこからが使いすぎだと思う?
0261デフォルトの名無しさん
垢版 |
2017/03/16(木) 18:29:10.53ID:vq3uRAd1
>>259
ウインドウ描画などしているスレッドが「メインVCLスレッド」。
要するにメッセージループが動作しているスレッド。
Synchronizeはこのメッセージループに「渡したプロシージャの処理を任せる」ため
Synchronizeを多用すると「メインフォームの反応が悪くなる」という状況を生む。
Synchronizeはあくまで変数のアクセスと言った軽い処理に限定すればいい。
この場合、メッセージループがウィンドウメッセージを処理する合間に変数へのアクセスを処理する程度なので
その程度で「メインフォームの反応が悪くなる」ということはないだろう。
ただ、もし重たい処理を任せてしまうと、フォームのイベントで処理するのと同じになってしまう。
(フォームなどコンポーネントのイベントはメインVCLスレッドで動作している)
この場合メインフォームの反応が悪くなる。

クリティカルセクションはメッセージループとか関係ないので、それによってメインフォームの反応が悪くなるということはない。
ただ例外として、メインVCLスレッドでクリティカルセクションを使うと、
他のスレッドが使用中はメインVCLスレッドは待機してしまうのでメインフォームの反応が悪くなることはある。
0262デフォルトの名無しさん
垢版 |
2017/03/17(金) 07:45:46.44ID:88SBOT8h
>>259
問題は「使い過ぎ」の定義だと思うけど
僕は1つ1つの処理の長さが長くなってしまった場合をいってるのではないかと思う。
同時処理といっても現実は短い処理が交互に行われるのをスレッドと称しているだけであって
それを否定するようなプログラミングはもはやスレッドではないということではないかと。
0263デフォルトの名無しさん
垢版 |
2017/03/17(金) 09:01:04.72ID:88SBOT8h
あ、もしかしたら質問に答えてなかったかな?
つまりsyncronizeだろうがcsだろうが
占有状態が長くなるようなロジックになるなら同じことだ
0265デフォルトの名無しさん
垢版 |
2017/03/18(土) 10:42:58.16ID:TEQZ8ThN
>>264
そういう御仁が現れるだろうなとは思ってた。
申し訳ないがマルチコアなどの詳細な仕組みが現話題の結論に
影響を与えるものではないので無視させてもらいます。
0266デフォルトの名無しさん
垢版 |
2017/03/18(土) 11:15:40.91ID:uhuX0RUO
OSのタスクスケジューリングやスレッド、Delphiのメインスレッドの話がごっちゃ混ぜになっててカオスカオス
0268デフォルトの名無しさん
垢版 |
2017/03/18(土) 17:26:39.99ID:qhwfKSm6
>マルチコアなどの詳細な仕組みが現話題の結論に影響を与えるものではない

今の話題においてこれは正しいと思う。

>同時処理といっても現実は短い処理が交互に行われるのをスレッドと称しているだけであって
この話も同じく、“現話題の結論に影響を与えるものではない”
0269デフォルトの名無しさん
垢版 |
2017/03/18(土) 17:42:46.56ID:uhuX0RUO
中途半端に説明するからややこしくなる
SynchronizeにしろCriticalSectionにしろDelphiのメインスレッドが処理待ちになる状況ができれば反応は悪化する

くらいでイナフ
0271デフォルトの名無しさん
垢版 |
2017/03/19(日) 10:14:13.46ID:pPSf+p35
>>269
メインに限らないっしょ。同期されたサブスレッド間でも片方が長い処理すれば片方は待ちになるわけだし。
0272デフォルトの名無しさん
垢版 |
2017/03/19(日) 10:31:00.81ID:Zac56zGn
>>271
メインスレッドを待機が発生するスレッドと置き換えて考えたら良いだけの話であってそのあたりは柔軟に考えてくだちい

まー、サブスレッド同士が待機しあって停滞しててもメインスレッドがそこに巻き込まれてなければ(見かけ上は)レスポンスの悪化とかは無いけどね
0273デフォルトの名無しさん
垢版 |
2017/03/19(日) 12:59:15.63ID:pPSf+p35
結局「スレッド」という英単語が同いう意味かってだけだね。
あと例えば一度にたくさんのログインがあるサーバーなんかは
スレッドたくさん作ることによるメモリの圧迫が指摘されてて
メッセージ処理型に回帰してるよね。
つまり同時(的な)処理においてスレッドが万能ってわけじゃない
ことも知ってたほうがよいよね。
0278デフォルトの名無しさん
垢版 |
2017/03/23(木) 17:32:52.95ID:0AhE1jWZ
10.2tokyo入れて見たんだけど、10.1でgetitから入れたコンパーネントが入れられなくてプロジェクト開けられない。
エンバカ何なんだ?
0280デフォルトの名無しさん
垢版 |
2017/03/25(土) 07:13:02.05ID:Hlan26fq
StarterのBerlinをTokyoにするんだけど
いったんBerlinをアンインストールするんだっけ?
0281デフォルトの名無しさん
垢版 |
2017/03/28(火) 04:59:23.66ID:by30piXi
StarterのBerlinをインストールしたままTokyoをインストール出来ましたし、同時に起動出来ました。

公式ブログには逆の順番(Tokyo→Berlin)でのインストールは、
お勧めしませんって書いてました。
0283デフォルトの名無しさん
垢版 |
2017/03/31(金) 10:26:45.88ID:SnNLRdP6
2007からXEにあげるのに、いまさらながらユニコードに取り組むんですが、
・フォーム上で入力されるのはUTF-16
・UnicodeStringで保持するのはUTF-16
・ソースはUTF-8
の違いがあるようなのですが、ソースでリテラルで記述したUFT-8の文字を
コンポーネントのテキストやUnicodeStringに代入したりするとごちゃ混ぜに
なってしまうんですか?
0284283
垢版 |
2017/03/31(金) 10:42:53.79ID:SnNLRdP6
文字コードを確認してみたのですが
var
c: Char;
begin
c := 'あ';
ShowMessage(Format('%x',[(Ord(c))]);

のソースで、ソースをバイナリエディタで見てみると、'あ'の部分
のコードはUTF-8ですが、Ord(c)はUTF-16のコードでした。
これは、勝手に文字コードの変換が掛かるのですか?
0285デフォルトの名無しさん
垢版 |
2017/03/31(金) 11:27:56.20ID:tBgePiep
こう言うとアレだけど
普通に使うときはユニコードとか
意識する必要ないんじゃない?
0286283
垢版 |
2017/03/31(金) 11:48:21.75ID:SnNLRdP6
>>285
例えば、

s := Edit1.Text + 'が入力文字列';

のような場合だと、sにUTF-8の文字コードとUTF-16の文字コードが混在して
まずいような気がするのですが、プログラム動かしてみると、コンパイル時に
ソースコードでの文字列はUTF-16に変換してるのかな?と思ったのですが。
0287デフォルトの名無しさん
垢版 |
2017/03/31(金) 12:08:45.28ID:YNGnrt5P
便乗失礼します。
2009以降
・ShowMessageの内部では、UnicodeStringとして表示する文字列を処理します。
ってことだったと思うのでUTF-16変換されてるのかと

異なるコード間では暗黙の変換される
でよかったでしょうか?
どこまで変換されるのかは確認してないのと、
Chr関数とか文字数、Byte数を数えるときに気をつけて考えておく、くらいでしか認識してないのですが

https://edn.embarcadero.com/jp/article/38783
https://edn.embarcadero.com/jp/article/38791
0288283
垢版 |
2017/03/31(金) 12:14:44.98ID:SnNLRdP6
>>287
リンク先を読んでみると、文字列の代入時に変換してるみたいですね。
ありがとうございます。
0289デフォルトの名無しさん
垢版 |
2017/03/31(金) 12:27:36.02ID:tBgePiep
>>286
大丈夫
ソースファイルがutf8とか意識しないほうがいいよ

文字列リテラルもstring変数もunicodeだよ
0290デフォルトの名無しさん
垢版 |
2017/03/31(金) 12:33:03.27ID:tBgePiep
>>288
内部でどう処理してるのか知らないけど
このケースだと代入時(実行時)に変換してるのかな?

実行ファイルの最後に定数が保存されてたと思うけど
すでにunicodeになってたような気がする
0293デフォルトの名無しさん
垢版 |
2017/04/01(土) 14:47:04.87ID:MIBbFxu2
>>288
リンク先を読んでみると、「すでにUnicodeとして扱われている」ってのが分かると思うんだが。

>Delphi 2009で、内部的に大きく変わっています。Delphi 2009では、Unicodeを標準文字列型として採用しているために、このコードで使われている文字列はすべてUnicodeです。
>Sに代入している ‘Hello, World.’ は、Unicodeです。

ソースの文字コードがなんであれ、リテラル文字列の扱いはUnicode。

C++Builderで扱う場合はLが付いているかいないかでリテラル文字列の扱いが変わると思う。
0294デフォルトの名無しさん
垢版 |
2017/04/01(土) 16:29:34.25ID:xnSlrZsr
てか簡単なサンプル作って試せば済むことじゃん

昔のバージョンのdelphiで
文字コードを意識する必要があるケース以外
最近のバージョンのdelphiでも
unicodeであることは考えなくていいんじゃない
0295デフォルトの名無しさん
垢版 |
2017/04/01(土) 21:40:45.92ID:JcotD4lU
真に気を付けないといけないのは1文字に複数文字が入ってるサロゲートペア

見た目が同じだからハマる

「ば」と「ば」が違う文字とかわっかんねーよ
0297デフォルトの名無しさん
垢版 |
2017/04/02(日) 09:38:21.10ID:WSPdqmkD
>>295
最後の行は「ば」?
これってサロゲートペアなのか?
それとも別の文字が化けた?

それと
内部の文字列がunicodeになった話と
unicode文字列を処理する話は
微妙に違う話だぞ?
0299デフォルトの名無しさん
垢版 |
2017/04/02(日) 10:43:02.23ID:3chV0onz
>>297
2chだと化ける可能性あるから両方サロゲートペアじゃないよ

入力ソフトによってはかな入力するとサロゲートペアになるんよ
んでUTF16の入力を受け付けるもんだからそのままDBに格納したりしてあとで検索にひっかからないとか
コードの仕様で言うならIF条件すり抜けたりとか

おかげでEditのTextとか必ずUTF8Stringに代入する癖がついてしまった
0301デフォルトの名無しさん
垢版 |
2017/04/02(日) 12:55:55.04ID:n+5RCyoZ
>>295
それ、ちょっと間違ってるな。
そのケースはサロゲートペアじゃないだろ。
サロゲートペアは単にUTF-16の2バイトのコードユニットで2つのコードユニットで
1文字を表すケースの事でしょ。

「ば」の話は合成文字だか結合文字だかそっちの話じゃん。
0302デフォルトの名無しさん
垢版 |
2017/04/02(日) 13:01:11.75ID:n+5RCyoZ
>299
>おかげでEditのTextとか必ずUTF8Stringに代入する癖がついてしまった
だから、それも全然関係ないから。UTF-8だから解決するというのは勘違いだから。
合成文字の問題は「正規化」使って解決する問題。
0303デフォルトの名無しさん
垢版 |
2017/04/02(日) 13:05:11.00ID:3chV0onz
>>302
はしょってるから書いてないけど正規化もしてるよ

文字での説明に重箱の隅つつかないでくださいな
気にしないでやってるとそういう問題(にぶつかる可能性)もあるよって話です
0304デフォルトの名無しさん
垢版 |
2017/04/02(日) 13:10:15.31ID:n+5RCyoZ
言葉の使い方が完璧に間違ってるのに重箱のすみつつかないでっていわれてもなぁ・・

君たちが議論してる「ぱ」と「は」+「゜」はサロゲートペアと全然関係ないんだけどな。
合成済み文字と基底文字と結合文字の話で合って、
サロゲートペアと全く関係ない。
0305デフォルトの名無しさん
垢版 |
2017/04/02(日) 13:13:23.66ID:3chV0onz
つまりこれこれこういう問題があってこうしましたって1から10まではしょらず正しい言葉をつかって説明しないとここには書き込むなって事ね。了解。




めんどくせ
0306デフォルトの名無しさん
垢版 |
2017/04/02(日) 13:17:10.52ID:n+5RCyoZ
完全に言葉の定義を間違ってるんだから、教えてあげただけじゃねぇかよ。

別に間違ってたことに対して、「おまえら馬鹿?」みたいなくだらい煽りとか
俺はする気ねぇし。丁寧な言葉で教えてあげたら、その言いぐさ。
0308デフォルトの名無しさん
垢版 |
2017/04/02(日) 13:23:02.99ID:JDqJ1ftS
言葉の定義とやらが間違ってたとしても、
バグの原因になる事のコメントは個人的に大歓迎(こなみかん
0309デフォルトの名無しさん
垢版 |
2017/04/02(日) 14:03:03.40ID:iqf+IrkA
俺には難しい話をしてるけど、文字扱うには正規化とやらをやって、utf8とか16とかに統一してから加工したり検索したりしないとハマるってこと?
0310デフォルトの名無しさん
垢版 |
2017/04/02(日) 17:46:06.81ID:WSPdqmkD
サロゲートペアに関連してだけど
MECUtilsとか使ってやったりするの?

今まであんまり意識したことないから
注意喚起は嬉しいけどメンドクサ過ぎるね
0311デフォルトの名無しさん
垢版 |
2017/04/02(日) 18:37:26.81ID:9KwT0wNW
Unicode化の弊害というかなんというかだけど、
マルチデバイスも相まって想定外の変な文字が入る確率っていうのは
確かに飛躍的に増えてる・・・気がする。
0312デフォルトの名無しさん
垢版 |
2017/04/02(日) 20:31:47.10ID:n+5RCyoZ
>>310
そんなの使わなくても普通は標準であるだろ。
Character.pasに必要なのそろってる。
TCharacter.IsSurrogate()
0314デフォルトの名無しさん
垢版 |
2017/04/02(日) 20:48:31.98ID:3chV0onz
おっと綴り間違ってたな
System.Characterだな。また重箱の隅つつかれるところだった
0316デフォルトの名無しさん
垢版 |
2017/04/02(日) 23:41:35.03ID:9/rnzeyZ
今ってディスプレイのアスペクト比が数種類あるけど、皆さんは画面のデザインってどうしてますか?
16:9に合うようにデザインしてる?
それとも、フォームの設定とかで実行時にある程度アスペクト比に合わせてくれる設定とかってある?
0317デフォルトの名無しさん
垢版 |
2017/04/03(月) 14:57:16.50ID:r7DyphN2
時代は可変
0319デフォルトの名無しさん
垢版 |
2017/04/03(月) 18:42:50.88ID:gM/woy0K
>>316
意味分からないが。
ウインドウサイズ自体固定させないし、
Align プロパティを使って固定部分とそうでない部分とを分けるし
プラスTSplitterでユーザの好みにさせたりもするし。
動画や画像でもないならアスペクト比なんて気にしないんじゃないのか。
0322デフォルトの名無しさん
垢版 |
2017/04/12(水) 07:11:34.88ID:lM5IX7kk
メモリーリークの場所ってdelphiに標準で入ってるリークを監視するやつのフルバージョン入れないと分からない?
0323デフォルトの名無しさん
垢版 |
2017/04/16(日) 12:03:24.01ID:he8BFR5v
Delphi10.1でのフル機能のfastmm4の使い方を教えてください。
メモリーリークのメッセージは出るのですが、テキストファイルが作成されないです。
よろしくお願いします。
0324デフォルトの名無しさん
垢版 |
2017/04/17(月) 16:51:42.85ID:y+L9zWaz
DatetimetostringとFormatDateTimeの違いって
procedureであるか、Functionであるか、だけですか?
(引数は異りますが)
0326デフォルトの名無しさん
垢版 |
2017/04/17(月) 20:24:58.64ID:y+L9zWaz
>>325
すみません、質問をはしおりすぎでした。

procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime);
function FormatDateTime(const Format: string; DateTime: TDateTime): string;

上記2つ、使用目的はいっしょですよね。
なぜに同じような目的の手続きと関数が用意されているのか?
と思った次第です。

FormatDateTimeだと、
showmessage(FormatDateTime(....));とできますが、

DateTimeToStringだと、
var
DTstr :String;
Begin
DateTimeToString(DTstr, .....);
Showmessage(DTstr);
となるので、DTstr分手間がかかるなと思ってました。
0329デフォルトの名無しさん
垢版 |
2017/04/18(火) 18:41:12.40ID:EH33vxsU
>>326
ソースコード見てみると
FormatDateTimeはDateTimeToStringを呼び出しているだけ。
たぶん利便性(使い分けできるように)の問題だと思う。

ちなみに以下の関数が内部的にDateTimeToStringを呼び出すだけで実装されている。
function DateToStr(const DateTime: TDateTime): string;
function TimeToStr(const DateTime: TDateTime): string;
function DateTimeToStr(const DateTime: TDateTime): string;
function FormatDateTime(const Format: string; DateTime: TDateTime): string;

また同名の関数で引数の最後にTFormatSettings型が追加されたバージョンも
内部的にTFormatSettings型を引数に持つDateTimeToStringを呼び出しているだけ。
0330324,326
垢版 |
2017/04/19(水) 09:04:32.22ID:/KRyUyJO
>>329
なるほど、参考になりました。ありがとうございます。
0331323
垢版 |
2017/04/19(水) 15:21:22.52ID:1b3gc8EV
>>328
FastMM4のデモで試した結果、ソースの所のFastMM4 in 'FastMM4.pas'をSharememに変えたらリークの場所がわかる余裕になりました。
Sharememが何かはわかりません。w
円バカのサイトに載ってたのでやって見たらなんとか動作したって感じです。
0332デフォルトの名無しさん
垢版 |
2017/04/23(日) 00:33:57.32ID:h9OMGlcp
delphi10.1までは問題なかったのにdelphi10.2にしてから
stylebookで指定したstyleが一部反映されなくなりました。

tabcontrolのタブがandroid実機で実行すると
styleが反映されずデフォルトのタブになってますorz

対処方法とか分かる方いらっしゃいますか?
暫くは10.1を使い続けるしかないですかね・・・
0334332
垢版 |
2017/04/23(日) 07:38:09.47ID:h9OMGlcp
>>333
アドバイスありがとうございます。

Android用スタイルを削除してマージしてみましたが結果は同じでしたorz

もう少し詳細に書くとIDE上ではタブにもスタイルが反映されているが
ビルドしてAndroid実機で動かすとアクティブなタブだけが
デフォルトになってしまう状態です。

同じプロジェクトをDelphi10.1でビルドし直してAndroid実機で動かすと
アクティブなタブも含めてに正常にスタイルが反映されてます。

また、スタイルに使用しているファイルは「AquaGraphite.style」を
使用していますが他のスタイルファイルを使っても同様の結果でした。

実機はXperia Z3ですが他に持っていないので他機種でどうなるかは未検証です。
0335332
垢版 |
2017/04/23(日) 07:50:06.92ID:h9OMGlcp
>>333
すいませんTabControlのみしかない最小限のプロジェクトで試したら
正常にスタイルが反映されているのが確認できました。

変な設定がどこかで生きているのだと思います。
失礼しましたm(_ _)m
0336デフォルトの名無しさん
垢版 |
2017/04/27(木) 08:22:37.61ID:rpeb1FWf
メッセージダイアログやショーメッセージで改行を
使うとメモリリークが出るけどなんで?
0338336
垢版 |
2017/04/27(木) 12:36:20.33ID:axAm+D16
delphiがバグってる?
新規作成でシンプルな状態でやってもメモリーリークのメッセージが出るんだけど、どうすりゃ良いんだろう。
俺だけ?
0339336
垢版 |
2017/04/28(金) 22:34:22.04ID:WI3n6xVG
メモリーリークを調べているのですが
MessageDlg(IntToStr(123),mtConfirmation, [mbOK, mbCancel], 0);
IntToStr(123)が原因でメモリーリークが起きるみたいです。
Delphiのバグ?コードがダメ?
0341デフォルトの名無しさん
垢版 |
2017/04/30(日) 11:59:29.48ID:0p25w19v
336ではないけどソースコード見てみた
ポイントになりそうなところがアセンブリで書かれてた
0343デフォルトの名無しさん
垢版 |
2017/04/30(日) 23:16:41.78ID:rKLNeW5H
1. MessageDlg と同じ引数を持つ、そのユニット内にローカルな関数を書いて、MessageDlg のせいかどうか調べる。
2. IntToStr と同じ引数を持ち、適当な文字列を返す関数を同様に書いてみる。
3. コンソールアプリケーションのプロジェクトを作成して、1.を行って調べてみる。
4. 同様に IntToStr も行ってみる。
0344デフォルトの名無しさん
垢版 |
2017/04/30(日) 23:36:32.18ID:5yRtGq51
どのバージョンで発生したのかしら?
こちらのTurbo Delphiは
ReportMemoryLeaksOnShutdown := True;
で再現せず。
0345デフォルトの名無しさん
垢版 |
2017/05/02(火) 01:47:15.38ID:As8TBna0
昔の経験
マルチスレッド内で間違った呼びし、クリティカルセクションの間違った実装
0347デフォルトの名無しさん
垢版 |
2017/05/24(水) 11:04:03.05ID:ipeCfZP9
32biでも64bitでもinteger型は32bitですか?
Pointer型(とPtrInt型)だけが変化すると考えてよいのでしょうか?
0348デフォルトの名無しさん
垢版 |
2017/05/24(水) 11:54:37.27ID:4nncZNTT
-1 を代入する
pointer を求める
pointer + 0 と pointer + 3 と pointer + 7 あたりを見る

0 を代入する
pointer を求める
pointer + 0 と pointer + 3 と pointer + 7 あたりを見る
0350デフォルトの名無しさん
垢版 |
2017/05/26(金) 08:47:10.54ID:trsKQBBQ
>>349
そんなことどこにも書いてないけどホント?
ttp://docwiki.embarcadero.com/RADStudio/Berlin/ja/32_%E3%83%93%E3%83%83%E3%83%88_Delphi_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE_64_%E3%83%93%E3%83%83%E3%83%88_Windows_%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B
0351デフォルトの名無しさん
垢版 |
2017/05/26(金) 10:06:17.71ID:gif2nYmV
そのページは、たぶん、Win32->Win64 だけの頃のやつ。

http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Delphi_%E5%9E%8B%E3%81%A8_C%2B%2B_%E5%9E%8B%E3%81%AE%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0
ここで、C の long は、Wind64 では 32-bit、iOS64/Linux64では 64-bit。

とか

http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/%E5%8D%98%E7%B4%94%E5%9E%8B%EF%BC%88Delphi%EF%BC%89

とか
0352デフォルトの名無しさん
垢版 |
2017/05/26(金) 10:13:55.43ID:trsKQBBQ
>>351
iOSだけ特殊な感じ?変なの。
LongIntとLongWordは使わないほうがよさげですね。何でこんな変な仕様にしたんだろ。
0353デフォルトの名無しさん
垢版 |
2017/05/26(金) 10:22:32.82ID:trsKQBBQ
あ、iOSにはLinux系も含まれるんですか?
その辺のあやふやさも嫌な感じですね。
0354デフォルトの名無しさん
垢版 |
2017/07/06(木) 10:33:45.10ID:E7iuEH9H
シンエディットでプロシージャの名前とファンクションの名前を色分けするような使い方をしたいのですが、
シンジェネラルに設定するキーワードの種類を増やす事はでききませんか?
継承してシンジェネラルも自分で作らないと無理でしょうか?
0357デフォルトの名無しさん
垢版 |
2017/07/06(木) 13:00:39.86ID:/LwN4Pic
すまん。
あんまり、キーボードとかスマフォの画面とか触れないから音声のやつで入力した。
0361デフォルトの名無しさん
垢版 |
2017/07/30(日) 22:35:33.76ID:PBa3jUos
昔MCIをいじっていた者です。覚えている人いるかな?
4年くらいメソッドを書いてなくて、送るでwavを聞きたいなって思って久しぶりにコンパイラを触りました。
何をするソフトなのかというとフォームに対してD&DしてTListにD&D元のファイルのフォルダの
ファイル名を取得するソフトなんですが、なぜうまくいかないかわからなくて…。
指摘していただければ幸いです。
0362デフォルトの名無しさん
垢版 |
2017/07/30(日) 22:37:14.18ID:PBa3jUos
unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,ShellAPI, Vcl.StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
ListBox1: TListBox;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
function SearchFile(SearchDir: string):integer; //SearchDir 検索対象のフォルダ
{ Private 宣言 }
protected
procedure FilesDropped(var Msg1:TWMDropFiles); message WM_DROPFILES;
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
0363デフォルトの名無しさん
垢版 |
2017/07/30(日) 22:38:16.16ID:PBa3jUos
procedure TForm1.Button1Click(Sender: TObject);
var
FileCount :integer;
begin
ListBox1.Clear;
//実行ファイルのあるディレクトリのファイルを列挙
FileCount :=SearchFile(ExtractFilePath(Application.ExeName));
ShowMessageFmt('%d個のファイルが見つかりました。',[FileCount]);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, TRUE);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Handle, FALSE);
end;
0364デフォルトの名無しさん
垢版 |
2017/07/30(日) 22:38:43.85ID:PBa3jUos
procedure TForm1.FilesDropped(var Msg1:TWMDropFiles);
var
FNameSize: UINT;
Count : UINT;
FileName : array[0..255] of Char;
FileName1: string;
begin
FileName1 := '';
try
Count := DragQueryFile(Msg1.Drop, $FFFFFFFF, nil, 0 );// A
if Count > 1 then Abort; // B
FNameSize := DragQueryFile(Msg1.Drop, 0, nil, 0) + 1; // C
DragQueryFile(Msg1.Drop, 0, FileName, FNameSize); // D
Filename1 := StrPas(FileName); // E
finally
DragFinish(Msg1.Drop); // F
end;
if FileName1 = '' then Exit;
label1.Caption := Filename1;
end;

end.
0365デフォルトの名無しさん
垢版 |
2017/07/31(月) 00:52:16.24ID:5UR8c5yg
とこでfmxアプリをタスクトレイに収める方法はないですか?

探すとロシアのサイトにコンポーネントがあったけど
他に方法はないでしょうか?
0367デフォルトの名無しさん
垢版 |
2017/07/31(月) 08:21:01.65ID:5UR8c5yg
>>366
ええもちろん

例えばバックグラウンドでネットにアクセスして
通知したりポップアップしたりする感じ

Androidだとserviceを使うんでしょうが
Windowsデスクトップだとタスクトレイに
常駐させるくらいしか思いつかない

こういうWindowsアプリをfmxで作る場合
どうするんでしょうか?
0368デフォルトの名無しさん
垢版 |
2017/07/31(月) 12:56:22.59ID:m2zUy0za
>>367
WinAPI.WindowsをUSESしてタスクバーから消したいアプリケーションのHWND取得してShowWindow(HWND,SW_HIDE);をぶちかます

タスクトレイにアイコン表示させたりする場合はコード記述でもできるけど面倒だからMonkeyMixerか何か使ってVCLを混在させてTTrayIcon使う
0370デフォルトの名無しさん
垢版 |
2017/08/01(火) 10:29:01.65ID:8qLxpsQt
TTrayIconはVCL依存がほとんどないから、切り出して使った方が余計なユニットがリンクされなくていいと思う
自分はそうしてる
0371デフォルトの名無しさん
垢版 |
2017/08/13(日) 13:54:41.72ID:6x3+ks7t
教えてください。

fmxで矩形以外の多角形領域を
Bitmap(.Canvas)間でコピーするには
どうしたらいいでしょう?

Helpを探したんですが見つけられませんでした

苦肉の策で矩形領域を別のBitmapにコピーし
対象の多角形領域外を完全透過に塗りつぶして
それを最終的に目的のBitmapにコピーしてます

よろしくお願いします
0372デフォルトの名無しさん
垢版 |
2017/08/26(土) 22:45:11.62ID:Siu65+Zd
fmxねぇ...

実行ファイルのサイズが
vclの倍以上になるのはビックリ

でもvirustotalなんかでの誤検知は
確実に減るな
0373デフォルトの名無しさん
垢版 |
2017/08/29(火) 17:10:04.07ID:sf08cQEA
DBCtrlのKeyPressメソッドで出てくる
^H  ^V  ^X
とかって何を指してるんですか?それぞれ16進で、8,16,18の値なんですが。
ポインタの逆参照以外で ”^” の使い方はヘルプにも無いのですが。
0375373
垢版 |
2017/08/29(火) 17:15:51.90ID:sf08cQEA
>>374
コントロールキーを押しながら…の記述に ”^” を使うということですか。
ありがとうございます。
0376デフォルトの名無しさん
垢版 |
2017/09/20(水) 09:56:54.97ID:lqqkwYAM
ちょっと教えてください

ジェネリクスなTListにレコード型を格納しておいて
後でレコード内の一部のフィールドを修正したい場合
どうすればいいんでしょうか

やっぱレコード全体を取り出して、修正後に全体を書き戻す?
0377デフォルトの名無しさん
垢版 |
2017/09/21(木) 21:39:40.01ID:pNUeS15R
うまくいくかはわからないが、
lst: TList<THoge>なリストがあるとして、

for i :=0 to lst.Count-1 do begin
lst.List[i].SomeField := v;
end;

のように、レコードのコピーが発生しないようにすればもしや。
0378デフォルトの名無しさん
垢版 |
2017/09/22(金) 00:31:23.41ID:zuQMjG3e
デフォルトプロパティ List[i] に相当する List.Items[i] の
read関数 function TList<T>.GetItem(Index: Integer): T; は、戻り値が
左辺値ではないので、どうしても一時変数が必要です。
0379デフォルトの名無しさん
垢版 |
2017/09/22(金) 07:31:05.69ID:mBOH6uxg
>>378
Itemsプロパティではなく、内部で管理している配列を直接返すListプロパティを介してもテンポラリーのコピー発生するんだっけ?
ちょっとうろ覚え。
0380デフォルトの名無しさん
垢版 |
2017/09/23(土) 14:45:31.84ID:69c72AW1
Delphi 10.2 Update 1で実行しています。

log.d('error だめぽ');

上記コードをiPhone実機で実行して
Xcode -> Window -> Devicesに表示されている実機のログを確認すると
以下のように全角文字が文字化けします。

2017/09/23 14:35:21 Project1[7478]: error \M-c\M^A\240\M-c\M^B\M^A\M-c\M^A\M-=

解決策をご存知の方がいらっしゃいましたらお助けくださいませm(_ _)m
0381デフォルトの名無しさん
垢版 |
2017/09/23(土) 23:58:16.42ID:qb+wgPEX
エスケープ文字をデコードすると e3 81 a0 e3 82 81 e3 81 bd なので、UTF-8 ですかね。
エスケープ文字への変換がログの前後かは切り分けてみましょう。od -x で16進表示すると、
\M-c のところが、e3 なのか 5c 5d 2d 63 なのかでわかるでしょう。
前者なら、ログを出力するツールの性格(ASCII以外は変換とか)、
後者ならコンソールへ出力するツールの変換ですかね。
前者なら、デコードツールでも作ってみれば。
\Mは、0x80を or するメタキーを併用したキー入力の名残りで、Emacs/GNU系の方言です。
\M-c は 0x80 + 'c' = 0xe3 、\M^A は 0x80 + 0x01 (Control-A) = 0x81、\240は8進表記なので 0xa0
0382380
垢版 |
2017/09/24(日) 08:50:50.85ID:xiqHS4Dl
>>381
詳細に解説いただきありがとうございます!

>\M-c のところが、e3 なのか 5c 5d 2d 63 なのかでわかるでしょう。

od -xのやり方が分からなかったのでログをテキストで保存して
バイナリエディタで確認したところ5c 4d 2d 63でした。
これは表示する側の問題ということですよね?

あの後、XCodeでNSLogでデバッグログを出力する簡単なプログラムを書いて確認したところ
XCode上のデバッグコンソールには日本語が文字化けしないで出力されますが
Xcode -> Window -> Devicesに表示されている実機のログでは日本語が文字化けしたので
表示側の問題なのかなと思います。

日本語が表示できないのは不便なので解決できるとうれしいですが
こういう場合、難しいのでしょうか。
0384381
垢版 |
2017/09/25(月) 02:46:48.72ID:O5/7UCBk
しまった。前後逆でした。e3 のままなら無変換。

で、ちょっと古いけどXcode6.3.2+ios8.3では日本語表示できてます。
0385380
垢版 |
2017/09/25(月) 08:55:47.22ID:Ojd2COhe
>>383
ご回答ありがとうございます!
NSstrを使ってlog.dで出力しようとするとコンパイラに怒られてしまいましたorz
AnsiStringを試したところ出力文字は変化しましたが文字化けは改善されませんでした。

>>384
ご回答ありがとうございます!
なるほど。
現在の環境がXCode8.3 + iOS8.3なので少し古いXCodeを使って試してみようと思います。
0386デフォルトの名無しさん
垢版 |
2017/09/27(水) 10:22:25.25ID:9ZA1JIkS
iOSってTBannerAdを使ってAdmob表示できないんですか?
docWiki見たらiOSはiAdを使う前提の説明しかなくて・・・
0392デフォルトの名無しさん
垢版 |
2017/10/30(月) 20:24:16.10ID:n19lyVRb
お伺いします。
https://www.axfc.net/u/3858375?key=delphi
アーカイブpass=123456

ですが、AというフォルダにB.zipC.zipD.zip・・・というファイルが入っています。
これにB.zipというファイルをフォームにD&Dで落とすと
1:q:\A\B.zip
2:q:\a
3:q:\a\
と表示されます。
そして、Button1を押すとバイナリがあるフォルダのファイルの数を報告します。
欲しい機能はB.zipをフォームにD&DをしたときにC.zip,D..zip
のAフォルダ内のファイルのすべてをListBox表示に表示させるにはどうしたらよいでしょうか?

最近いろいろやっているのですが、今ひとつ解決できないため、
教えていただけないでしょうか?
0394デフォルトの名無しさん
垢版 |
2017/11/02(木) 18:58:25.38ID:i0GpXesu
すみません。エロい方教えてください。

s := 'ABC'#13#10;

という文字列を、SJISの16進文字列に変換して、
  '4142430D0A'
にしたいのですが、やり方がわかりません。
どう書けばよいのでしょうか?
0396デフォルトの名無しさん
垢版 |
2017/11/04(土) 21:02:07.27ID:wxgLJQNm
D5でよければこんな感じでできるかな

procedure TForm1.FormCreate(Sender: TObject);
var
s, s2: string;
i: Integer;
begin
s := 'ABC'#13#10;
s2 := '';
for i := 1 to Length(s) do
begin
s2 := s2 + IntToHex(Ord(s[i]), 2);
end;
ShowMessage(s2);
end;
0399デフォルトの名無しさん
垢版 |
2017/11/06(月) 21:26:18.10ID:WbFc3oVf
すみません。
気にしなきゃいけない状況です。
で、XE5は今環境がないのです。。。
(仕事場が2つあり、いまXE5がない方に常駐しているので)
0405デフォルトの名無しさん
垢版 |
2017/11/23(木) 23:05:31.51ID:6erWI8jG
         .┌┐
        / /
      ./ / i
      | ( ゜Д゜) 
      |(ノi  |)
      |  i  i
      \_ヽ_,ゝ
        U" U
0406402
垢版 |
2017/11/24(金) 21:05:42.06ID:dHFHVjxQ
imagelistを使うと削除できないみたいです。

選択範囲には継承されたコンポーネント ImageList1 が含まれているため削除できません。.

これって返品で金返してくれないかな
0410402
垢版 |
2017/11/25(土) 09:22:54.97ID:2E3yXKzA
皆さ、レスありがとうございます。
バージョンは10.2です。
試した感じではボタンだけの貼り付け、削除はできる。
ImageListはListに画像を追加すると削除できなくなります。
その状態になるとボタンの削除もできなくなります。
ImageListの画像リストを削除してもダメです。
Delphiはそんなに触ってないので設定は初期値のままです。
0411デフォルトの名無しさん
垢版 |
2017/11/25(土) 09:23:27.60ID:O3o92heE
何か最近ヘルプ表示したままdelphi終了しようとすると
ヘルプの終了処理に手間取ってdelphiがなかなか終了しない

心当たりはFCUへのアップデートとMS VisualStudioの再インストールだが...
0414デフォルトの名無しさん
垢版 |
2017/11/26(日) 18:29:30.48ID:JMtUYhzN
ググったけどdelphiの正規表現しか出てこないです。
サイトとか教えてください。
0417デフォルトの名無しさん
垢版 |
2017/11/30(木) 11:55:54.04ID:jryz1LGC
TRegistryをもちいて、
レジストリの情報を拾いたいのですが、

レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanesers\Eras

ひろいたい情報
名前、データ
1868 01 01, 明治_明_Meiji_M
1912 07 30,大正_大_Taisho_T

const
AppKey='\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanesers\Eras';
var
Reg:TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKey(AppKey,False) then begin

この後どうすればいいんでしょう?

Reg.GetValueNames(MEMO.Lines);

としてもMEMOには何もかえってこないのです。
0419デフォルトの名無しさん
垢版 |
2017/11/30(木) 17:26:14.42ID:jryz1LGC
>>418
その通りでした。
Reg.OpenKey で戻りを気にしていなかったので、悩み続けてしまいました。
ありがとうございます。感謝です。
0423デフォルトの名無しさん
垢版 |
2017/12/12(火) 18:31:07.66ID:D0b6rm60
古くからのDelphiコンポーネントが全て置いてある
アーカイブ的なサイトってないんだろうか
0424デフォルトの名無しさん
垢版 |
2017/12/12(火) 21:12:25.60ID:ABDe/NWv
ふと思ったけどTImageListじゃなく
TSoundListコンポーネントってない?
用途はありそうだが

てかTImageListってどういう仕組みで
画像を保持してるんだろう
0426デフォルトの名無しさん
垢版 |
2017/12/24(日) 16:19:13.24ID:dCGOIGeG
Tetheringコンポーネントを使ってアプリ間データ共有を試してるんだけど
コンポーネントをフォームに置くだけでusesに追加される
IPPeerClient/Serverファイルがないって怒られるんだけど

Starterだと実はTetheringコンポーネントは使えない?
0428デフォルトの名無しさん
垢版 |
2017/12/24(日) 19:06:27.16ID:dCGOIGeG
>>427
そうだよね

だったらTetheringコンポーネントなんか
選択できなくすればいいのに

ただSystem.Tether.*.dcuはすべて揃ってるぽいんだよな
0429デフォルトの名無しさん
垢版 |
2017/12/28(木) 21:34:46.01ID:JOEtu7v7
質問させてください。
仮想通貨取引所で資産状況を見るプログラムを書こうとしているんですがうまくいきません。
エラーメッセージが、Signature mismatchとでます。

var
s,nonce,key,secret:string;
PostURL : String;
PostStream : TStringList;
ResStream : TStringStream;

begin

PostURL := 'https://api.zaif.jp/tapi';
PostStream := TStringList.Create;
ResStream := TStringStream.Create('');
IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions - [hoForceEncodeParams];
nonce := DateTimeToUnix(Now,true).ToString();
IdHTTP1.Request.ContentType:='application/json';
IdHTTP1.Request.CharSet:='uft-8';
PostStream.Add('method' + HTTPEncode('get_info2'));
PostStream.Add('nonce' + HTTPEncode(nonce));
idhttp1.Request.CustomHeaders.AddValue('Key','XXXXXXXXXXx');
idhttp1.Request.CustomHeaders.AddValue('Sign','XXXXXXXXXXXX');
IdHTTP1.Post(PostURL, PostStream, ResStream);
showmessage(ResStream.DataString);
end;

C#では以下のように書くらしいのですが、ご教示願えないでしょうか。
https://kokenji.net/zaif-api/
0431デフォルトの名無しさん
垢版 |
2017/12/29(金) 07:48:05.15ID:yZ5IlcO4
>>430
ありがとうございます。
SHA256でメッセージ暗号化するってことでしょうか?
それとも別の通信するのに必要な処理でしょうか?
0433デフォルトの名無しさん
垢版 |
2017/12/29(金) 11:43:27.38ID:PDCF/c1K
>>431
URLから察するにZaifやと思うが、公式のAPIリファレンスまず読もうや
リファレンスで書いてる事がわからないなら都度質問したらええ
今の状況を人は丸投げと言う
0437デフォルトの名無しさん
垢版 |
2018/01/08(月) 09:12:47.06ID:j35IDJ3/
Delphi 10.2 Tokyo で、

  @クラス定義部分で Ctrl+Shift+C を押してメソッド実装部を自動生成すること
  Aメソッド呼び出し部分でCtrl+クリック で定義部にジャンプすること

ができないのですが、できるようにする方法はありますか?
0443デフォルトの名無しさん
垢版 |
2018/01/10(水) 22:49:34.96ID:A/FWCqkf
Starterは支援機能削られてる
コード補完、ライブコードテンプレート、リファクタリング、コマンドラインツール、コード整形、クラスエクスプローラ、ユニットテスト、翻訳ツールなどの支援機能

コード補完はつけて欲しかったね
0447デフォルトの名無しさん
垢版 |
2018/01/19(金) 14:12:23.13ID:3mDLycuV
fmxで実行時に複数のpanelを動的に作成し
その背景を別の色にしたいんだけど

設計時にpanelのカスタムスタイルを変更するのは簡単だけど
実行時に変更する方法が分からない

検索すると質問は結構あるけど
答えは古いバージョン対応みたいで
うまく機能しない

誰かヒントをお願いします
0450デフォルトの名無しさん
垢版 |
2018/02/02(金) 16:54:03.50ID:MJtWQFFO
どうしても分からないため、教えてください。
アプリとしては、D&DでFoamに落としたときにTListboxにカレントフォルダのファイルを列挙します。
とんちんかんなメソッドでもとかもか構わないので、是非ともお願いいたします。

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, TRUE);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Handle, FALSE);
end;

procedure TForm1.FilesDropped(var Msg1: TWMDropFiles);
var
FNameSize: UINT;
Count: UINT;
FileName: array [0 .. 255] of Char;
FileName1: string;
LFilesList: TStringDynArray;
LFileName: String;
begin
FileName1 := '';
0451デフォルトの名無しさん
垢版 |
2018/02/02(金) 16:54:26.34ID:MJtWQFFO
try
Count := DragQueryFile(Msg1.Drop, $FFFFFFFF, nil, 0); // A
if Count > 1 then
Abort; // B
FNameSize := DragQueryFile(Msg1.Drop, 0, nil, 0) + 1; // C
DragQueryFile(Msg1.Drop, 0, FileName, FNameSize); // D
FileName1 := StrPas(FileName); // E
finally
DragFinish(Msg1.Drop); // F
end;
if FileName1 = '' then
Exit;
Label1.Caption := FileName1;
DirName := ExtractFileDir(FileName1);
Label2.Caption := DirName;
begin
// APath内のディレクトリ内のファイルリスト作成
// [マイコンピュータ]等の特殊フォルダは指定しても無効
LFilesList := TDirectory.GetFiles(LDir);
for LFileName in LFilesList do
begin
ListBox1.Items.Add(TPath.GetFileName(LFileName));
end;
ListBox1.Items.EndUpdate;

end;
end;
0452デフォルトの名無しさん
垢版 |
2018/02/12(月) 17:53:30.98ID:wyyYgDNO
>>443
Starterにはコード整形というのはないのですか、一生懸命探してしまった(笑)
CodeFormatterありがたい!
0456デフォルトの名無しさん
垢版 |
2018/02/16(金) 01:22:45.51ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0457デフォルトの名無しさん
垢版 |
2018/03/14(水) 17:54:41.12ID:joCYD0wr
10.2.3出たな

でー、インストール時にもインストール後の「プラットフォームの管理」にもAndroidとかiOSのが出ないんだけどどうなってるんや?(Pro Ed.
0458デフォルトの名無しさん
垢版 |
2018/03/27(火) 23:04:26.37ID:krpCtSiN
D6に入れて使ってるIndy10 https対応してたのね。
dllをexeと一緒に置いておくだけ、あちこちで書かれてるIOHandlerを差換えって
必要ないのね。
0459デフォルトの名無しさん
垢版 |
2018/04/07(土) 17:54:05.06ID:uobWZe4y
すみません教えてください。
長いこと格闘していたのですが、どうしても攻略できません。

ソフトとしてはwavファイルをD&Dでフォームに落とすと、このフォルダー内のファイルをTListBox内に列挙して
フォーム落としたファイルをMCIを使って再生させるというものです。

只、落としたファイルをファイルPATHで渡しても何も起こらず苦慮しております。
長いこと何やってたんだと叱責を受けるかもしれませんが、よろしくお願いいたします。
意味のとりにくい文章で申し訳ありません。

ttps://www.axfc.net/u/3901529?key=delphi
0462デフォルトの名無しさん
垢版 |
2018/04/08(日) 19:31:28.65ID:aHOcMh8N
ちょっと長いのですが…

procedure TForm1.FilesDropped(var Msg1: TWMDropFiles);
var
FNameSize: UINT;
Count: UINT;
FileName: array [0 .. 255] of Char;
FileName1: string;
LFilesList: TStringDynArray;
LFileName: String;
str : string;
0463デフォルトの名無しさん
垢版 |
2018/04/08(日) 19:32:04.72ID:aHOcMh8N
begin
FileName1 := '';
try
Count := DragQueryFile(Msg1.Drop, $FFFFFFFF, nil, 0); // A
if Count > 1 then
Abort; // B
FNameSize := DragQueryFile(Msg1.Drop, 0, nil, 0) + 1; // C
DragQueryFile(Msg1.Drop, 0, FileName, FNameSize); // D
FileName1 := StrPas(FileName); // E
finally
DragFinish(Msg1.Drop); // F
end;
if FileName1 = '' then
Exit;
DirName := ExtractFileDir(FileName1);
Label2.Caption := FileName1; // ファイル名
Label3.Caption := DirName; // フォルダーパス\なし
0464デフォルトの名無しさん
垢版 |
2018/04/08(日) 19:32:09.74ID:aHOcMh8N
begin
//選択されているときに処理を行う
if ListBox1.ItemIndex > -1 then
begin
//選択している文字列を取得
str := ListBox1.Items[ListBox1.ItemIndex];
//取得した文字列を追加
ListBox1.Items.Add(str);
end;

Label4.Caption := str;
begin
// APath内のディレクトリ内のファイルリスト作成
// [マイコンピュータ]等の特殊フォルダは指定しても無効
LFilesList := TDirectory.GetFiles(DirName);
for LFileName in LFilesList do
begin
ListBox1.Items.Add(TPath.GetFileName(LFileName));
end;
ListBox1.Items.EndUpdate;

end;
end;
0465デフォルトの名無しさん
垢版 |
2018/04/08(日) 19:40:43.33ID:aHOcMh8N
procedure TForm1.PlayBtnClick(Sender: TObject);
var
FileName1: string;
begin
mciSendString(PChar('open"' + FileName1 + '"type MEPGVideo' + 'alias MusicFile'), nil, 0, 0);
// ~~~~~~~~~~~
mciSendString(PChar('play Musicfile from 0'), nil, 0, 0);
end;

上記のチルダの部分あたりだと思うのですが…
どうしてもわかりません。
0466デフォルトの名無しさん
垢版 |
2018/04/08(日) 21:52:36.23ID:vzZ5v1M+
>>465
自分もよく知らんので間違ってたらごめん

>mciSendString(PChar('open"' + FileName1 + '"type MEPGVideo' + 'alias MusicFile'), nil, 0, 0);

'open"' じゃなくて 'open "' ではないだろうか
コマンドの後に空白スペースが無いって事ね
typeやaliasの前にもスペース無いけど
0467デフォルトの名無しさん
垢版 |
2018/04/09(月) 02:34:30.98ID:8Wv+Mi08
>>465
これってかなり前にも指摘したような気がするが...

まずはTEditをForm上に置いて実行時に
TEdit.TextにPChar(...)の...部分をそのまま代入してみな

それで問題なかったらMCIに送って
0468デフォルトの名無しさん
垢版 |
2018/04/09(月) 07:55:25.96ID:qLOACt12
>>466-467
レスどうもです。

>>465
以前FileListBoxで作ったときのものをそのままD&D時のパスを含むファイル名を渡しています。
>>467
TEditに代入しても動きません。途方に暮れています。
何年か選択したListBox ItemからMCIに渡す方法を探してますが、どうしてもわからないままでいます。

上に上げたロダはリロードするとファイルが落ちてくるようです。

お忙しいとこrとすみませんがよろしくお願いいたします。
0469デフォルトの名無しさん
垢版 |
2018/04/09(月) 08:07:09.81ID:3dFP9zTK
aliasの前に半角スペースがない
これじゃあMpegVideoAliasとか意味不明なtypeになる上にaliasが認識されないからMusicFileというaliasが未定義のまま渡される
0470デフォルトの名無しさん
垢版 |
2018/04/09(月) 08:11:51.43ID:3dFP9zTK
>>467さんが指摘してるのはTEditに入れて表示された文字列が正しいコマンドかどうかチェックしろって事であって、代入したら動くんじゃないって言ってるわけじゃない
0473デフォルトの名無しさん
垢版 |
2018/04/09(月) 15:48:10.00ID:qLOACt12
>>469
>>467さんの指摘を受けLabelに命令を代入しましたが、確かにおかしい命令を吐き出していました。
open ""type MEPGVideo alias MusicFile
こんな表示をしています。


>>471
FileName1自体はあっちこっちで参照するので、Private 宣言部で定義させています。
私個人の予想では、ListBoxからうまくファイルのPATHを含むファイル名がうまく取得できていないためではないかと考えているのですが…
0474デフォルトの名無しさん
垢版 |
2018/04/09(月) 15:52:07.60ID:3dFP9zTK
何が正しいのか正しくないのか、正しくないのは変数の中身なのかコードなのか渡し方かなのか、それとも別になにかなのかを探したら解決できる
正しいと思い込む前に確認する癖をつけましょう
0475デフォルトの名無しさん
垢版 |
2018/04/09(月) 18:30:51.81ID:BomKXXDR
>>473
>FileName1自体はあっちこっちで参照するので、Private 宣言部で定義させています。
あちこちで参照するってことは
procedure TForm1.FilesDropped(var Msg1: TWMDropFiles); で使われている FileName1:と
procedure TForm1.PlayBtnClick(Sender: TObject); で使われている FileName1: は同一のものということにしたいんだろ?
それぞれのプロシージャでFileName1: string;って宣言してたら「あちこちで参照する」ことは出来ないぞ

>Private 宣言部で定義させています。
とりあえずそれはそのまま、TForm1.FilesDropped()とTForm1.PlayBtnClick()の中で宣言しているFileName1: string;を消す
0476デフォルトの名無しさん
垢版 |
2018/04/09(月) 18:57:48.34ID:BomKXXDR
>>473
やっとソースDLできたw
ざっと見た限り

原因:
TForm1.FilesDropped()でFileName1 にファイル名を代入しているが、
この FileName1 はTForm1.FilesDropped()の中で宣言されているため
TForm1クラスのprivate部で宣言されたFileName1とは別物

対策:
TForm1.FilesDropped()の中で書かれている FileName1: string; という宣言を消す
そうすればTForm1クラスのprivate部で宣言されたFileName1に代入されることになり
TForm1.PlayBtnClick()で使われているFileName1と同じになる

原因:
>mciSendString(PChar('open"' + FileName1 + '"type MEPGVideo' + 'alias MusicFile'), nil, 0, 0);
いろいろ半角スペースが足りない、余分な文字列の連結

対策:
適宜スペースの追加、たぶん、こう?↓
mciSendString(PChar('open "' + FileName1 + '" type MEPGVideo alias MusicFile'), nil, 0, 0);

それと str : string; と LFileName: String; も重複して宣言されているので注意
strに関しては使用目的が分からんのでなんとも言えないけどLFileNameのような使い方をするのであれば
クラスでの宣言は消したほうが良いと思う(不必要にスコープ(参照できる範囲)を広げない)
FileName1にしてもクラス変数として使うのなら変数名を変えて分かりやすくしたほうがよいかと
xxxxx1とかxxxxx2なんてのは関数内の一時的な変数として宣言しがちだと思うので
0477デフォルトの名無しさん
垢版 |
2018/04/09(月) 19:52:13.89ID:gH9PL+mq
>>472
やっつけ仕事に見えますか…
これでも知恵絞って作ったものですので…。
いろいろのサイトで見つけたD&Dの使い方とかボリューム変更など90%位は流用しているため、
メソッドを記述している人がバラバラなので書き方に違和感を抱くこともあると思います。


アドバイスいただいた皆様ありがとうございました。
MCI諦めてSndPlaySound()を使うことで一応当初の目的は達成されました。

FileName1を掃除してSndPlaySoundのファイル名はFileName1を直接渡しました。
SndSoundPlayer()はmp3とかだめそうな気もするので、
MCIを直打ちしなければならないかもしれません。
0479デフォルトの名無しさん
垢版 |
2018/04/09(月) 22:09:32.86ID:qcsBHwDv
>>477
>いろいろのサイトで見つけたD&Dの使い方とかボリューム変更など90%位は流用しているため、
>メソッドを記述している人がバラバラなので書き方に違和感を抱くこともあると思います。

わからないなら参照して勉強するのもいいけど「流用」するだけじゃ何年経っても自分の物にはならないよ
ちゃんと使い方を理解して自分のコードに治さないと

そうすれば変数かぶったりするのも避けられる
あと変数は少々長くなってもあとで自分が見てわかるもっと意味のある名前にした方が読みやすくなるよ
0482デフォルトの名無しさん
垢版 |
2018/04/10(火) 07:46:44.60ID:M1dLQsHI
野球選手やサッカー選手に向いてるやつと向いてないやつがいるように
プログラマーにも向いてるやつと向いてないやつがいる
0484447
垢版 |
2018/04/10(火) 17:57:58.95ID:ixHiVr8M
>>480
シンプルで必要十分な情報がまとまっていました。

このスレにいる皆様は、今回のMCI問題を含むVCLの操作ではなく、
細かい文法事項などはどこで習得されたのでしょうか?

>>481
ずっとコンパイラーを使っていたのではなく、新しい攻略できたかもと散発的にいじってました。
本当に作りたいアプリがあるので、ご迷惑とは思っていますが、未だに食いついています。

リモコンで制御したいのと、巻き戻しがサポートされていれば、多分ここまでしつこくはなかったかもしれません。
0485デフォルトの名無しさん
垢版 |
2018/04/10(火) 20:26:01.63ID:n/L+8J/R
>>484
>このスレにいる皆様は、今回のMCI問題を含むVCLの操作ではなく、
>細かい文法事項などはどこで習得されたのでしょうか?

勘とノリと勢いとGoogle先生
0488デフォルトの名無しさん
垢版 |
2018/04/11(水) 07:06:25.31ID:Ma7OFF0j
リモコンって以前はMediaCenterが対応してたね

Delphiで今やるんだったら
TTethering使ってスマホから操作かな
0489デフォルトの名無しさん
垢版 |
2018/04/13(金) 00:04:40.08ID:QwQUx8hW
@pikさんて何者なの?

本当にすごい人なの?実力あるの?
なんか言ってることが胡散臭いんだけど
0491447
垢版 |
2018/04/18(水) 21:20:13.42ID:MII0lz02
すいません。教えてください
この前の続きです。

D&D(例えば9.wav)をしてListBoxにフォルダのファイル一覧が抽出・表示されますが、
D&Dしたときに9.wavをハイライトさせるにはどうしたらいいでしょうか?
ハイライトをさせないとMCIエラーが出てしまいます。

ファイルですが、
https://mega.nz/fm/KbRmkKiL
よろしくお願いいたします。
0492447
垢版 |
2018/04/19(木) 21:05:53.19ID:bgRnFwFv
現状でやりたいことは、送るで起動して音声ファイル(以下.wav)を再生させることです。

1.とりあえずアプリを起動させる
2..wavをD&Dでフォームに落とす
3.すかさずListBoxにカレントフォルダのファイルを列挙させる
4.D&Dで落とした.wavにハイライトさせる
5.自動的に.wavの再生開始

現在4でつまずいています。
.wavを送っても起動するだけで、ListBoxに反映されません。


ここがくクリアできれば拡張子連動も可能だと思いますが・
0493デフォルトの名無しさん
垢版 |
2018/04/21(土) 23:15:17.71ID:57zLglLu
>>491-492
ログインしなくちゃいけないみたいなので落としてないけど
「ハイライトさせる」ってファイルを選択状態にするってことね?
(プログラムする人間として質問するなら入門書なりを一冊通読してもう少し的確な言葉を憶えましょう)

ListBox.Selected[Index]:=True;(選択状態)
「9.wav」が例えば3番目ならIndexに「2」を入れます(ゼロスタートなので)
一番目のファイルなら「0」です

とりあえず試しておこうとDelphi5でやると範囲外エラーでますね
ListBox1.Selected[1]:=True;
これだけで

Delphi2009だと問題ないのに?(**)?
0496447
垢版 |
2018/04/25(水) 06:26:09.01ID:LyLCajq/
>>493
ハイライトではなく選択した(された)アイテムと表現すべきでした。

無事選択状態にすることができました。
別の問題で送るとD&Dが併用できない問題に苦慮しています。
(送るだとListBoxに反映されますがD&Dだと反映されない。)
おそらく列挙の問題だと思いますが、今困っています。

以前作ったソースがすべてHDDのクラッシュで消えてしまったため
どうしたらいいのかもわかっていません。

自分自身で調査をしますが、よいアドバイスいただければ幸いです。
不評でしたが、ロダを
ttps://www.axfc.net/u/3905770?key=delphi

皆さんはDelphiの知識はどうやって得られましたか?
コンパイラを使ったのが数年ぶりだとか、いいわけにはならないのですが
やりたいことができずに悶々としています。

例えば、プログラミングバイブルを読破するとスキルが得られたりするものなのでしょうか?
こちらもアドバイススをいただけますと幸いです。
0498デフォルトの名無しさん
垢版 |
2018/04/25(水) 10:12:58.53ID:KojXazHw
アドバイスも何も....

D&Dで取得したファイル名を
そのメソッド内でのみ有効なローカル変数に代入して終わりなの?

変数のスコープを理解してないのかな

てか、いろんなサンプルを参照して利用してるが
意味も分からずやってるでしょ

他人のコードを利用するなら
まずそのコードを理解しようと努めないと
永久に進歩はないね
0499デフォルトの名無しさん
垢版 |
2018/04/25(水) 10:43:12.40ID:8p1Sd4ST
>>496
>(送るだとListBoxに反映されますがD&Dだと反映されない。)

D&Dを受け取る WMDropFiles 内にListBoxに反映させるコードが無いんだから反映されるわけが無い
0501447
垢版 |
2018/05/05(土) 11:10:08.17ID:pQ8nw+O2
ListBoxへの反映の仕方が分かったので対処ができました。
ですが、曲名を集中管理している変数にLtstBoxのアイテムを代入しようとする
StringtoTstringに互換性がありませんと表示され、他の曲への反映ができません。
聞くところによれば、ポインタの知識とオブジェクトへの深い理解が必要だと聞きました。
コメントをいただければと思いいます。
https://www.axfc.net/u/3908351?key=delphi

本当にポインターの知識が必要ならアプリを作るのには時期尚早なのかもしれません。
よろしくお願いいたします。
0502デフォルトの名無しさん
垢版 |
2018/05/05(土) 13:26:16.48ID:vbsrC7NJ
こんな文字列処理メインのコードにポインタの出番はないでしょう

ListBoxの選択項目を取り出すのは、あなたが>>464に書いている通り

問題はListBoxに追加した項目が保持してる内容
ファイル名? パス付き?

あと老爺心で言うんだけど、メインの部分がまったく機能してないのに
サブの部分を追加してるのはどうかと

全体の見通しが悪くなるだけだよ

ドラッグ&ドロップと音量関係のルーチンのない状態で
ListBoxの内容を完璧に再生できるように
新規プロジェクトから始めたほうがいいよ
0505447
垢版 |
2018/05/23(水) 05:43:33.84ID:IzxjocGr
TString型からString型へのキャストはどうしたら良いのでしょうか?

ずっとここで詰まっています。
コンパイラにはString型とTString型には互換性がないと怒られ
Listbox.item.text
みたいな感じにするとString型へ文字列が渡せません。
色々ネットで調べてみましたが、何か今ひとつ分からないままでいます。
0506447
垢版 |
2018/05/23(水) 07:25:01.52ID:IzxjocGr
上の質問はスルーしてください
0508デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:31:59.75ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

401Z3
0510447
垢版 |
2018/05/24(木) 07:41:50.56ID:Xlbr0a9V
>>507
本当は分かっていません。
ただ、もう少し試行錯誤が必要だと判断しました。
TstringからStringに渡すのはそんなに難しいとは思えないのですが……。

>>509
コンパイラをいじっている時間があまりなくて
今回も数年ぶりに(昔このスレで正月に作ったメディアプレイヤー)触ってますので
進歩してなくて、さっぱり分からないことが相変わらず多いです。
0511デフォルトの名無しさん
垢版 |
2018/05/24(木) 07:51:45.33ID:UDepo1QV
>>510
値、配列、値のリストという概念があるとして stringはどれで Tstringはどれにあたるか分かる?
0513デフォルトの名無しさん
垢版 |
2018/05/24(木) 09:47:02.42ID:1QuFgEhD
>>510
あのな、良いこと教えてやる

一番薄い「言語ガイド」というマニュアルがあるからそれ読め
最初の1ページ目から最後のページまで全部読め
判らなくても良い、難しくても良い、とにかく1冊全部読め

読み終えた次の日から、きっと新しい世界が見えるはず
読まなきゃお前さん、一生そのままだぞ
0515デフォルトの名無しさん
垢版 |
2018/05/24(木) 17:31:30.64ID:Pn5Zd5T4
>>510
名前が似ていても型が違うなら別物として考える
別物でも異なる型への変換方法が明示的に設定されていれば容易に渡すことが出来る
TStrings と String は別物
じゃあTStrings から String に明示的な変換方法が設定されているのか?を調べれば解決する
ヘルプを起動しTStringsと入力しろ
そして戻り値がStringになっているメソッドを探せ

どうでもいいことなんだが名前欄に自分のレス番号を入れるのは現在進行している質問の最初のレス番号を入れるべきだと思うんだ
今回のケースなら447ではなく505だな
そうすることで主題となる質問を見ることが出来て、また辿ることが出来る
0516デフォルトの名無しさん
垢版 |
2018/05/24(木) 18:32:52.16ID:Pmzmf4Ca
普通に教えてやりゃいいじゃんか
sがついてるからstringが複数扱えるクラスなんだろ?
男のくせにチマチマ、ネチネチ、そりゃお前らは一生結婚できねぇわw
0519デフォルトの名無しさん
垢版 |
2018/05/24(木) 20:03:35.81ID:hm+d4/Zn
はいはい
まあ聞きまくるやつにも問題はありそうだが、
狭い世界のちんこい知識でどんだけ上から目線なんだろね
0520デフォルトの名無しさん
垢版 |
2018/05/24(木) 20:16:15.75ID:Pn5Zd5T4
あー
そんなことを書くぐらいなら510に教えてあげればいいんじゃないの?
しょせん目くそ鼻くそなのに、ずいぶんと上から目線だねw
0521510
垢版 |
2018/05/26(土) 04:35:23.77ID:4prcmauu
>>513
昔言語ガイド印刷してたのを忘れていました。
今読むと昔は分からなかったことが分かるようになってきました。
プロジェクトを作る前に最後まで読んでみます。

>>516
そう複数なんですよね!だからListBoxでindexで数字でターゲットを選べると言うことに気がつきました。
読みにくい文で済みません。

>>515
TStringで検索かけたところ膨大な数のメソッドが出てきて
悩んでいます。
まずは大事なことがたくさん書いてある言語ガイドをよく読んでから理解してから
再チャレンジします。

レスしてくれた皆様ありがとうございました。
0523510
垢版 |
2018/05/27(日) 06:51:35.56ID:6aP994kT
>522
TStrings ですね。
複数のStringを束ねられるのでindexの数字で必要なオブジェクト(!?)を選択できるのですね。
今はプロジェクトを中断して言語ガイドを熟読しています。
今までで分からなかったことがしっかり書いてあるので
安易に入門書を読む前にこっちを読むべきでした。
0524デフォルトの名無しさん
垢版 |
2018/05/27(日) 18:56:00.45ID:tt6kkd8K
初心者にはDelphi6あたりのHelpがいいんだけどな
最近のHelpは不親切で、基本がわかっていない初心者には使いづらいだろうなと思う
0525デフォルトの名無しさん
垢版 |
2018/05/29(火) 12:30:34.30ID:1O3tJEYz
頑張れ‼??誰でも最初はなんも知らんからね
ちゃんと覚えていろんなもん作れるようになってね
0527510
垢版 |
2018/05/30(水) 07:03:11.11ID:2jnt+z5e
>>524
Delphi6買っとけば良かったなと思っていたら、初心者の入門書に収録されていました。
早速インストールしてみます。
ですが、皆様はシステムライブラリのヘルプを見て手続きや関数などを覚えたのでしょうか?

>>526
職業はコンピューター関係でなく、時間が空かないとコンパイラを使うのも
厳しいために今回は5年ぶりくらいにコンパイラーいじっていますので
最初になってしまいます。

普通こんだけ叩かれたらプログラミングを諦めてしまうと思いますが、
双六ゲームがどうしても作りたいのでかじりついて離れずにいます。
0528デフォルトの名無しさん
垢版 |
2018/05/30(水) 10:34:14.77ID:1AWKUtm2
>>527
叩かれるのはどれだけ親切丁寧に説明しても同じ場所を延々ぐるぐる回り続けてるからだよ
0529デフォルトの名無しさん
垢版 |
2018/05/30(水) 14:51:11.60ID:240M2quP
ほんそれ
話聴かない奴は叩かれる
0530デフォルトの名無しさん
垢版 |
2018/05/30(水) 17:57:51.44ID:QhoQOR8g
>>527

>Delphi6買っとけば良かったなと思っていたら、初心者の入門書に収録されていました。

本の名前教えて。
俺もDelphiのHELP欲しい。
0533デフォルトの名無しさん
垢版 |
2018/05/31(木) 00:53:55.84ID:Rz8G1qx4
このアップデートファイルは、Delphi 6 のライセンスユーザー向けに提供されるものです。
このファイルの使用に関しては、製品に同梱されたソフトウェアご使用条件に準じます。
0535デフォルトの名無しさん
垢版 |
2018/05/31(木) 02:41:36.75ID:LeDqx/cu
>>533
アップデートファイルを単独で使用するなってこと?

そもそもdelphi 6 personalってフリーなんだから
その程度はいいんじゃない?
0537デフォルトの名無しさん
垢版 |
2018/05/31(木) 15:12:07.71ID:LXR1oL3d
オマエモナ
0540510
垢版 |
2018/06/01(金) 04:16:23.59ID:5fSTAWJb
>>531
MCIいじってますよ。
ただ今は、TStringsと戦ってます。

>>528
そうですね。
理解が追いついていかない。ふがいないなぁ。
0543デフォルトの名無しさん
垢版 |
2018/06/01(金) 12:06:09.39ID:JGYXEwwz
結局
>今回は5年ぶりくらいにコンパイラーいじっていますので
5年ぶりとかやる気ないだけだから教えるだけ無駄。
0544デフォルトの名無しさん
垢版 |
2018/06/01(金) 12:13:27.24ID:VRiSWYxK
てか5年ぶりじゃないだろ
去年の夏も散々質問してたし
その1、2年前も来てたし

思うに、やるときは集中的にやって初心者脱出しないと
永遠に初心者のままだろ
0545デフォルトの名無しさん
垢版 |
2018/06/05(火) 19:54:37.86ID:FLappK2N
直そう直そうと思っている毎日使っている自作ソフト、最後にビルドしてからまもなく10年になるわぁ
0547デフォルトの名無しさん
垢版 |
2018/06/06(水) 10:45:41.05ID:I9hgDbEz
痴呆が始まってるな
0548デフォルトの名無しさん
垢版 |
2018/06/07(木) 09:31:17.03ID:jM1yTm2r
Delphiに直結する話題じゃないけど
ちょっとお知恵を貸してください

公開してるDelphiで作ったツールがあるんですが
ツール内にサポート用の掲示板みたいなのを実装したい

方法としてどんなのが考えられる?

やっぱ最低でもcgi使えるサーバとか必要?
0549デフォルトの名無しさん
垢版 |
2018/06/07(木) 10:03:50.30ID:kW6Y240R
>>548
1.適当に掲示板スクリプトを設置してTWebBrowserで表示

2.BaaS使ってRESTでやり取り

3.SQLにFireDACで直接接続

4.WindowsVPS(Linuxに吐けるならLinuxでも可)でDataSnap

好きなのをどうぞ
0550デフォルトの名無しさん
垢版 |
2018/06/07(木) 17:01:17.95ID:LERUY47Q
>>548
まあ書き込みを送信する場所と書き込まれたものをダウンロードできる場所は必要だろう
サーバ借りなくても個人が固定IP契約しているならそのIP宛にすることも出来るし
固定じゃなくてもダイナミックDNS使えるルータとか使っているならそれを利用するのも手
適当なレンタルサーバでも月2000円も掛からないからそういうの使うのがベストだけど

というかしたらばあたりにスレ立ててそこを表示するようにするのはどう?
5chと違ってAPIいらんし
0552548
垢版 |
2018/06/08(金) 20:17:07.49ID:pOKoirVi
レスが遅くなりました

やっぱそんな感じですよね
配布サイトはcgi使えないのでレンタルサーバか自宅サーバですよね
したらばはスクレイピングが可能だったらいいかも

あとは、データは配布サイトに置いて投稿はメール経由かな
0554548
垢版 |
2018/06/08(金) 22:45:08.12ID:pOKoirVi
よく考えたら、したらばはスクレイピング不要で
旧2ちゃんと同じでdatファイルを直接ダウンロードできるんでしたよね

したらばにしようと思います


p2pは理想だけど、開発側も利用者側も障害が大きすぎるような
0555デフォルトの名無しさん
垢版 |
2018/06/09(土) 16:37:47.65ID:OTGz0P8v
delphi10.2を使っています。
ActiveXのコンポーネントを追加するのにdclusr.dpkをあらかじめインストールしようとしても
dclusr.dpkが正しくないとかのエラーが出てしまいます。
dclusr.dpkって他のPCに入っている同バージョンのものをコピーしてもいいものでしょうか?
0557555
垢版 |
2018/06/10(日) 06:13:38.25ID:5M4DtSyO
確認してみます。
コピーしようとしたpcはすんなり出来たので管理者とか気にしてませんでした。
ありがとうございます。
0558デフォルトの名無しさん
垢版 |
2018/06/14(木) 03:02:30.74ID:DH9ZUtSo
めっちゃ便利になった

sc7b & i:: ; Ctrl+無変換+iでbeginを上方検索
ImeOff()
if GetKeyState("Ctrl", "P")
{
send,^k8
send,^qfbegin{enter}
send,^q8
send,^+l
send,{home}
}
else
send,{up}
return

sc7b & k:: ; Ctrl+無変換+kでendを下方検索
ImeOff()
if GetKeyState("Ctrl", "P")
{
send,^qfend{enter}
send,{left}{right}
}
else
send,{down}
return
0559デフォルトの名無しさん
垢版 |
2018/06/18(月) 18:42:12.53ID:77QANGdm
Indyのヘルプについて教えてください

delphi 10.2.3を使っていて、IndyのIdCookieを使うのにヘルプを見たんですが
どうも自動補完される項目とヘルプの内容が一致していないみたいです

事実、古いネット上のサンプルでもpropertyなどが認識できないと
エラーが出るんですが、ヘルプにはちゃんと記載されています

もしかして、ヘルプの内容がかなり古い?
0562548
垢版 |
2018/06/18(月) 23:30:03.81ID:77QANGdm
>>560
ありがとう
早速ダウンロードしてみます
0563デフォルトの名無しさん
垢版 |
2018/06/19(火) 07:23:03.75ID:O7MJlrFZ
Delphi 10.2.3に付属しているIndyのヘルプのバージョン 10.1.5
>>560に書いてあるところにあるやつは 10.5.8.3だね

10.1.5のヘルプは、実際にバンドルされているIndyとではいろいろと
違っている部分があるんで使えないんだよね
エンバカはよくこんな状態で製品として出してるもんだと思う
まぁIndyの公式Webページにあるヘルプが更新されずに放置状態なせいでもあるんだろうけど
0564デフォルトの名無しさん
垢版 |
2018/06/26(火) 00:47:37.41ID:6Sxd5pS5
OutputDebugString(v: TValue);
みたいなのを作りたいんですが
vが配列だろうがレコードだろうがクラスだろうが文字列化するサンプルコードがあったら教えてください
0565デフォルトの名無しさん
垢版 |
2018/06/26(火) 00:50:21.65ID:6Sxd5pS5
バージョンはXE8でお願いします
0567デフォルトの名無しさん
垢版 |
2018/06/27(水) 08:33:51.96ID:LwNwDPPb
case VarType(バリアント型) of
varNull: 〜;
varSmallint,varInteger,varshortint,varByte,
varword,varlongword,varint64,varqword: 〜;
varSingle,varDouble,vardecimal: 〜;
varBoolean: 〜;
varArray: 〜
else 〜
end;

みたいなのはどうか
0568デフォルトの名無しさん
垢版 |
2018/06/30(土) 19:57:18.53ID:BMGfbdyk
fmxのlistviewで遊んでんだけど
各Itemの高さがvariableだと
ScrollToが正しく機能しないな

てか希望する行にプログラムでジャンプできない
これって...
0569568
垢版 |
2018/07/01(日) 20:45:39.22ID:UjvaLsGV
昨日からずっと悩んでたんだけど原因が分かった
Itemを追加した直後にScrollToを実行していたのがマズかった

というのも個々のItemの高さの計算をUpdateObjects
イベントで行っているので、いったんシステムに制御を戻して
すべてのItemの高さを計算させた後でないと
ScrollToを正確にできないじゃないかと
0570デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:07:10.80ID:gFgZc5FG
CMY
0572デフォルトの名無しさん
垢版 |
2018/07/07(土) 01:05:29.30ID:/e+lZ8Kj
        lヽ ノ l        l l l ヽ   ヽ
  )'ーーノ(  | |  | 、      / l| l ハヽ  |ー‐''"l
 / C  | | |/| ハ  / / ,/ /|ノ /l / l l l| l  C ヽ
 l   ・  i´ | ヽ、| |r|| | //--‐'"   `'メ、_lノ| /  ・  /
 |  M  l  トー-トヽ| |ノ ''"´`   rー-/// |  M |
 |  ・   |/     | l ||、 ''"""  j ""''/ | |ヽl  ・ |
 |  Y   |       | l | ヽ,   ―   / | | l  Y  |
 |   !!  |     / | | |   ` ー-‐ ' ´|| ,ノ| | |  !! |
ノー‐---、,|    / │l、l         |レ' ,ノノ ノハ、_ノヽ
 /        / ノ⌒ヾ、  ヽ    ノハ,      |
,/      ,イーf'´ /´  \ | ,/´ |ヽl      |
     /-ト、| ┼―- 、_ヽメr' , -=l''"ハ    |  l
   ,/   | ヽ  \  _,ノーf' ´  ノノ  ヽ   | |
、_    _ ‐''l  `ー‐―''" ⌒'ー--‐'´`ヽ、_   _,ノ ノ
   ̄ ̄   |           /       ̄
0573デフォルトの名無しさん
垢版 |
2018/07/11(水) 10:51:05.84ID:nmWNYHAt
炎猿でwindows以外のOSアプリ開発している人にお聞きしたいのですが、スマフォとかがアップデートされた場合動かなくなるとか、デバッグ出来なくなるとか不都合はないですか?
0575デフォルトの名無しさん
垢版 |
2018/07/11(水) 21:49:54.77ID:r5yaKwaw
まぁそんな致命的そうな問題あるなら既に話題になってるだろう。それぐらいの信仰心ないならエンバカ製品使わない方がいい。
0579デフォルトの名無しさん
垢版 |
2018/07/13(金) 19:21:29.08ID:I/E3+gDF
OpenGLから、Vulkanに移り行きそうな流れだし、Androidもサポートしてるから、安泰とは言えないかも・・・。
0580510
垢版 |
2018/07/15(日) 07:23:54.92ID:DmBJj22K
以前作ってたメディアプレイヤーですが、あるていどは出来上がったのでご評価いただければと思います。

https://www.axfc.net/u/3921358?key=delphi

今のところ.wav限定です。

既知の不具合
notfyを自前で無理矢理作っていて機能していない
トラックバーで自由にスライダーが動かせない(経過時間の方)

よろしくお願いいたします。
0581510
垢版 |
2018/07/15(日) 07:24:30.45ID:DmBJj22K
以前作ってたメディアプレイヤーですが、あるていどは出来上がったのでご評価いただければと思います。

https://www.axfc.net/u/3921358?key=delphi

今のところ.wav限定です。

既知の不具合
notfyを自前で無理矢理作っていて機能していない
トラックバーで自由にスライダーが動かせない(経過時間の方)

よろしくお願いいたします。
0582デフォルトの名無しさん
垢版 |
2018/07/17(火) 12:02:31.20ID:XXadd0Qe
D6です。
既存の .dll を調べて exports 関数の受け渡しの型やパラメータを知るやり方はありますか?

昔の物で ナビンユーというパソコン用ナビソフトがあって、
それ用に市販GPSレシーバーと繋ぐ .dll を過去有志により幾つか作られてフリー公開されていました。
当時はWin95-98全盛からWin2k〜xp以降期ほどで
COM ポートが1〜6番?まで ボーレートも9600bpsまでというOS?の制約を引きずってさらに 4800bps固定のTokyo測地系(日本ローカル)という物で
ニフティサーブも終わり多くのフリーツールと共に作者さん達も消えていきました。

年数が過ぎ、性能も良く価格もお手ごろ感なGPSロガー兼GPSレシーバーが巷に溢れると
今度は通信速度が9600bpsが最低クラス機種、良い物は 38400bps や 57600bps で WGS84測地系(世界基準) なんてものでして
それらを使うには、
D7環境用で公開されていた TComPort という COM 1〜256 ポート番号、300〜256000bps までのフリー物があり入れて
自作の高速COMポート←→低速COMポート受け渡し&測地系座標変換プログラム と 仮想COMポートを使ってました。
接続がそうとう手間で使用はお蔵入りに・・・。
最近になって dll の作成を思い立ち
要は、TComPort を使って自作の .dll が作れないものかと

.dll の exports 関数名に関しては、ResHacker というフリーツールで
GpsdevClose
GpsdevGetSupportedDevice
GpsdevOpen
GpsdevSetGeodeticSystem
GpsdevSetInitialPosition
この5つということは確定しています。
適当な型で宣言してコンパイルしてダンプリストで比較してみましたが分らず・・。

一応入手していた公開最終版の.dllを2種類zip圧縮でUPしておきます。
ttp://www1.axfc.net/u/3921897.zip
KNLink の方はDelphiで作られているそうです。
誰か型が分れば他の有志が開発しやすい用に晒してくださるとありがたいです。
0586デフォルトの名無しさん
垢版 |
2018/07/19(木) 07:44:26.16ID:tvMjHs4f
>>585
thx
出来ました
0587デフォルトの名無しさん
垢版 |
2018/07/23(月) 12:35:10.41ID:TMDKKbFQ
firemonkeyでWindowsとAndroidアプリを作るとき
SpeedButton用の画像のサイズって
どのくらいにすればいいの?

StyleLookupにないんでGoogleのフリーアイコンを
使おうと思ってるんだが
0588582
垢版 |
2018/07/23(月) 19:47:13.97ID:ZNsXOfsj
Dependency Walker
ttps://www.off-soft.net/ja/software/develop2/depens.html

Visual Studio 付属 dumpbin
というのでも関数名だけしかワカンネ

ILSpy_Master_2.3.0.1827_Binaries 起動できない。
Visual Studio 付属 Ildasm もダメっぽい。

暑くてなーんも進まない
0590デフォルトの名無しさん
垢版 |
2018/08/04(土) 10:03:56.88ID:pEPpCry/
質問です。
他言語の計算式が解らず置き換える場合のデルファイ式はどういう構成になるのでしょうか?
えぬじーだらけで書き込めないのでソース含んだテキストのアプロダアドレスは以下に書いています。
https://agree.5ch.net/test/read.cgi/mango/1532726276/389

ひっかかりだらけで掲示板が使いにくくなってますね。
マンゴー板絞り込みスレを経由すれば書けるということだね
0592デフォルトの名無しさん
垢版 |
2018/08/05(日) 07:22:17.73ID:lCE2SUhO
今見てみたけど4バイトの浮動小数点数と各バイトの相互変換だよな

共用体使えば式は不要だと思う
可変長レコード(だっけ?)で検索
0593デフォルトの名無しさん
垢版 |
2018/08/05(日) 07:39:19.78ID:33CDKMsR
Delphiで書けないんだったら、日本語で何がしたいのか書けよ。
Perl語なんて俺は知らんから。

f: single;
f := StrToInt( '$'+ '4D' );

で, fに77が入る。
int -> sigle は暗黙の型変換でいけるが逆は要関数呼び出し(キャスト禁止)。
0595427です
垢版 |
2018/08/05(日) 22:33:28.02ID:gWGunr7x
>>592
どうやら>590 先のサブルーチンはズラして60進法座標にしてるだけのようです。
バイナリ読み込んで浮動小数点数にするパールの変換方式がまださっぱり分りませんが、適当にがんばります。
Delphi の Single 〜 Extended とか浮動小数点数を16進バイナリに直接相互変換みたいな内部関数ってありましたっけ?
現状D7でIEEE754-SingleとDouble は外部関数で使っていてそれだけでかなりサイズが大きくなってしまう。

 浮動小数点型の数値はメモリ上でどのように格納されているのか C C++
 2. 浮動小数点型の値のメモリ上での並び
 ttps://qiita.com/nia_tn1012/items/340a1f0ad71bf6085f7f
 元の値 : 1.024000
 内部表現の値 : 3F83126F
    ↑
この例では、IEEE754-Single でした。

>>593
IEEE754 単精度浮動小数点数(float)の文字列とかいろいろ入れても
ただの整数になるようですが?

var
f: Single;
begin
Edit_Single.Clear;
if (Edit_IEEE754_HexSingle.Text <> '') and (StrToIntdef('$' + Edit_IEEE754_HexSingle.Text,-1) <> -1) then
f := StrToInt( '$'+ Edit_IEEE754_HexSingle.Text );
Edit_Single.Text := FloatToStr(f);
end else Edit_Single.Text := '入力エラー';
end;
0596590 です
垢版 |
2018/08/05(日) 22:36:47.70ID:gWGunr7x
>595
パールスレでの名前欄 「427です」 がそのまま入ってしまいました。
>>590 です
0598デフォルトの名無しさん
垢版 |
2018/08/27(月) 21:32:59.26ID:1pvUgZqM
超初心者スレだから許して のしつもんです。
Win10の開発は初めてです。
昔で言う .ini なんかはどこに置くのが基本ですか?
レジストリ使わない場合・・。
publicには Appdata とかないみたいだし。

Pathの 記述とか??
今でも TIniFile とか使いますか?
0601デフォルトの名無しさん
垢版 |
2018/08/27(月) 23:33:36.63ID:1pvUgZqM
回答有り難うございます。
とっても参考になりました。

ユーザー別なら %appdata%\appname\
ユーザー共通なら %ProgramData%\appname\

って感じで 良いみたいですね。
0603デフォルトの名無しさん
垢版 |
2018/08/28(火) 16:21:16.43ID:6kEMX7h9
iniファイル便利か
0606デフォルトの名無しさん
垢版 |
2018/08/28(火) 20:53:25.15ID:yUJd0FCJ
「プロジェクトから削除」で削除したunit2,unit3って結局生きてる?
unit1で参照してるからコンパイルしたらエラーが出ると思ったら何も出なかった。
プロジェクトの削除ってどう言うこと?
0607デフォルトの名無しさん
垢版 |
2018/08/28(火) 21:09:44.56ID:dFKNKLFU
そもそも
システムと連携でもしない限り
レジストリ使う必要が無いと思うんだが
自動的に何も考えずにレジストリ使ってるのが多いと思う
0609606
垢版 |
2018/08/28(火) 22:07:01.20ID:yUJd0FCJ
>>608
有難う
0610デフォルトの名無しさん
垢版 |
2018/08/29(水) 07:06:43.69ID:0P3/EBfJ
(アン)インストーラが付属しないツールで
設定をレジトリとかexeフォルダ以外のフォルダに保存したりとか
何考えてるのか分からないのもあるからな
0611デフォルトの名無しさん
垢版 |
2018/08/29(水) 19:36:02.35ID:2f70+wG1
>>598 >>601
Win8.1以降でiniファイルは取り扱いが難儀になったので
TIniFileでも拡張子を別のものにすると素直に使える。
例えば .env とか
.ini でトラブルになる挙動としては
管理者権限でプログラムを動かすとiniは書き出せるけどD&Dできなかったり
ユーザー権限で動かすとiniが書き込み変更できなくてエラーになったりする。
0613デフォルトの名無しさん
垢版 |
2018/08/30(木) 10:16:05.96ID:S/vwwZyF
>>611
virtualstoreに入ってしまったものを
間違って元のディレクトリ名で見に行くと

「書き込み変更できなくてエラーになったり」

するね
0614611
垢版 |
2018/08/30(木) 16:00:49.78ID:xpekrfIC
>>613 >>598
こんな感じでやってます。
env : 「environment 環境」の略を当ててます。

procedure TForm1.SaveSettings;
var
Log_IniFile: TIniFile;
ia : Integer;
begin
Log_IniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.env')); // .env ← .ini
try
// [window]
Log_IniFile.WriteString('window', 'x0', IntToStr(Form1.Left));
Log_IniFile.WriteString('window', 'y0', IntToStr(Form1.Top));
// [〜〜]
finally
Log_IniFile.Free;
end;
end;
0617デフォルトの名無しさん
垢版 |
2018/08/30(木) 18:00:59.87ID:RB/Vojpj
>>616
ほんそれ
0618デフォルトの名無しさん
垢版 |
2018/09/04(火) 04:53:47.13ID:cIgTW3mD
スレッドオブジェクトで外部機器と通信するコンポーネント(自分で取り込んだactivexです)を使いたいのですが、
フォームがないのでcreateの引数って何にしたら良いでしょうか?
サブのフォームをvisible:= falseにして、そこに配置した方が良いでしょうか?
0621デフォルトの名無しさん
垢版 |
2018/09/06(木) 20:32:48.73ID:b7skbySG
十数年ぶりにコード書いてます。

Delphi7 のソースを XE3 で書き直そうとしてますが ???です。
XE3は 買ったきり手つかずだったものを初めて使ってます。

ShortDateFormat、LongDateFormat、ShortDayNames が未定義の識別子エラーとなります。

uses には SysUtils が有ります。
どんな原因が有り得ますでしょうか?

挫けそうですw
0622デフォルトの名無しさん
垢版 |
2018/09/06(木) 20:59:54.36ID:Y0pbPBaL
単純な変数から変更されているので、
FormatSettings.ShortDateFormat
のようにしてみてくだされ。
0623デフォルトの名無しさん
垢版 |
2018/09/06(木) 21:14:09.34ID:b7skbySG
速攻でスゲー! 解決しました!

HELP の ”親” ってのを 見なきゃイケなかったのね
有り難うございます。

それにしてもHELP が いちいちHTMLソースが表示されて
”制限されたコンテンツの表示” ってクリックしなきゃなのは しんどい・・・
0624618
垢版 |
2018/09/07(金) 13:31:35.10ID:nbZaHp3Y
618です。
マルチスレッドで自分で取り込んだActiveXコントロールを使えるようにはなったのですが
不定期にEAccess Violationが出るので調べたら、このコントロールはSTA モデルとなっていました。
自分にはActiveXの知識があまりなくマルチスレッドで使用するにはCOM 関数のCoMarshalInterThreadInterfaceInStream,
CoGetInterfaceAndReleaseStream を使うのかな?ということまではわかりました。
ただ、参考にしたサイトには「インタフェースポインタを他のアパートメントに渡す場合,インタフェースポインタをマーシャリング
する必要があります。」と書いてありましたが理解できていません。
多分、各スレッドでCreateするのではなく1つのコントロールを各スレッドで使い回すのかなと思っています。
Delphiではどうするのか、とっかかりだけでも教えてください。
よろしくお願いします。
0626デフォルトの名無しさん
垢版 |
2018/09/08(土) 12:26:23.76ID:3pZBr9hd
そのまんまでしょうに。アパートメントをまたぐ場合はマーシャリングしなきゃいけない。
http://eternalwindows.jp/com/apartment/apartment02.html
で、CoMarshalInterThreadInterfaceInStreamでIStreamのバイトストリームに変換する。
で、そのストリームをアパートメントの異なる別スレッドに渡してそこでバイトストリームから元のオブジェクトに戻す。

コントロールのスレッドモデルより、各スレッドをどう初期化しかかがまず重要。
Comを使うときは各スレッドでCoInitialize(Ex)を呼ばなきゃいけんが、それでスレッドのアパートメントを指定する。

https://docs.microsoft.com/en-us/windows/desktop/com/processes--threads--and-apartments
読めば書いてある
0627デフォルトの名無しさん
垢版 |
2018/09/08(土) 18:32:14.22ID:ifS5zDmq
>>597
未だに見つけられていない

DeDe 3.50.02 Build 1619 for Windows
ttp://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/DeDe.shtml

Delphi製のバイナリを解析する方法
ttp://peryaudo.hatenablog.com/entry/20110105/1294209734
>DeDeのprojectタブを使うと、
>ディスアセンブルされたx86のコードをコメントでくくっただけのpasとデコンパイルされたdfmをファイルに落とせる。

x86コードを直接見てもワケワカメ
0628デフォルトの名無しさん
垢版 |
2018/09/13(木) 10:48:16.02ID:TILqF4on
FireMonkeyのStringGridでマウスカーソル直下のセルの特定の仕方を教えてください。
マウスの座標は取得できています。
よろしくお願いします。
0630628
垢版 |
2018/09/14(金) 00:13:42.04ID:h30gDWV5
ありがとうございました。
一応は取得できるのですが、セル内のマウスカーソルの場所によって、セルが特定できたり
できなかったりという感じです。
また、列の位置は左端なら本来は0だと思うのですが1が返ってきます。
行は先頭行が16と返ってきます。
MousePos := Screen.MousePos;
StringGrid1.CellByPoint(MousePos.X,dMousePos.Y,ColNo,RowNo);
上記のようなプログラムですが、マウスの位置の取得方法が間違っているのでしょうか?
0633デフォルトの名無しさん
垢版 |
2018/09/14(金) 12:20:56.93ID:rsfS0hy3
>>630
>MousePos := Screen.MousePos;
この段階でマウス座標はスクリーン座標(スクリーンの左上を起点とする座標)なので
クライアント座標(この場合、StringGrid1の左上を起点とする座標に変換しないとダメだよ
VCLならStringGridにScreenToClientというメソッドがあるんだけど
FireMonkeyのことはよく知らんけど似たような(もしくは同名の)メソッドがあるんじゃないかな
0634デフォルトの名無しさん
垢版 |
2018/09/14(金) 19:36:31.47ID:KQxf0S5x
てかコントロール上のマウス位置から何なしようってときに
スクリーン座標が出てくる訳が分からない
0635628
垢版 |
2018/09/14(金) 20:55:44.40ID:QxWxbdYR
皆さん、ありがとうございます。
まだ、解決できていないのですがまずはお礼まで。
ローカル座標はScreenToClientと同じ名前のものがあったので使ってみたのですが
うまくいきませんでした。
VCLの方だときちんとカーソル下のセルを正確に取得できるのに。
FireMonkey難しい。
0636デフォルトの名無しさん
垢版 |
2018/09/14(金) 21:57:04.38ID:KQxf0S5x
こんなんじゃだめなの?
TForm1 = class(TForm)
private
{ private 宣言 }
procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single);

implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.OnMouseMove := StringGrid1MouseMove;
end;

procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single);
var ACol, ARow: integer;
begin
if StringGrid1.CellByPoint(X, Y, ACol, ARow) then
Edit1.Text := Format('Col:%d, Row:%d', [ACol, ARow]);
end;

カーソル下のセルを正確に取得できてるよ
0637デフォルトの名無しさん
垢版 |
2018/09/14(金) 23:50:03.06ID:QxWxbdYR
>>636
ありがとうございます。
やりたいことができました。
>>631
ヒントもらっていたのに申し訳ありません。

あくまでもコントロール上の座標を取らないといけないということですね。
ScreenToClientはアプリのウィンド上の座標と言うことで良いでしょうか?
0638デフォルトの名無しさん
垢版 |
2018/09/15(土) 00:17:48.45ID:8rxpHkWL
なんで未だにデルファイなんかやっとるんやおまいら?
0641デフォルトの名無しさん
垢版 |
2018/09/15(土) 11:07:16.52ID:AVfR6YnT
Delphiは討たれる
0643デフォルトの名無しさん
垢版 |
2018/09/16(日) 10:48:44.14ID:e3KaLVno
SKRegExpの作者はどこに行ったの?
0644デフォルトの名無しさん
垢版 |
2018/09/26(水) 11:44:44.46ID:Ov2EA3Ui
今頃デルファイの10.2.3をインストールしようと思うんですが、サイトに書いてあるように一旦10.2をアンインストールしないとまずいですか?
一旦アンインストールした場合サードパーティーのコンポーネントはやはり再インストールしないとダメですか?
10.2.3をインストールしたら復活するとかは無いですかね?
0645デフォルトの名無しさん
垢版 |
2018/09/26(水) 13:25:05.76ID:WoZunzir
>>644
別のプログラムとしてインストールされるからTokyo用のコンポーネントは再インストール必須
別に10.2を残してても共存はできる
0648デフォルトの名無しさん
垢版 |
2018/09/26(水) 19:21:31.24ID:ANIjlW8h
BerlinとTokyoは共存できるけどToky同士は共存できなかったはず
10.2から10.2.3は設定データなどを残してアンインストール、インストールで普通に移行できたよ
CDイメージからのインストールの場合だけどね

Webインストールの場合はそれができないんだったっけ
0649デフォルトの名無しさん
垢版 |
2018/09/26(水) 19:58:22.59ID:V9O91uO9
サードパーティのコントロールが消えるのが嫌でアンインストールせずやってしまった。orz
0650デフォルトの名無しさん
垢版 |
2018/09/28(金) 08:42:20.23ID:CK9JalNS
ツールパレットにはコンポーネントのアイコンがきちんと表示されているんだけど、フォームに配置するとアイコンが見えない位小さくなってしまうんだけどなんで?
0651デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:27:10.70ID:L/CPkr5D
>>650
老眼かい?
他人にはあんたの見て思ってる物が大きいか小さいかなんてエスパーでもないから分らない。
画面キャプチャーでもして画像貼れ
0653デフォルトの名無しさん
垢版 |
2018/09/29(土) 04:51:42.90ID:61Ke5MR1
フォームにアイコンだけ表示されるやつは
OnCreateで手動で追加する形でずっとやってるから
どうでもいいは
0659デフォルトの名無しさん
垢版 |
2018/10/04(木) 10:29:39.99ID:FXVBuQxV
モニタよモニタよモニタさん
0660デフォルトの名無しさん
垢版 |
2018/10/06(土) 09:18:43.15ID:ruQOvniH
マルチデバイスのソフトを初めて作ろうと思っています。
コントロールの配置に関して質問なのですが、とりあえずPC用かスマフォ用を作ってその後、
各デバイス用に配置しなおして再コンパイルする手順でいいでしょうか?
0663660
垢版 |
2018/10/07(日) 08:57:42.83ID:XyZZDpel
有難うございます。
調べて勉強します。
0666デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:05:26.94ID:ApCV8gEF
>>665
なるほど

今日はvclとfmxアプリ間のメッセージングのテストやってて
切り替えるたんびにダイアログが何度も出てイヤんなる
0667デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:24:01.23ID:GbCGuExa
ブラウザのタイトルを取得したいんですけど、

WebBrowser1.Document.Titleだと、
'TWebBrowser' は 'Document' という名前のメンバを含んでいません

WebBrowser1.OLEObject.Document.Titleだと、
'TWebBrowser' は 'OLEObject' という名前のメンバを含んでいません

ってなるんです。
usesに何か足りませんか?

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Edit, FMX.Controls.Presentation, FMX.WebBrowser;

Delphi 10.2 Community Edition
0668デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:49:10.11ID:GbCGuExa
解決しました。
VLCじゃやないやつで作ろうとしてたみたいです!
0669デフォルトの名無しさん
垢版 |
2018/11/06(火) 12:05:36.75ID:FnkVAeUe
FMXでLabelのバックカラーの変更って出来ない?
今はPanelの色を変えて、その上に貼り付けてるんだけど。
0670デフォルトの名無しさん
垢版 |
2018/11/06(火) 15:03:32.51ID:lO/IgrxW
>>669
labelのスタイルに背景ってないからムリじゃないかな

あとpanelよりtlayoutの上にtrectangleのせて
さらにlabelはったほうが柔軟性が高い
0671デフォルトの名無しさん
垢版 |
2018/11/06(火) 16:08:30.30ID:xJl/nUxi
>>670
TRectangle、オブジェクトエクスプローラからなら子に色んな物入れられるよ
(要するにTRectangleがTLayoutのように使える)
0673デフォルトの名無しさん
垢版 |
2018/11/06(火) 19:14:26.53ID:lO/IgrxW
>>671
ホントだ

TPopupなんかもHelpじゃ実行時にParentを操作して
コントロールを乗っけるって書いてあって
使い勝手が悪いと感じてたんだけど
同じ方法で設計時にコントロールを配置できたりするんだよな
0674669
垢版 |
2018/11/06(火) 22:06:13.74ID:FnkVAeUe
皆さん、ありがとうございました。
Rectangleって楽ですね。
もう一つ教えて下さい。
panddingとかmarginsを設定して0に元に戻すと隣のコントロールと隙間が空いたままになるのは自分だけ?
0675669
垢版 |
2018/11/06(火) 22:08:56.05ID:hsnGAH6F
訂正です。
panddingとかmarginsを設定して実行。
その後、全部0に戻して実行しても隙間が空いたままです。
0676デフォルトの名無しさん
垢版 |
2018/11/07(水) 12:11:35.51ID:wV9cKqqT
>>675
fmxのmarginはちょっとバグってる気がする

その例と同じかどうか分からないけど
複数のspeedbuttonをalignをleftにして並べて
ボタンのmarginを一度設定すると
marginを解除しても
ボタンの左半分くらいがマウスに反応しなくなる

いろいろやってると何かのきっかけで正常になったりする
0677デフォルトの名無しさん
垢版 |
2018/11/07(水) 12:24:36.39ID:wV9cKqqT
上にスタイルの話があるけど
スタイルで背景色を変えたら
Windows10以外では適用されてなかった

コンパイルのしかたかなぁ

最近公開したソフトで
ユーザに指摘されて初めて気づいたよ
0678669
垢版 |
2018/11/08(木) 21:49:27.80ID:+35zDuDi
結局プログラムで指定すれば配置されるので我慢します
0679デフォルトの名無しさん
垢版 |
2018/11/15(木) 21:17:33.28ID:T3q1kNSY
fmxでのフォームの最小化と復帰だけど
コードだけでで問題なく動作する?

WindowState := TWindowState.wsMinimize;
WindowState := TWindowState.wsNormal;
でできるはずなんだけどね
何かうまく機能したりしなかったり
0680デフォルトの名無しさん
垢版 |
2018/11/20(火) 09:18:03.84ID:7wJBb/wv
本棚からDelphi7体験版が出てきたのでインストールしようとしたら、
ライセンス取得のところでエラーが出て使用することができません。
今更ながら、使うことは不可能なのでしょうか?

DelphiXEで非Unicodeのソースが作れればそれでも構わないのですが。
0682デフォルトの名無しさん
垢版 |
2018/11/20(火) 22:25:24.56ID:yy/MaTgl
すみません非Unicodeと限定されている意味がわからないので現行のものではダメなのかも知れませんね
0684デフォルトの名無しさん
垢版 |
2018/11/23(金) 08:08:59.67ID:aknsIo8R
>>683
良くサイトを見たら、体験版の承認キーの発行は終了しているみたいです。
せっかく教えていただいたのにすみません。
0685デフォルトの名無しさん
垢版 |
2018/11/24(土) 01:36:16.72ID:e4CBxpxl
FMXをタッチパネルついてるWindows10で動作させるとTListViewとかが勝手にタッチパネル用のスタイルになるのどうにかならんかなぁ
Scrollbarが表示されない上にタッチパネル操作になるから操作が統一できない・・・
デバイス自体を無効にしたらタッチパネルじゃないスタイルで動作するけどなんだかなー
0686デフォルトの名無しさん
垢版 |
2018/11/25(日) 11:17:43.53ID:x9MDawPF
ListBoxの項目にFocusを付与したいのですが、3,4日うまくいかず困っています。
クリック以外の方法でListBoxにFocusを付与する方法というのはありますか?
0687デフォルトの名無しさん
垢版 |
2018/11/25(日) 21:01:29.45ID:4hnmy7r/
ListBox1.ItemIndex:=3;
ListBox1.SetFocus;
ってこと?
なんか以前にもこんな質問あったような気がするが
0688デフォルトの名無しさん
垢版 |
2018/11/26(月) 13:46:48.38ID:gMNgG1vk
>>687
どうもです。
ただ、マウスクリックするとFocusが出ますが、ListBoxの他の所をクリックすると消えちゃうんですよね…。
0689デフォルトの名無しさん
垢版 |
2018/11/27(火) 01:04:25.95ID:uHJWsmxJ
>>688
そりゃそうだ
他のフォーカスを持つ所をクリックすればフォーカス移る

何がしたいのかわからない
「ウィンドウ ハンドルを持つコンポーネント」の意味を理解してますか?
例えばここ http://delfusa.main.jp/delfusafloor/archive/VA009712_take/delphi/kabeapp.htm

ListBox以外にフォーカス動かしたくないんなら
他の全てをフォーカスを持たないSpeedButtonとかメニューやツールバーとかにするしかない
或いは他を Enabled:=Falseにするとか
0690デフォルトの名無しさん
垢版 |
2018/11/27(火) 09:44:39.76ID:/9xlS8t7
こんな物を作っていました。
ttp://www1.axfc.net/u/3946835.zip?key=123456
既知の不具合
下手にいじると簡単にバックグラウンドプロセスに行ってしまう。

Focusについてですが、このアプリはFocusが残る物をベースに作りました。
新しく作り直した物がListboxをクリックすると一瞬だけFocusが表示されるのですが
すぐ消えてしまうと言うよく分からない現象が起きていました。

よろしかったらご評価いただければ幸いです。

もう我流は辞めてTurboDelphi〜を参考書に勉強したいと思います。
0691デフォルトの名無しさん
垢版 |
2018/11/27(火) 09:53:17.62ID:/9xlS8t7
大事なことを忘れていました。

このアプリはエクスプローラ上で.wavファイルを選択し「送る」もしくはアイコンでD&Dすると再生を始めます。
またアプリを起動して、エクスプローラからフォームに直接D&Dすると曲を演奏します。

よろしくお願いいたします。
0693デフォルトの名無しさん
垢版 |
2018/11/27(火) 15:00:40.58ID:/9xlS8t7
そうですよ。まだやってました。石の上にも3年と言う言葉もありますし
おかげさまで、プログラミング技法の第一巻の半分くらいまでは理解できるようになりました。
今度はちゃんと基礎からやり直したいと思います。

あげたファイルはアルファー版ほどの出来ですが、今の知識で作った物です。
ご興味がありましたら、ご評価をよろしくお願いいたします。
0694デフォルトの名無しさん
垢版 |
2018/11/27(火) 20:14:14.72ID:NOmVen+G
>>685
確かにスクロールバーが通常は非表示だけど
そんなに違いがあったっけ?

自分としてはマウスホイールでスクロールしてるときも
スクロールバーが非表示なのがあれだけど
0695デフォルトの名無しさん
垢版 |
2018/11/27(火) 20:24:03.07ID:B1T5LoxP
>>694
マウスでドラッグしたらスクロールできたり(タッチパネル式だからマウスでスクロールバー操作するのとは逆の動きする)、スクロールバーが表示されてるときにクリックしても反応なかったり
OS側で常にスクロールバー表示しても非表示とか

レガシーな入力デバイスが主なプラットホームでは切り替えられるようにしといて欲しい・・・
0696デフォルトの名無しさん
垢版 |
2018/11/27(火) 22:24:05.07ID:NOmVen+G
>>695
てかいま自分が作ってるfmxアプリをwindowsタブレットで動かしてみると
listviewとかのタッチでのスクロールには少し違和感があるね
android上とは明らかに違う操作感だ
0697デフォルトの名無しさん
垢版 |
2018/11/27(火) 22:44:39.21ID:uHJWsmxJ
>>690
ごめん俺687と689を書いた者だけど自分の勉強以外で人のソース読むほど時間はないんだ
と書きながらも流し読みだけでもしようかと開いてみたら
「404 Not Foundファイルが見つかりません」

>新しく作り直した
と書かれているがそれは今までのソースのつぎはぎコピペではなく自分で理解しながら書き起こしたものですか?
それならば不具合が出たとしても何をググって調べればいいかわかると思います

プログラミング技法って昔持ってた記憶があるけど一度通読したあと埃かぶってたまま引っ越しの時に捨てたくらいいまいちな本だった記憶
自分はやっぱり最初は「はじめてのDelphi」が一番わかりやすかったし
「Delphiオブジェクト指向プログラミング」でVCL読むようになって
「インサイドDelphi」とか「シェルプログラミング入門」が楽しく読めるようになった

そうです私もおじさんです
0698デフォルトの名無しさん
垢版 |
2018/11/27(火) 22:49:52.31ID:NOmVen+G
>>690
何をしたいのか分からないよ?
focusって言葉がそもそも違うんじゃない?

もし何らかの理由で本当にlistboxにfocusを与えたまま
維持したいんだけど、できないんだったら
他のコントロールがfocusを奪ってるんでしょ

それを調べたらいいんじゃない?
0699デフォルトの名無しさん
垢版 |
2018/11/27(火) 23:04:45.17ID:NOmVen+G
>>697
自分なんか「おじさん」じゃなくて
60過ぎのジイサンだよ

と言ってもdelphi歴は短いけどね
今はfmxにハマってる
0700デフォルトの名無しさん
垢版 |
2018/11/28(水) 07:11:14.22ID:cOVA6pyZ
ListBoxってフォーカスの有無で外観が変わったっけ?
フォーカスがなくなって困ることってある?
0701デフォルトの名無しさん
垢版 |
2018/11/28(水) 18:42:27.35ID:6Wq1ldCo
ご評価していただいた皆様ありがとうございます。
このソフトを作るときは、巻き戻し・プログレスバー移動自由自在・リモコン対応
を目標に作り始めましたが、どれ一つも実現できませんでした。
MCIを使っての巻き戻しは、テープ系なら可能みたいですがMpegではデバイスが対応していないので無理。プログレスバーでの移動はどんなに大変なのかは、DelphiでDVDプレイヤーを作った方のサイトがあるのでそちらを参照してください。
大本のVolume制御以外は自分で実装しましたが、新しく別プロジェクトを作って試作してめどが立ってから導入しましたが、何故か思ったように動かず。
前半はMCIに翻弄され後半はインターフェースに苦しみ、メディアプレイヤーはもう少し修行を重ねてから、作りたいと思います。
愚痴めいた内容ですみません。

色々アドバイスをしてくれた皆様、特に質問を投げかけたときに、コマンドを一言つぶやいていただいた方、自分で使い方を調べることで理解が進みました。
スレ汚し失礼しました。
0703デフォルトの名無しさん
垢版 |
2018/11/28(水) 19:03:58.25ID:6Wq1ldCo
教えてくれた皆さんありがとう
つかれた
mp3再生君にはかないませんでした。

こんな感じで
0706デフォルトの名無しさん
垢版 |
2018/11/28(水) 21:12:16.13ID:6Wq1ldCo
そうでした。
Object Pascal言語ガイドを少し腰を据えて読んで理解したいと思います。
0707デフォルトの名無しさん
垢版 |
2018/11/28(水) 21:32:01.67ID:m6jgQPaC
前も言ったような気がするけど
fmxのコントロールのカスタムスタイルって
Windowsだと10でしか有効にならなくない?

設定した背景色とか8.1や7じゃ消えてるし
0708デフォルトの名無しさん
垢版 |
2018/11/28(水) 22:21:14.73ID:KTh/kflZ
>>707
Windowsのバージョンで別々に設定できる反面、Windows10専用で設定されてるのに気付かないと別の環境では変な表示になっちゃうよね
0712デフォルトの名無しさん
垢版 |
2018/11/29(木) 08:37:13.44ID:J6L5KB/r
>>708
そうなんだ

確かに「ターゲットプラットフォームの
バージョンごとにネイティブ」って書いてあるね

Windows 10 Desktop用に作ってあったとして
新たに8用と7用も作ってやらないとならないのか

こりゃちょっと大変な作業だ
0713デフォルトの名無しさん
垢版 |
2018/11/29(木) 15:25:33.53ID:yQEZusSx
>>712
デフォルトスタイルに設定するか、スタイルを保存して各プラットホームにマージしたらそんなに手間でもないよ
0715デフォルトの名無しさん
垢版 |
2018/12/05(水) 10:09:27.51ID:mTCdLhw6
DelphiXEを使ってます。
エクスプローラからプロジェクトファイルをダブルクリックしてDelphiが起動するのですが、
さらにもう一つ同じ操作で起動すると、先に起動したIDEのプロジェクトグループに追加され
てしまいます。2つ目のプロジェクトを別のIDE画面で起動したいのですが、そのような設定
があるのでしょうか?
0717デフォルトの名無しさん
垢版 |
2018/12/07(金) 09:21:09.18ID:2Avy4w/h
>>715
スタートメニューから起動してプロジェクトロードするしかない
レジストリをいじれば出来るかもしれないけど
0718デフォルトの名無しさん
垢版 |
2018/12/08(土) 09:28:52.05ID:p9Ru1ius
Rioの各デスクトップレイアウトを変更した後
それを保存する項目がメニューから消えたみたいですが?
0720デフォルトの名無しさん
垢版 |
2018/12/08(土) 17:06:57.94ID:p9Ru1ius
>>719
ありがとうございました
できました

このボタンが関係するのかなとも思いましたが
Hintも非表示でスルーしてました
0721デフォルトの名無しさん
垢版 |
2018/12/12(水) 22:30:39.97ID:MSpbLBgR
エンタープライズコネクターのインストール方法教えて下さい。
ダウンロードしてsetup.exeを実行してパスを通すの?
0722デフォルトの名無しさん
垢版 |
2018/12/13(木) 09:33:41.92ID:+QyQFfQj
ちょっと教えてください

fmxのカスタムスタイル変更でコントロールの背景を変更するとき
Windows 10 Desktopstyle.pngとかWindows 7style.pngとか利用しますが
これってどこにあるの?

この画像を修正したいいんですがドライブの中を検索しても見つかりません
0723デフォルトの名無しさん
垢版 |
2018/12/13(木) 11:47:04.04ID:YCEJ54t4
Delphi10.3 Community Edition 入れてみた
オブジェクトインスペクタのイベントTabが開かないんだけど
俺だけ?
Delphi10.23 Community Editionでは問題なく選択できる
0725デフォルトの名無しさん
垢版 |
2018/12/13(木) 18:38:58.45ID:YCEJ54t4
'イベント'の文字の所をクリックすると いけた
TABの色と右側空白の色が同じだったので、空白をクリックしていただけだったw
0727デフォルトの名無しさん
垢版 |
2018/12/15(土) 02:19:47.94ID:bDhDTHwp
10.3でPostMessageを使ったメソッド、イベントハンドラ呼び出しの
標準のラッパーみたいのありますか

Call(Button1Click, [Sender]);

的な使い方ができるもの
0728デフォルトの名無しさん
垢版 |
2018/12/21(金) 18:01:03.17ID:cky1I29u
AndroidアプリのためにFMX.MEMOを使って
簡単なテキストエディタを作ろうと思ったが
いざAndroid上で動かすと、漢字入力の際
変換中の文字列の色が変化せずに困っている

普通は入力中の文字、文節の区切り、カーソル位置で
色が変わったり下線が表示されるが、周りの文字と同じままで
どこが入力中で、どこが文節の区切りなのか分からない
何か設定が足りないんだろうか?
(IMEはGoogle日本語入力です)
0730デフォルトの名無しさん
垢版 |
2019/01/20(日) 15:49:29.87ID:qfpRHOuf
D7 です。
それなりに以前の機器の古いバイナリデータの日時情報が 8 byte(64bit) Hex で記録されているのですが、
日付TDateTime型 に入れる式をどなたか分りませんでしょうか?

この形式のような気配なのですが
ttp://madia.world.coocan.jp/vb/vb_bbs2/200602/200602_06020084.html
>Windowsは、「1601年1月1日 00:00:00からの100ナノ秒単位の経過数」です。

実データ値
0x88D24B060812D480 : 2015/04/22 11:24:29 付近
0x88D24B0608AB6B00 : 次の変化 : 差分 int 10000000 = Hex 0x989680
 ↓
0x88D24B0628429380 : 2015/04/22 11:25:23 付近 : 最終

// UNIX 系の変換はこのような感じでやってたのですが
var
i64 : Int64;
la : Longword;
TextStr : String;
ULDateTime : TDateTime;
begin
i64 := StrToInt64('$' + Edit_Unix64bitDateTime.Text);
la := i64 div 1000;
ULDateTime := UnixToDateTime(la);
TextStr := FormatDateTime('YYYY/MM/DD HH:MM:SS',ULDateTime);
UNIX 系でのミリ秒含めでもなさそうでちょっとお手あげです。
0732731
垢版 |
2019/01/20(日) 18:33:56.63ID:pkTQkmr2
整数型は、符号付き・符号無しのどちらか?
リトルエンディアン・ビッグエンディアンのどちらか?

そのサイトのソースコードを見ると、
unsigned long low, high;
unsigned は、符号無し

val[0〜3]がlow、[4〜7]がhigh、
0123_4567 が、low_high だから、ミドル(PDP)エンディアンか?

1234_ABCD を、ABCD_1234 にしているのか?

Wikipedia の「エンディアン」を参照して!
0733デフォルトの名無しさん
垢版 |
2019/01/20(日) 20:11:56.51ID:KDWvqb8v
D7から10.3comに変更してAndroidアプリでも作ろうかと気軽にチャレンジしたら
すげー苦労してる・・・
プロパティ名が微妙に違うしStringGridとかListviewみたいになってるし
ダイアログとかも面倒くせー
0735730
垢版 |
2019/01/21(月) 09:36:20.23ID:a6ON0eDT
詳細書き直し
古い規格データの機器からのバイナリデータ。
目的:古いデータを今の形式にする為。
日時部分を Delphi D7 で扱える ULDateTime : TDateTime; に入れたい。
問題点:時間部分の変換が分らない。

データブロックを構成する他の部分データ部分はリトルエンディアンで構成されている。

バイナリエディタで見ると不明で残る日時データ部分が8バイトの羅列。
 [0][1][2][3][4][5][6][7]
(1) "80 D4 12 08 06 4B D2 88"

データの変る区切りで (2)つ目の変化
(2) "00 6B AB 08 06 4B D2 88"

時間が進むごとに
[0] 側から加算されていく、よってこの部分もリトルエンディアンで構成。
1分に満たない時間変化で4バイト目も変っていく為 32bitではない。
0736デフォルトの名無しさん
垢版 |
2019/01/21(月) 09:40:36.46ID:p/5Zwz2x
Link先はUnix系だからこれでいけるようだけど違うみたいね

function bswap64(i: int64): int64;
begin
result := (i and $ff00000000000000) shr 56 or (i and $ff000000000000) shr 40 or
(i and $ff0000000000) shr 24 or (i and $ff00000000) shr 8 or
(i and $ff000000) shl 8 or (i and $ff0000) shl 24 or
(i and $ff00) shl 40 or (i and $ff) shl 56;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i64 : Int64;
d: double;
la: cardinal;
s : String;
dt : TDateTime;
begin
i64 := StrToInt64('$' + '6082D42A5A38C601');
i64 := bswap64(i64);
d := i64 * 1.0e-7;
d := d - 11644473600;

d := d /(24*60*60) + UnixDateDelta;
dt := FloatToDateTime(d);

// la := Trunc(d);
// dt := UnixToDateTime(la);

Edit2.Text := FormatDateTime('YYYY/MM/DD HH:MM:SS', dt);
end;
0737730
垢版 |
2019/01/21(月) 09:56:47.94ID:/4Ne5b0H
パソコンで続きを書こうとしたらホスト規制の文字が出る
>736 考えてみます
0738736
垢版 |
2019/01/22(火) 07:57:49.66ID:wlBx3Xs7
Q : 整数型は、符号付き・符号無しのどちらか?
A : いっさい不明

全差分 54秒 ほどの間に 1529 個ほどのデータ
時間文字の違いを抜き出し
time 1> 0x88D24B060812D480 : 2015/04/22 11:24:29 付近
time 2> 0x88D24B0608AB6B00
 〜
time end-1> 0x88D24B0627A9FD00
time end> 0x88D24B0628429380 : 2015/04/22 11:25:23 付近

2進数、8進数、10進数、16進数相互変換ツール
h ttp:〜(この〜〜は規制がどうたらこーたら表示)
符号なし10進数化で差分を求めると 10000000
これが1秒の更新と一致。

新展開
"00 40 E4 47 02 22 C1 08" : 終了段未計測の値、(データ無し)
0x08C1220247E44000
符号なし で変換 630822816000000000 ググるといくつも何かがHit
Calendar のどうたらこーたら英文一杯
0739デフォルトの名無しさん
垢版 |
2019/01/22(火) 20:50:24.33ID:zgLYWjKa
>>738
time2の値を0xffffffffffffffff-1(=0x7fffffffffffffff)でbit andを取ると、
0x8d24b0628429380

この値を.NET frameworkのDateTime型に渡してインスタンス化したところ、

2015/04/22 11:25:23
となり一致した。

.NET frameworkのDateTime型は、100nsecの分解能をもつグレゴリオ歴0001年1月1日 00:00:00からの経過時間

またほかの考察から、1sec=10000000であり、ちょうど100nsecの分解能とも一致している。
0740デフォルトの名無しさん
垢版 |
2019/01/22(火) 20:52:09.44ID:zgLYWjKa
>>738
データ点数1529は、
1529 = 54 * 28 + 1
なので、28Hzのクロックシグナルでログを取っているものと予想される
0741デフォルトの名無しさん
垢版 |
2019/01/22(火) 22:15:27.13ID:zgLYWjKa
>>738
日時の表現が.NET frameworkのDateTime互換と仮定すると、

>>739 では上位1bitを捨てたけど、実際には2bit捨てるのが正しい。

この2bitが何物かといえば、
時刻の種類を示すbit flagで、指定なし(0), utc(1), local(2)

例示された値の上位2bitは0b10(=2)なので、ローカルタイムだったのだろうと推測される。
0742736
垢版 |
2019/01/23(水) 06:54:24.00ID:BnZEIkIf
>>739-741
ありがとうございます。
まとめるとこのような感じで上手くいくようです。
0743736
垢版 |
2019/01/23(水) 06:56:58.78ID:BnZEIkIf
.NET frameworkのDateTime互換型と仮定 → (.Net型 非対応) Delphi TDateTime型

対象 : 0x88D24B0628429380 : 2015/04/22 11:25:23 付近
符号なしで推移

2000年1月1日 00:00:00 基準値 0x08C1220247E44000
差分
16進数 = 80112903E05E5380
10進数 = 9228202208084775808
02進数 = 1000000000010001001010010000001111100000010111100101001110000000
.NET frameworkのDateTime型は、100nsecの分解能をもつグレゴリオ歴0001年1月1日 00:00:00からの経過時間
時刻の種類を示すbit flagで、指定なし(0), utc(1), local(2)
値の上位2bitは0b10(=2)なので、ローカルタイム
上位2bit捨てる

2000/01/01 00:00:00 以降だけと仮定(計測機器データなので過去は無し)
1000000000010001001010010000001111100000010111100101001110000000
 00000000010001001010010000001111100000010111100101001110000000 = 4830171230000000 = 0x112903E05E5380

4830171230000000 / 10000 ms = 483017123000 {切捨て}

483017123000 (ms)
/1000 = 483017123 ...0 (ms)
/60 = 8050285 ...23 (sec)
/60 = 134171 ...25 (min)
/24 = 5590 ...11 (hour)
2000年1月1日 から 5590 日のローカルタイム経過日
0744736
垢版 |
2019/01/23(水) 07:02:27.05ID:BnZEIkIf
.NET frameworkのDateTime互換型と仮定 → (.Net 非対応) Delphi TDateTime型
検証中
uses
// (略)
DateUtils,Math;

procedure TForm1.Button_Hex64Bit2000CalendarClick(Sender: TObject);
var
i64 : Int64;
// (略)
TextStr : String;
ULDateTime : TDateTime;
begin
i64 := StrToInt64('$' + Edit_Hex64BitDotNfDateTime.Text);
i64 := i64 - $08C1220247E44000;
TextStr := IntToHex(i64,16);

Memo1.Lines.Add(TextStr);
// Hex 16bit 文字→ 2bit String に変換
// 上位2bit 文字 で utc(1)00, local(2)10 を判定後削除
// i64 := 残りを 10進数数値に変換
// i64 := Trunc(i64/10000); // ミリ秒単位化

i64 := 483017123000; // (仮入れ)
ULDateTime := StrToDateTime('2000/01/01 00:00:00.000');
ULDateTime := IncMilliSecond(ULDateTime,i64);
TextStr := FormatDateTime('YYYY/MM/DD HH:MM:SS.ZZZ',ULDateTime);
Memo1.Lines.Add(TextStr);
end;
結果 : 2015/04/22 11:25:23.000
一致しました。
0745736 関数化
垢版 |
2019/01/24(木) 06:22:34.57ID:+IgQLcoJ
関数化したものを分けて書こうとすると
Sorry, you have been blocked
You are unable to access 5ch.net

>744 変更
i64 := i64 - $08C1220247E44000;
// Int64 → 2bit String に変換
TextStr := Int64ToBin(i64,False); // 他者さんの参照外部関数を改変
// 上位2bit 文字 で utc(1)00, local(2)10 を判定後削除
// 上位ゴミ'0'削除

// i64 := 残りを 10進数数値に変換
0746736 関数化
垢版 |
2019/01/24(木) 06:38:11.74ID:+IgQLcoJ
function DotNf64bitHexToDateTimeStr(Str8bytesHex : String; Flg,MS : Boolean) : String; // 8 Bytes Hex , Flg check , ms on(True/False)off
(省略 >744冒頭部分近似)
// i64 := 残りを 10進数数値に変換
ib := 0; // 頭"i"Int
ea := 0; // 頭"e"Extended
ilen := Length(TextStr);
for ia := ilen downto 1 do
begin
iBin := StrToIntDef(TextStr[ia],0);
ea := ea + ((power(2,ib)) * iBin);
ib := ib + 1;
end;
i64 := Trunc(ea / 10000); // ミリ秒単位化
ULDateTime := StrToDateTime(DateTimeStr);
ULDateTime := IncMilliSecond(ULDateTime,i64);
if MS then DateTimeStr := FormatDateTime('YYYY/MM/DD HH:MM:SS.ZZZ',ULDateTime);
if MS = False then DateTimeStr := FormatDateTime('YYYY/MM/DD HH:MM:SS',ULDateTime);
end;
if Flg then DateTimeStr := UL + DateTimeStr;
DotNf64bitHexToDateTimeStr := DateTimeStr;
end;
end.
0747736 関数化
垢版 |
2019/01/25(金) 06:18:32.24ID:/nan/z+i
補足

i64 := StrToInt64('$' + Str8bytesHex);
// Int64 → 2bit String に変換 'Int64ToBin' で検索先
// 上位2bit 文字 で utc(1)01, local(2)10 を判定
i64 := i64 - $08C1220247E44000;
// Int64 → 2bit String に変換
// 上位ゴミ'0'削除
// i64 := 残りを 10進数数値に変換

流れをこうしないと年日時の結果は同じでも
指定なし(0) 上位2bit 文字 '00' の場合
差し引き結果から'01'のutc判別となってしまう。
0748デフォルトの名無しさん
垢版 |
2019/01/26(土) 12:43:51.03ID:V7Vc5iY/
DocWikiの内容をzipファイルか何かで一括ダウンロードする方法あったら教えてください
0749デフォルトの名無しさん
垢版 |
2019/02/10(日) 07:14:24.28ID:RF523CmO
古いD6をまだ使っているが、エディタは VScode にDelphi extension入れて
使っている
デバッグはD6のIDEでやるしかないけど、両方立ち上げておけば
まあ使えますね
0750デフォルトの名無しさん
垢版 |
2019/02/10(日) 10:26:35.22ID:3PGMldSJ
俺もD6で、秀丸でコーディングしていたが、VSodeに切り替えてみようかな。
VSCodeは他の言語で使ってるので。
0751デフォルトの名無しさん
垢版 |
2019/02/10(日) 18:01:50.44ID:RF523CmO
VScodeの注意点: 別PCのファイルを開くと、変更が反映されない事象あり
自動保存されるけど、書きなおしたやつをまた開くと直っているように見えるのに、
実際は直ってないとか。 意味不明
0753デフォルトの名無しさん
垢版 |
2019/02/17(日) 19:49:40.12ID:mFe1BbW0
別に今必要な事じゃないんだけど
エクスプローラーのファイル名で並べたら

ファイル1
ファイル2
・・
ファイル10

って並ぶでしょ。 これどんなロジックなんだろ
スマートな方法が思いつかないし興味ある
0754デフォルトの名無しさん
垢版 |
2019/02/17(日) 21:28:00.77ID:8qqWbI4p
自分は自作ソフトで似たようなことやってるけど
1文字単位での比較で数値同士の比較の場合に、その先の数値じゃなくなる前まで読んで整数にして比較ってしてる
小数点以下は1文字単位での比較として扱うので整数にしない

ただ 第11話 最終話 のような場合のロジックが面倒
0756デフォルトの名無しさん
垢版 |
2019/02/19(火) 08:12:14.24ID:BDyhgoG4
Delphi Community EditionとC++Builder Community Editionは同時にインストールできないんだな。
0757デフォルトの名無しさん
垢版 |
2019/02/19(火) 09:38:23.94ID:5KoJ2HbW
>>753
例えばこういうのは?
ファイル名文字列をバイト単位で数値化して加算
f0 = 0x65 + 0x30 = 101 + 48 = 149
f1 = 150
f2 = 151
f01 = 0x65 + 0x30 + 0x31 = 198
数値化した値で降順ソート

つまり
格納されてるファイル名を文字ではなく文字コードの数値合計でソート
0758デフォルトの名無しさん
垢版 |
2019/02/19(火) 09:58:03.22ID:5KoJ2HbW
補足
f01 = 0f1 = 1f0 になってしまうので
f(filename)文字列の桁数 len:=length(f) で文字列制限を設けて
for i:=1 to len do
if i<10 then a:=a+Ord(f[i])*10 else a:=a+Ord(f[i]);
適当処理
0759753
垢版 |
2019/02/19(火) 16:58:58.81ID:kMKRA1xT
有り難うございます
おもしろい・・・
0760デフォルトの名無しさん
垢版 |
2019/02/19(火) 17:54:17.46ID:oJBYXncw
>>757
それだと

abcd5.txt
bbcd1.txt
というファイルがあった場合に

bbcd1.txt
abcd5.txt
という並び順になっちゃうんじゃね?
あくまで"文字列"+"数値" というファイル名に対して"文字列"で比較し、"文字列"が同一なら"数値"で比較する必要があると思うが

>>754の場合、数字が文字列の一部だった場合に正しくソートされないって問題があるけど
そういう場合のファイル名はあまり意味がないから気にしないようにしている
それと先頭が数字の場合は文字列の一部として扱ってる
0762デフォルトの名無しさん
垢版 |
2019/02/19(火) 19:34:05.73ID:oJBYXncw
自分の場合、壱弐参なんてのも数値として扱うようにしている(したい)からAPIだと望んだ結果を得られない
「数値もしくは数値に変換可能なもの」同士の比較の場合だけ整数として比較してる
0763デフォルトの名無しさん
垢版 |
2019/02/21(木) 17:17:10.52ID:2mlLSirQ
begin
  var
    i: Integer;
  i := 0;
end;
コードフォーマッタ使うとこうなってしまうのだけどvarのあとで改行しない設定ってどこ?
0765デフォルトの名無しさん
垢版 |
2019/03/12(火) 16:19:08.39ID:8KtfShI4
Sorry, my bad. My memory is confused. But, so what?
I mean, the fact is you humiliate Linus and Kernighan in such a way that they never know such a thing as you said.

たしかに恥ずかしい
0767デフォルトの名無しさん
垢版 |
2019/04/02(火) 23:02:52.38ID:Jpqx4ytb
ちょっと教えてほしいんですが、社内イントラネット環境で50台くらいのクライアントPCと
1台のサーバーで双方向に情報をやり取りするVCLフォームアプリを作りたいですが
Delphiだと何使って構築するのが良いのでしょうか?
上からの命令でDelphi使うことなって調べてみたんですが、検索するとDataSnapとか
RESTとかのキーワードが出てきますが自分の経験がDelphi7でストップしていて
現状についていけてません。よろしくおねがいします。
0768デフォルトの名無しさん
垢版 |
2019/04/03(水) 02:20:05.63ID:ZykPhSzn
>>767
情報のやり取りだけでは何とも言えんなー
それだけの要件だとIndyかWinsocksで通信したらええんちゃうってなる
0770デフォルトの名無しさん
垢版 |
2019/04/03(水) 06:04:14.50ID:Vd76zIcd
CのDLLは普通にDelphiでも使える。
つまりcurlとかも普通に選択肢になると思う。
0778デフォルトの名無しさん
垢版 |
2019/05/06(月) 11:11:11.14ID:WAQCiPA3
UnZIP32.DLLとかUnRAR32.DLLでRARファイルの操作する場合の質問です
例えば

BOOL WINAPI UnrarCheckArchive(LPCSTR szFileName,const int iMode);

と定義されてるUnrarCheckArchive関数をDelphiで定義すると

UnrarCheckArchive: function(szFileName: LPCSTR; const iMode: integer): Boolean; stdcall;

こんな感じなって通常はこれで問題ないのですが、
Unicode文字(バ、ガなどの濁音とか)が混じってるファイル名の場合上手く行きません

szFileNameがLPCSTRだからAnsiString扱いなのでUnicodeのファイル名を渡せないのもの当然なのですが、
なにかプログラム側でできる回避策はないでしょうか?
0779デフォルトの名無しさん
垢版 |
2019/05/06(月) 12:25:07.78ID:a/Eukqc8
>>778
使用しているdelphiのバージョンを書いてください。
delphi2009前か後かで回答が変わるかもしれないからです。

UnrarChechArchive関数の仕様に基づいて型キャストしてやれば良さそうな気がします。
例えばnull終端wide stringという仕様なら、渡すファイル名をまずPWideCharにキャストして、さらにPAnsiCharにキャスト。
0780デフォルトの名無しさん
垢版 |
2019/05/06(月) 13:23:28.45ID:WAQCiPA3
>>779
レスありがとうございます
使用してるDelphiは2010です

>UnrarChechArchive関数の仕様
szFileNameはLPCSTRなので32bit系のDLLではnull終端のAnsiChar配列(のポインタ)になってると思います


>渡すファイル名をまずPWideCharにキャストして、さらにPAnsiCharにキャスト。
var
Path : string;
UnrarCheckArchive(PAnsiChar(PWideChar(Path)), 0);

この型キャストでは残念ながら上手く行かないようです
0782デフォルトの名無しさん
垢版 |
2019/05/06(月) 20:48:15.87ID:WAQCiPA3
>>781
ナイスアドバイスです
GetShortPathNameで上手く行きました

おかげさまで幸せになれました
ありがとうございました
0783デフォルトの名無しさん
垢版 |
2019/05/10(金) 10:35:30.18ID:VUdPAgci
TDateTime datetime = VarToDateTime("令和元年5月10日9時10分15秒");
今はエラーが出るんだがそのうち対応されるのか?
0784デフォルトの名無しさん
垢版 |
2019/05/10(金) 20:47:06.76ID:bRXsPgWN
FormatDateTime('ge', Now);

レジストリに令和を加えてから上記を実行すると令1 って出るね
0786デフォルトの名無しさん
垢版 |
2019/05/12(日) 18:37:34.16ID:Kr8GnLfu
vsIconかつAutoArrangeのListViewで、両端のアイテムを選択した状態で左右キーを押すと、
エクスプローラーなら上下の列に移動しますが、DelphiのTListViewだと無反応です
これをエクスプローラーに準拠の動作をさせるにはどうすればよいのでしょうか?
0787786
垢版 |
2019/05/15(水) 06:10:55.25ID:jY9AnPp4
自己レスです
通常方向キーなどはVCL側で処理されてOnKeyPress、OnKeyDownなどではトラップできないので、Windowsメッセージを直接トラップすることでエクスプローラー準拠にできました

procedure WMKEYDOWN( var Msg : TWMKEYDOWN ); message CM_CHILDKEY;

procedure TForm1.WMKEYDOWN(var Msg: TWMKEYDOWN);
begin
case Msg.CharCode of
VK_LEFT :
左端か判別して左端なら上の列の右端に移動してResult := 0;
VK_RIGHT :
右端か判別して右端なら下の列の左端に移動してResult := 0;
end;
inherited;
end;
0789デフォルトの名無しさん
垢版 |
2019/05/26(日) 19:04:45.15ID:Nlo0sxin
開発環境だと問題ないのですが
実行したいPCだと
「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」と警告が出ます。
いくつかのDLLを使ってます。
どこから調べれば良いか???です。
開発環境は XE3 です。

何かヒントでもありませんか?
0791デフォルトの名無しさん
垢版 |
2019/05/26(日) 21:22:58.51ID:Nlo0sxin
有り難うございます
警告メッセージは最初にググったのですが ピンとくる書込は見つけられませんでした
VBAは使ってないし・・
開発環境 Win7 x64 、実行環境 Win10 x64 です。
当初はそんな警告出てなかったのですが デバッグしてるうちに出るようになりました

困った・・・
0792デフォルトの名無しさん
垢版 |
2019/05/27(月) 06:55:38.20ID:+4vJq2r8
とりあえず、「動いている状態」ってのに戻してみたらどうかね?
それが再現できるなら話は簡単になる
0793デフォルトの名無しさん
垢版 |
2019/05/27(月) 09:20:16.88ID:ywThIruX
コメント感謝します
DLL参照の プロパティ値代入を1行追加してから症状が出るようになった気がするのですが(自信なし)
それをコメントアウトしても症状が消えません
開発環境では出ないので厄介です
Delphiが タイプライブラリを自動で追加したり とか しないですよね?
0794デフォルトの名無しさん
垢版 |
2019/05/27(月) 09:39:37.30ID:+4vJq2r8
そうじゃなくて、前の状態のファイルとかシステム一式をバックアップから取り出せないの?
自動でバックアップしながらじゃないとソフト開発は効率わるいよ。
0795デフォルトの名無しさん
垢版 |
2019/05/27(月) 11:28:59.51ID:ywThIruX
お付き合いホントに有り難うございます
開発環境と 実行環境が 1時間の移動距離にあるので
今現在出来てるテストが上記の書込でした
開発ファイル群は毎日のバックアップがあります
先ず、手元に現象を再現できる環境を構築しようと思ってます。

1度ビルドすると ソースの変更点をコメントアウトしても 元に戻らない
「何か」が有る可能性はあるのでしょうかね?
0798789
垢版 |
2019/05/27(月) 16:22:46.11ID:ywThIruX
コメント有り難うございます

データベースドライバは入っています
入れ直すということでしょうか?

先の警告メッセージが出たあとOKを押すと 一見正常に動作しているように見えます。
そもそも警告が出始める前は 一通り正常に動作していました。

原因がわかりません。
旧ソースをビルドし直してテストしてみます。
0799デフォルトの名無しさん
垢版 |
2019/05/27(月) 20:19:06.04ID:zpIi4cEd
データベースドライバが32bitか64bitなのかが開発環境と実行環境で違ってたら
そんなようなエラーが出たような気がするが
0800789
垢版 |
2019/05/27(月) 20:33:13.36ID:ywThIruX
>>799
コメント心から感謝します

警告メッセージをググると そんなことも書いてありました
只 当初は問題なく動作していたので 途中でドライバーが変わるようなことも考えにくいですよね
Delphiで書いた実行ファイル以外は一切環境を変えていませんので 謎です
0801デフォルトの名無しさん
垢版 |
2019/05/28(火) 00:25:44.07ID:M3HPfliA
32bit用ドライバ → system32 に入れる
64bit用ドライバ → wow64 に入れる

こういう勘違いをしてるアホは時々見かける
0803デフォルトの名無しさん
垢版 |
2019/05/28(火) 08:25:10.69ID:m8dRe03e
アプリのバージョンを表示するコードが上手く行かないんで悩んだがどうやらデバッグ版とリリース版でバージョン情報が共有されない仕様になったんだな
デバッグ版、リリース版でそれぞれバージョン情報をオプション設定しなきゃならないんで面倒くさいわー
デフォの文字コードも英語版になってるしなんかいろいろ使いにくい>10.3
0804デフォルトの名無しさん
垢版 |
2019/05/28(火) 09:12:35.07ID:WeI/rfn2
>>800
開発環境から実行した時に、モジュールのロードで始まる dll や bpl のロード情報を
コピペしてゆっくり眺めてみる
0805デフォルトの名無しさん
垢版 |
2019/05/29(水) 05:48:35.44ID:PLjjs/Q6
begin
TStringList.Create.Add('メモリリークした');
end;

このメモリリークの型、内容、ソースコードの場所を検出してくれるツールで
フリーかつDelphi10.3で使えるものって何があるますか?
0809デフォルトの名無しさん
垢版 |
2019/05/31(金) 11:36:16.19ID:wXpLEcKn
ところでandroidのメモリリークって
どうやって検出するの?
少なくとも標準のを書いておいても
今まで報告されたことないんだが
0810デフォルトの名無しさん
垢版 |
2019/06/04(火) 18:44:33.74ID:UGFk7I+U
> フリーかつDelphi10.3で使えるもの

バージョンアップについていけなくて大半の外部ツールやVCLは死亡中
有料ですら10.3に対応してないものが多い
0811デフォルトの名無しさん
垢版 |
2019/06/04(火) 22:27:56.89ID:2iRNEsdQ
Delphiって有志による外部ツールやVCLで成り立っている文化なのに
メーカーはなんでそのことを理解してないんだろうなあ
0812デフォルトの名無しさん
垢版 |
2019/06/05(水) 13:40:38.43ID:CzlXW3sk
バージョン表記自体もわかりにくいんだよな・・・
8からいきなり2005になったと思ったらDelphi 2010を最後にDelphi XEシリーズになってそのままいくのかと思ったらXE8でうちどめして今度はDelphi 10に
10から11〜とメジャーバージョン上がっていくかと思ったらマイナーバージョンがメジャーアップデート相当でなんか末尾に都市名つけはじめたし

Delphi 10 Seattle
Delphi 10.1 Berlin
Delphi 10.2 Tokyo
Delphi 10.3 Rio
0815デフォルトの名無しさん
垢版 |
2019/06/17(月) 18:50:44.65ID:mpJ2xeVG
RazorでVB.NET切られるかも知れないのね
まだDelphiの方がクロスプラットフォームで残るかも知れないね
0817デフォルトの名無しさん
垢版 |
2019/07/09(火) 19:56:00.97ID:tNo5ef94
質問、D6です
Clipboard関数
ANIS 半角アスキーテキスト(1行128バイト以下)をClipboard.AsTextで送らせます。
http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/faq/00058.htm
を参照しました。
uses節に 「Clipbrd」を追加
Clipboard.AsText := 'String変数';
これだと1秒ごとに送っているとすぐハングアップするので

AsTextより先にクリアさせるようにしてみました
Clipboard.Clear;
〜処理〜
Clipboard.AsText := 'String変数';

カウントさせてみると16回目ぐらいでハングアップしているようです。

上記の次ぎに
FormCreate内でClipboard.Create;
FormDestroy内最後にClipboard.Free;
を追加すると
79回目ぐらいで行ってハングアップします。

なにかスムーズにさせるコツみたいなのありますか?
0818デフォルトの名無しさん
垢版 |
2019/07/09(火) 20:16:45.77ID:cI7q65Pk
>>817
ハングアップ、って具体的にどうなってるの?
何かの勘違いじゃないの?

あとClipboard.CreateとClipboard.Freeは要らないと思う;
0819デフォルトの名無しさん
垢版 |
2019/07/09(火) 21:09:40.47ID:yicNQMua
>>817
ハングアップに対する回答ではないけど……
同じなのに入れ替える必要ないと思うので
if Clipboard.AsText <> 'String変数' then
入れた方がいいのでは?
0820デフォルトの名無しさん
垢版 |
2019/07/10(水) 08:29:24.86ID:SpAM0kMX
Lazarusで書き直してみるとかね。
D6ってユニコードAPIとかに対応してないと思うのでそれ関係じゃね?
0821デフォルトの名無しさん
垢版 |
2019/07/11(木) 16:01:27.35ID:s0u0iTmX
Excelが起動してるとクリップボードの扱いでトラブった覚えあるけど
そういう用途じゃないよね
0822デフォルトの名無しさん
垢版 |
2019/07/11(木) 18:36:12.29ID:T5uCpHez
>79回目ぐらいで行ってハングアップします。

ハングアップが具体的にどういう状況かわからんので考えるだけ無駄だと思う
0823デフォルトの名無しさん
垢版 |
2019/07/11(木) 21:28:58.78ID:LgH9l4aT
てかソース見ると単純にapi呼び出してるだけだから
それってDelphiの問題なのか?

テストプログラムを他のPCで実行してチェックしてみるとかした?
0824デフォルトの名無しさん
垢版 |
2019/07/12(金) 12:38:08.15ID:MoL5DIGp
Delphi6とDelphi7のclipbrd.pas比べてみたらFClipboardとかFClipboardWindowの解放処理が追加されてるな。ひどすw
0825817です
垢版 |
2019/07/12(金) 16:34:53.01ID:pm2ij2oX
各位レスありがとうございました
>>819 ソレ入れてみます。

ソースも晒そうかとしてましたが
どこでハングアップしてるのかダミー表示させてたどり着き

結局、
クリップボードの処理いれたら顕在化したという
別の部分がエンバグしていたオチでした orz

何かクリップボード使う作法でもあるのか?と思っていたのでQしたわけです。

AsTextより先にClipboard.Clear;
FormCreate内でClipboard.Create;
FormDestroy内最後にClipboard.Free;
結果これは不要でした。

以下↓レスを書きこむ直前に↑脱したので遅くなりました
>818さん
(SSDで入れ替えXPの開発環境デスクトップと実行パソコン XPノート&XPモバイルとは別です)
ハングアップの具体的
・作ってる物(送り側 高bps GPSデータ1秒更新)Clipboard.AsText := 'String変数'; のアプリが>817 の挙動で反応しなくなり操作を受け付けなくなる。
・受け手ソフト(昔のナビ地図ソフト、デフォCOM In 4800bps / オプ Clipboard を)は反映も止るが動作は続けている。
・作ってる物(実行ファイル)を終了させるには[タスクマネージャ]から[アプリケーション]でなく[プロセス]から該当イメージ名を選んで[プロセスの終了]を行わないと終わらなくなる。
0826デフォルトの名無しさん
垢版 |
2019/07/12(金) 20:44:56.01ID:Mt2Dum22
読み手に情報が伝わらない書き方だなあ
2、3年後に自分で読んでみるといいよ

まあ関心ないからどうでもいいけど
0828デフォルトの名無しさん
垢版 |
2019/07/14(日) 17:57:44.35ID:RQcMGpwy
>>827
他の環境(エディタ)だとちゃんと表示されるのに、って画像も提示してくれないと
そのフォントがそういうものなんだろ、としか思わない
0830デフォルトの名無しさん
垢版 |
2019/09/15(日) 07:02:41.90ID:2jRAVw8s
あるプロジェクトをまるごと新しいフォルダにコピーし
元のプロジェクトを温存したまま
新しいプロジェクトとして始めたいんですけど
IDEの機能として可能でしたっけ?
0833デフォルトの名無しさん
垢版 |
2019/09/21(土) 14:34:45.15ID:gfJmTKeO
勿論な事だけど絶対パスとか注意
0835デフォルトの名無しさん
垢版 |
2019/09/21(土) 15:50:53.96ID:ZIXe7ufx
あるプロジェクトをまるごと新しいフォルダにコピーし
元のプロジェクトを温存したまま
新しいプロジェクトとして始めてみろ
0836デフォルトの名無しさん
垢版 |
2019/09/21(土) 23:17:52.31ID:czYxzrrK
そうすると、新しいフォルダのソースをいじっているつもりが、元のソースを変更してしまう。
*.dskファイルは消すこと。
0838デフォルトの名無しさん
垢版 |
2019/09/22(日) 19:31:31.99ID:TKcBWrZD
丸っとコピーでプロジェクト系のファイルは修正すればいいよ
0839デフォルトの名無しさん
垢版 |
2019/09/22(日) 21:18:02.00ID:PEynJ+dQ
「プロジェクトのコピーを作成する」という機能が
発売20年以上経っても実装されてないとは信じられん
0840デフォルトの名無しさん
垢版 |
2019/09/23(月) 11:30:02.95ID:3qdqqJ07
pythonでスクリプトでも書けば一発
0843デフォルトの名無しさん
垢版 |
2019/09/25(水) 15:48:30.01ID:OW+fPjNy
いや、要るだろ普通に 別バージョンとか作りたいときに
*.dsk消せば済むことだけど標準機能であればそれに越したことはない

VSは使ったことないから知らん
0844デフォルトの名無しさん
垢版 |
2019/09/25(水) 16:33:22.57ID:VxOhHjIL
てか初心者がプロジェクトの別名保存を誤解して
大変なことになりそう

自分もそうだったけどね
0845デフォルトの名無しさん
垢版 |
2019/09/25(水) 22:08:28.34ID:cw/6a5eO
>>830
D6 D7 だけど、(絶対パスがなければ)できる。
普段はプロジェクトとソースを保存するときの「名前を付けて保存」で
デフォルトのセーブ先から別のドライブのフォルダに指定してる。
そうするとプロジェクト毎のソースがフォルダ別に整理できる。
同じ系統のプログラム作成はベース部分まで作っておいて保存、
新規フォルダにコピーでクローンしてスタート。

現プロジェクト中に「名前を付けて保存」で対象移動先にセーブしてみたらどうですか?
この際の注意点として、
プロジェクトの保存だけでは足りない、ソースなどの保存の2回保存作業が必要。
始動は移動先のプロジェクトを指定する。
その後は全保存の1回で使えてる。
試す前にコピーで戻せるようにはしておくことです。
0848デフォルトの名無しさん
垢版 |
2019/09/27(金) 07:51:52.34ID:rPuRGMpg
各ファイルの役割をきちんと覚えること。
それができなくてプログラマーとか笑うしかない。
変な自動機能があるとその基本を忘れがちになる。
0849デフォルトの名無しさん
垢版 |
2019/09/27(金) 08:17:47.22ID:KklKnzXk
デスクトップ保存なんてしないからdskなんてできたことないわ
便利なのかあれ
0851デフォルトの名無しさん
垢版 |
2019/09/27(金) 16:59:40.30ID:foryHhOm
今時使用言語は数個、開発環境も数種類さらにクラウドやら覚えることもりだくさん。

delphiしか触ってないなら、delphiの各ファイルの役割ぐらい覚えられるだろうが
0856848
垢版 |
2019/09/28(土) 08:02:41.58ID:xbQ4upm/
>>851
だからさ、覚えるとかそういうことじゃない。
各ファイルの役割をきちんと知らないと
プログラマー生命そのものがあやうくなるんだって。
話題の dsk ファイルのはまったく要らない子だってことを知るのもそのひとつ。
例えばオープンソースに dsk ファイル含めて公開しちゃうと
パス名から身バレしちゃったりするリスクもあるわけよ。
言語によらず、プログラマ名乗るならそういうのに敏感になれということ。
0857デフォルトの名無しさん
垢版 |
2019/09/28(土) 10:31:39.10ID:VM/fe2sP
MySQLやSQLiteをやろうとして挫折した人間です。

BDEというか、ParadoxのかわりにClientDatasetを使おうと思うんだけど、
設計時にDBコンポで表示できて便利だし、使ってる人いませんか?

.xmlファイルに書き出せるフィールドタイプに制限があるけど、それ以外は
TTableと同じように使える感じ
0859デフォルトの名無しさん
垢版 |
2019/09/28(土) 12:10:53.41ID:98P9Jt4Z
え?

delphiの各ファイルの役割をきちんと知らないと、プログラマー生命そのものが
危うくなっちゃうんですか???

そ、それはヤバイなぁ!
(か・・・片腹痛てぇ・・・中学生?)
0860デフォルトの名無しさん
垢版 |
2019/09/28(土) 12:42:06.93ID:lDFhrhsD
>>857
ふつうにカジュアルに使てるで

CDSは、ランタイムであるmidas.dllを同梱するか、MidasLibをどこかのソースファイルでusesに加えてあげる必要ありなので、TfdMemTableの方が楽なイメージ。
(古いシステムのお守りでCDS使うことの方が多いけど)
0862デフォルトの名無しさん
垢版 |
2019/09/28(土) 14:56:11.24ID:jekZgFRJ
>>856
趣味でマターリやってる日曜プログラマに
そこまでの責務を負わされたら趣味じゃなくなってしまうんですが
0864デフォルトの名無しさん
垢版 |
2019/09/28(土) 15:09:36.10ID:VM/fe2sP
midas.dllは無料版では同梱不可?
といっても買ったD6でやるので、だいじょうぶだけど。

静的リンクって、exe一体化もできるということ?
0866デフォルトの名無しさん
垢版 |
2019/09/28(土) 15:41:37.90ID:VM/fe2sP
D6でも出来ました
ちなみに .xml に保存だと、他で流用するのが楽かもしれないなあと
0868848
垢版 |
2019/09/29(日) 08:47:47.40ID:3jPOw8Yu
>>862
中学生か?とか、日曜プログラマなんで、とかで
現実逃避してんじゃないよまったく。
だから何をやってもだめなんだよおまえは。
少しはラグビー選手を見習えよ。
0872デフォルトの名無しさん
垢版 |
2019/09/29(日) 15:52:25.82ID:s9l7tbgO
>>868
いや日曜プログラマとか趣味の世界だから
現実逃避してもいいんだよ

趣味ってそういうもんでしょ
0873デフォルトの名無しさん
垢版 |
2019/09/29(日) 16:50:11.27ID:mdCYdpYZ
趣味ならどんなやり方でも何でもやればいい
仕事の規約みたいなの押し付けてくるの嫌い
ビジネス系と分けた方が良いんじゃないかと時折思うけど
ビジネス板ってそういうじゃないんだよね?
0874848
垢版 |
2019/09/30(月) 07:30:37.66ID:Xp0HZa25
超初心者用スレだった。
悪かった。今は反省している。
0876デフォルトの名無しさん
垢版 |
2019/10/24(木) 06:33:27.26ID:C+cXuXRZ
D6を使っている初心者なんですが、ローカルファイルで使うTClientDatasetでは
SQL文を使ってなにかすることってできないのでしょうか?
Filterプロパティとか、項目リンクでやる?
あと、トランザクションも無い?
0878デフォルトの名無しさん
垢版 |
2019/10/28(月) 16:38:14.34ID:1rTfV6b0
以前Delohi7 は 使ってました
今回 Win10にして DelphiXE3の中古を買いました

いきなりつまずいて dclusr.dpk のインストールができません
C:\Program Files (x86) 以下への書き込み権限がないのが理由のようです
Win10へのXE3のセットアップで こつのようなものが有りましたら教えてください
0880デフォルトの名無しさん
垢版 |
2019/10/28(月) 21:22:05.93ID:1rTfV6b0
ありがとうございます

正しいのかは解りませんが
bds.exe のプロパティを 「管理者権限で実行」 にしたら
とりあえず うまくいってます
0881デフォルトの名無しさん
垢版 |
2019/10/30(水) 08:11:55.65ID:W/c+8tx6
管理者権限が必要なフォルダにちゃんとファイルが入ったかな?
できればアンインストールしてから再度管理者権限でインストールし直した方がいいと思うよ
0882デフォルトの名無しさん
垢版 |
2019/11/05(火) 01:33:09.38ID:RmI3r0pW
CE10.3+Update2のライセンスがあと21日で切れると言われたんだけど
一旦アンインストールして10.3.2入れ直せばいいの?

10.4リリース前にライセンス切れ起こされても困る
0884デフォルトの名無しさん
垢版 |
2019/11/15(金) 16:49:00.43ID:NLCWqdB7
何年前のニュースよ
0886デフォルトの名無しさん
垢版 |
2019/11/15(金) 23:16:36.91ID:/yBuhf/V
でるほいでるほい。
0888デフォルトの名無しさん
垢版 |
2019/11/17(日) 12:24:40.53ID:oO0v8f+d
今Delphiを勉強しています。
使っている本は日経BPのカンタンDelphiプログラミングです

24ページの
SchFile := ChangeFileWxt(Application.Exename, '*.txt';
でどうしてもSchFileのところで赤波線が出てしまいます。

現在生きているDelphiでどう治せばいいのか調べていますが
これだけは出てきません。

ご存じの方教えていただけないでしょうか?
0892デフォルトの名無しさん
垢版 |
2019/11/17(日) 12:44:48.48ID:X9AhIAwA
優しすぎ
0900デフォルトの名無しさん
垢版 |
2019/11/25(月) 20:28:51.05ID:/TKXypzi
>>899
レジストリの仕様がWebとISOで(何故か)違うから一回インストールしたらずっとそっちを使わないと不具合出る
0902デフォルトの名無しさん
垢版 |
2019/11/26(火) 09:39:02.59ID:c3SEnPpX
VSのトラブルの方が多い
0911デフォルトの名無しさん
垢版 |
2019/12/05(木) 09:41:30.71ID:dexY8qQm
// 渡した引数をとにかくJsonObjectに変換する
class function TJsonUtil.ToJsonObject<T>(AValue: T): TJsonObject;
begin
// AValueをTValueに変換
var v := TValue.From<T>(AValue);
Result := TJsonObject.Create;
// todo: Resultにvをセットしたい
end;

ってどうやって実装すれば良いんでしょうか?
TConverter = class
FValue: TValue;
end;
を噛ませればObjectToJsonObjectできるんですができれば直接やりたいです

使用例
ToJsonObject(123) // int
ToJsonObject(RegexpResult) // record
ToJsonObject(Form1) // object
0912デフォルトの名無しさん
垢版 |
2019/12/15(日) 19:14:51.23ID:Erl1x9YI
Delphi 10.3.3 Community Edition インストールできたのですが
GetItから、Konopkaと Radiant Shapesを インストールしてみました。
この時のコンポーネントパレットの数は65です、
ここで、新規作成で Windows VCL アプリケーション作成すると
コンポーネントパレットの数は49に減少します。
減った分16にはRadiant ShapesやTeeChartLite等々が含まれます。

これは このバージョンには適合しないコンポーネント、ということなのでしょうか?
0913デフォルトの名無しさん
垢版 |
2019/12/15(日) 19:30:14.10ID:Erl1x9YI
訂正
×ここで、新規作成で Windows VCL アプリケーション作成すると
〇ここで、新規作成で Windows VCL アプリケーションを立ち上げると
0914912
垢版 |
2019/12/16(月) 12:36:00.90ID:ttWgB5Qq
解決
消えたのは マルチデバイス アプリ用のコンポーネントでした。

でもRadiant Shapesのコンポーネントアイコンが全部同じなのを何とかしてほしい。
0916デフォルトの名無しさん
垢版 |
2019/12/21(土) 16:34:19.99ID:7JUwe78b
「ライセンス有効期限切れの事前通知」ダイアログが出たので
「新しいCommnunity Editionライセンスを要求」をクリックしたのですが
開いたページにそれらしい項目が見当たりません。
どうすればよいのでしょうか。
0917デフォルトの名無しさん
垢版 |
2019/12/21(土) 16:41:43.91ID:7JUwe78b
すいません、解決しました。

DL時にメールが来ていてそこにシリアルがついていましたので
「ライセンスの操作」→「登録」でこのシリアルを入力して解決しました。
0918デフォルトの名無しさん
垢版 |
2019/12/24(火) 21:17:41.79ID:qlVCJ4TF
TeeChart をいろいろ調べてるんですが、例えば .NET の Chart コントロールにある
ChartAreas コレクションみたいにグラフを増やすことはできない?
素直に複数の TeeChart を貼るしかないのかな。
0928デフォルトの名無しさん
垢版 |
2020/01/07(火) 06:13:17.60ID:ysLsWKuo
>IDE Fix Pack って、ほんとに効果ある?
たぶん無い。少なくとも俺の環境では効果がない。
けど悪くもならないのでまぁお守り扱いで使っている。
0929デフォルトの名無しさん
垢版 |
2020/01/07(火) 21:35:30.43ID:AWOylPKB
型推論のインライン変数書くと、ビルドは通るのにエディタではエラー表示になる。なんでや。
0930デフォルトの名無しさん
垢版 |
2020/01/07(火) 22:22:30.36ID:Bkg1oNr5
>>929
エディタのエラーインサイト(だったかな?)が対応していないから
エラーインサイトを切ればエラー表示はされなくなるけどいつ直るんだろうね?
0932デフォルトの名無しさん
垢版 |
2020/01/08(水) 21:19:31.57ID:wLTYkb+a
>>930
マジか。そんな状態でリリースするとは、なかなかやりおる。
直るまでインライン変数とかはやめておこう。
0933デフォルトの名無しさん
垢版 |
2020/01/08(水) 22:21:01.82ID:MEH3hyXq
>>932
10.3のときにインライン変数が実装されたのに、10.3Release1、Release2、Release3ときて
いっこうに直ってないからな。 10.4で直るかどうかも危ぶまれる
0935デフォルトの名無しさん
垢版 |
2020/01/28(火) 17:15:20.90ID:jA3HtLr3
>CarsyBdeって使ってる人いる?めっちゃ怪しそうなんやが
インストーラーにマルウェアもどきが入っているので、ファイルを展開して自分でインストールするべき。
あと、日本語関係ドライバが入っていないから日本語ソートはできないよ
0937デフォルトの名無しさん
垢版 |
2020/01/31(金) 10:44:06.52ID:Y9q94Xhy
メモリリークを内蔵のFastMMでチェックしたらUnicodeStringやUnknownでリーク発生というよく分からない表示がされたので、
FastMM4のフルデバッグモードでチェックしたところこんなログが出ましたが、ソースのどこでリークしてるのかさっぱり不明で困ってます
どのpasファイルの何行目とか出ない場合のリークはどこを修正したらよいのでしょうか?

A memory block has been leaked. The size is: 36

This block was allocated by thread 0x51BC, and the stack trace (return addresses) at the time was:
4070F2
40C0EE
708321 [Unknown function at TMethodImplementationIntercept]
77276DF3 [Unknown function at GetThreadDesktop]
77276E44 [Unknown function at GetThreadDesktop]
77BFF8FA [ZwCallbackReturn]
77276E57 [Unknown function at GetThreadDesktop]
77BF011A [KiUserCallbackDispatcher]
77280E28 [ShowWindow]
62A6A9 [Unknown function at TMethodImplementationIntercept]
62A81C [Unknown function at TMethodImplementationIntercept]

The block is currently used for an object of class: Unknown
0938デフォルトの名無しさん
垢版 |
2020/02/03(月) 09:42:44.84ID:ZUQl5IjM
サブスクリプションって更新してる?
社内用プログラムの修正でたまに使う程度なので
年10万はちょっとなぁ・・・
0939デフォルトの名無しさん
垢版 |
2020/02/04(火) 07:28:16.35ID:6U67LbmC
TMS のWeb Coreってのを最近見つけた。
Intrawebと同じくpascal→JavaScriptみたいなんだけどかなり完成度は高い
気軽にDelphi+PascalベースでWebアプリを創りたいときにはいいよ、コンポーネントも自作できるみたいだし

サブスクリプションは入ってませんよ
新規機能を必要としない、ちょっとした改修メインならあまり必要はないんじゃないかな?
法人ベースなら10万ははした金だけど、生きたお金とも言えないんで払わないようにしてる
0940デフォルトの名無しさん
垢版 |
2020/02/04(火) 20:30:44.36ID:u9fAPblT
大政翼賛イベント、終わり。

斜陽の会社と製品買うのはいいけど、買うだけで統合とかシナジーとかできないよなぁ。
元技術者たちが全員いなくなった sencha なんかどうするきだろう
0941デフォルトの名無しさん
垢版 |
2020/02/05(水) 20:51:12.54ID:gyQe6DwW
>>937
自分もちょっとメモリーリークで悩んでるんだけど
delphi versionとかvcl/fmx とか少し情報もらえる?
0942デフォルトの名無しさん
垢版 |
2020/02/05(水) 21:24:09.71ID:UTgGnF3M
>>941
Delphi10.3.3でVCLアプリです

手がかり求めて海外のフォーラム情報を調べたら.MAPまたは.TDSファイルを作成するとより詳しく調べられるらしいです
0943デフォルトの名無しさん
垢版 |
2020/02/05(水) 21:36:45.32ID:UTgGnF3M
というわけでプロジェクトのオプションのコンパイル→リンカでマップやTDSを有効にするとより詳しく調べられました
0944デフォルトの名無しさん
垢版 |
2020/02/06(木) 10:26:40.35ID:wF1qF0nM
D7で作ったプログラムをD10に移行中ですがDBGRIDのカラムタイトルの色が変更できません
プロパティで何を指定しても白のままです
どうしたらいいのでしょうか
0947デフォルトの名無しさん
垢版 |
2020/02/13(木) 06:28:37.56ID:vBflwVQp
D6からアップデートしてないユーザーなんだけど、いろいろ古すぎて苦しい。
C#は多少いじれるようになった。
RDBはいじらない、ネットから情報を取ってきたり、お絵かきプログラム中心。

新しいプロジェクトを始めるのに C#と、Tokyo? Berlin?やりだすのとどっちが楽だろうか
0948デフォルトの名無しさん
垢版 |
2020/02/13(木) 07:53:08.45ID:AuZ/W2H1
全く新しくていいなら C# だな。
Delphi は時代に追従しきれていない感じ。がんばってはいるけど。

自分も遊びでは Delphi 使ってる。
0950デフォルトの名無しさん
垢版 |
2020/02/13(木) 22:02:38.27ID:nW/OuvCI
FreePascalの次のリリースはジェネリクスがDelphi互換になってますますDelphiに近くなるよ
去年中にリリースと言われて現在もまだリリースされてないけど
0953デフォルトの名無しさん
垢版 |
2020/02/14(金) 12:07:08.02ID:a5iC3cHy
C#って見かけは小さいけど
環境は馬鹿みたいにデカすぎる
0956デフォルトの名無しさん
垢版 |
2020/02/15(土) 09:46:15.30ID:lW8gbEk5
Indy10のhttpsで使うdllが最新版に入れ替わっちゃうとおかしくなる不具合ではまり。
2018年ごろのやつに差換えたら動くようになった。
TLS1.2まではいけるからしばらくは持ちこたえられそう
0957デフォルトの名無しさん
垢版 |
2020/02/15(土) 10:25:19.00ID:abNW28Cg
>>956
Delphiのバージョンがいくつか、何に使ってるかわからんけどもTNetHttp系に差し替えを検討したら?
0958デフォルトの名無しさん
垢版 |
2020/02/15(土) 11:23:33.67ID:4O69sBWU
>>956
それって既知の問題としてどこかに書かれてる?
公開してるアプリでは問題は起こってないけど
何らかの条件があるんだろうか?
0963デフォルトの名無しさん
垢版 |
2020/02/16(日) 10:30:31.87ID:u9eNlzbF
どの「コミュニティ」に行っても、同じ人たちしかいないのって、よーするに人材枯渇かね?
0965デフォルトの名無しさん
垢版 |
2020/02/18(火) 17:22:10.12ID:Fy87CGLW
>>956
IOHandler.SSLOptions.Method := sslvSSLv23;
で、dllが持ってる強度の高い方から順に試すんじゃなかったっけ
関係なかったらゴメン
0966デフォルトの名無しさん
垢版 |
2020/02/22(土) 07:52:44.80ID:jMTU79N4
quickreporteって昔みたく標準でついてないのね
皆さん印刷とかどうやってるの
0970◆JAVA/drQNg
垢版 |
2020/03/01(日) 18:42:38.51ID:zM73AfEv
https://www.hellowork.mhlw.go.jp/kensaku/GECA110010.do?screenId=GECA110010&;action=dispDetailBtn&kJNo=1301023906401&kJKbn=1&jGSHNo=Yl0LGUJlwstE%2F%2BqkjXcR2Q%3D%3D&fullPart=1&iNFTeikyoRiyoDtiID=&kSNo=&newArrived=&tatZngy=1&shogaiKbn=0
職種
Delphiプログラマー(PG)
仕事内容
(業務内容)以下の開発を行います。

(例)
・業務パッケージ製品の開発
・業務システム開発
・C/S系システム開発

OS:windows
DB:oracle

※Delphiの知識
0972デフォルトの名無しさん
垢版 |
2020/03/02(月) 11:22:02.02ID:glnmwhpK
東京は人が多いだけで済みにくい
感染しやすい
土地高い
物価高い
タクシー止まらない
0973デフォルトの名無しさん
垢版 |
2020/03/03(火) 20:00:31.20ID:ottIIFYY
>タクシー止まらない
雨の日とかは別だけどこれはないんじゃないか
むしろ地方のほうが流しとかないから駅前か呼び出しだろ
0977デフォルトの名無しさん
垢版 |
2020/03/05(木) 20:49:33.10ID:qVbpyIXi
FMXでDebugHookを使うと
「特定のプラットフォームに固有」と出るんだけど
特定のプラットフォームってWindows以外でどれ?

検索するとMacOSではダメだったって
0978デフォルトの名無しさん
垢版 |
2020/03/06(金) 23:16:35.43ID:i1sIlXFK
質問です。Delphi 2007からアップデートしなくても、新しい技術を使っていなければ、
たいていWindows 10できちんと動きますよね?
(2009以降の文字列まわりが理解できていません)
Delphi 2007からアップデートする場合、Delphi 2009にしてから、新しいものにした方がいいんでしたっけ?
それとも直接10.3とかに読み込んでもいいんでしたっけ?
0979デフォルトの名無しさん
垢版 |
2020/03/07(土) 00:48:31.04ID:GTOLdhcV
Windows10なら全部同じと思うような馬鹿は死ねよ
0983978
垢版 |
2020/03/07(土) 10:30:17.09ID:u9TLT7km
みなさんありがとうございます。
私の範囲では使えそうなので安心しました。さすがDelphiですね。
0985デフォルトの名無しさん
垢版 |
2020/03/07(土) 12:32:37.05ID:3ScJp+cW
新しい技術つかってないから動かない場合もあるだろうけどねAPIとか
何もしなくても動くなんてHelloWorldのサンプルぐらいじゃないか
0986デフォルトの名無しさん
垢版 |
2020/03/07(土) 13:40:58.34ID:mdASUqdC
>>983
馬鹿は死ね
0987デフォルトの名無しさん
垢版 |
2020/03/07(土) 15:43:00.80ID:vg1Dq2A8
app tetheringがまったく動かないんだが
付属やネット上のサンプルのどれもダメだった
firwall関係かねぇ

ただWidowsのクリップボードを監視して
macのクリップボードにコピーしたいだけなんだが
0988デフォルトの名無しさん
垢版 |
2020/03/07(土) 17:09:27.82ID:u9TLT7km
>>984 昔からDelphiはWindowsであれば環境によらず動いてくれるという印象があったもので。。。
>>986 たしかに私はDelphi 2009以降の文字列の扱いを覚えようとしないバカかもしれません。
私だってこれからたくさんDelphi使うなら覚えますが、昔のプログラムのメンテしか使う予定がないですし2007までのライセンスしかないので。
0989デフォルトの名無しさん
垢版 |
2020/03/07(土) 17:34:39.51ID:u9TLT7km
10.3のCommunity Editionのライセンス条項を見たら、他の収入と合わせて$5000を超えてたら除外されるっていう理解で正しいですか?
さすがに他の収入と合わせて$5000を超えてなかったら食べていけません。
数年前のCommunity Editionのときはもっとゆるかった記憶があります。
0990デフォルトの名無しさん
垢版 |
2020/03/07(土) 18:37:25.19ID:RZgTMQsN
Embarcaderoからメール来た
C++2017の電子本が無料らしい
0991デフォルトの名無しさん
垢版 |
2020/03/07(土) 19:42:10.94ID:FYTe5U5h
>>988
そうじゃない
Windows10と一括りにしてることを馬鹿だと指摘してる
0992デフォルトの名無しさん
垢版 |
2020/03/08(日) 02:41:14.63ID:uqevG+QX
>>991
元の978呼んだが、そこに引っかかるとはww
しかも質問スレで質問しただけなのに何度も「死ね」はないだろ
0993デフォルトの名無しさん
垢版 |
2020/03/08(日) 11:08:58.55ID:XCaBTWjM
usesにDGCarad9ってのがあって
DirectX9使えるようにした個人の奴だけどサイトが無かった・・・
使用許諾にもメルアド登録済みになってるしパスワードわからんし
やっぱりいろいろめんどくさくて使えねー
0994デフォルトの名無しさん
垢版 |
2020/03/08(日) 14:04:12.00ID:Ks5q/7ma
まぁ日本じゃMVPがあのレベルのソフトを公開して悦に入ってるだけだからな
まったく恥ずかしくないのかと思うよ・・・
0996デフォルトの名無しさん
垢版 |
2020/03/10(火) 08:16:12.87ID:KnD7ZfFa
>>989
英語のライセンス条項を見たが、その理解で正しいと思う。
前のCommunity EditionではWin32限定でそのときはもっとライセンス条項がゆるかったが、今は機能限定が少しだけになって、使える人の範囲が狭くなった。
学生や定年後の老人や専業主婦が対象といったところか。
0997デフォルトの名無しさん
垢版 |
2020/03/10(火) 21:13:43.44ID:iMwptZU/
まぁ、彼はちょっと違うの事実だな。最近ではクソアプリ?のadvent calenderで一番手ではりきって一人でニヤニヤしたんだろうな...
0998デフォルトの名無しさん
垢版 |
2020/03/11(水) 01:04:28.82ID:zwwCe0yv
なんで1000盗り合戦とか意味の無いことで盛り上がってたのかね
1000デフォルトの名無しさん
垢版 |
2020/03/11(水) 05:24:58.54ID:e34vXhFj
将来性はないかもしれないがwindows上でならまだまだ使える言語だね
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1244日 16時間 3分 4秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況