板検索:
くだすれDelphi(超初心者用)その57 (346)
まとめビュー
1
デフォルトの名無しさん[]   投稿日:2016/10/13 13:21:54  ID:7i5E+q2+.net(2)
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)のライセンス取得とダウンロードが可能。(アカデミック不可)
http://www.embarcadero.com/jp/products/delphi

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

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

<前スレ>
くだすれDelphi(超初心者用)その56

<過去スレ>
DelWiki (Delphi 関連の過去スレッド)※行方不明
http://delwiki.info/?


2
デフォルトの名無しさん[sage]   投稿日:2016/10/13 13:27:38  ID:rxboVzG1.net
クソスレ乙

3
デフォルトの名無しさん[sage]   投稿日:2016/10/13 13:43:32  ID:7i5E+q2+.net(2)
無料版の名称は Delphi 10 Starter Edition に変わっていたわ。

4
デフォルトの名無しさん[sage]   投稿日:2016/10/15 06:07:00  ID:b/Ix7y8Q.net
stringのポインタを引数で使う時って何で@straaa[1]みたいに[1]をつけるの?
コメント1件

5
デフォルトの名無しさん[sage]   投稿日:2016/10/15 06:41:31  ID:sr5ZMjEJ.net
PChar(straaa) じゃだめなん?
Hint: 空文字列の扱い
コメント1件

6
デフォルトの名無しさん[sage]   投稿日:2016/10/15 08:01:16  ID:Wck8f7HF.net
>4
今はAnsiStringなら>5でOK。
ShortStringだとstraaaa[0]に長さが入ってるので
@straaa だけだと PChar と互換性ないから

7
デフォルトの名無しさん[sage]   投稿日:2016/10/17 13:18:21  ID:WrWXzKVd.net
>5,6
ありがとう。
調べるワードありがとう

8
デフォルトの名無しさん[sage]   投稿日:2016/10/17 22:03:38  ID:u9f1SlFV.net
有料版買えばandroidで動くプログラムをDelphiで作れるの?
Indyみたいなhttpコンポーネントって使えるのだろうか?

9
デフォルトの名無しさん[sage]   投稿日:2016/10/17 22:24:59  ID:DkHWfezI.net(2)
>有料版買えばandroidで動くプログラムをDelphiで作れるの?
モバイルパック?だかなんだかを買わないといけないんじゃねぇか?
Starterでモバイルパックつかえなきゃ、Pro版も買わないといけんと。
>Indyみたいなhttpコンポーネントって使えるのだろうか?
Indy使わなくても最新のにはhttpのクライアントライブラリ含まれてるからそれ使えば?

10
デフォルトの名無しさん[sage]   投稿日:2016/10/17 22:41:43  ID:PmRH05Ee.net
cとかc++のenumって、Delphiの列挙型ということでいい?
集合とは違うんだよね?

11
デフォルトの名無しさん[sage]   投稿日:2016/10/17 22:42:37  ID:DkHWfezI.net(2)
そりゃ、Delphiの列挙の方でしょ

12
デフォルトの名無しさん[sage]   投稿日:2016/10/17 23:10:18  ID:6Picysvx.net
ありがとう


13
デフォルトの名無しさん[sage]   投稿日:2016/10/19 10:47:08  ID:4tgALgAo.net
ライトみたいに光る質感のコンポってありますか?

14
デフォルトの名無しさん[sage]   投稿日:2016/10/22 10:30:31  ID:VBuj+teK.net(3)
tabsheetの色を変えられるようにしたんだけど、clBtnFaceを指定しても白くなるんですけど何故でしょうか?
他の色は反映されます。
Delphi10.1Berlinを使っています。

15
デフォルトの名無しさん[sage]   投稿日:2016/10/22 10:35:27  ID:VBuj+teK.net(3)
バカみたいな質問をしてしまいました。
clBtnFace以外は反映されるのでプログラム的には間違いはないと思います。
clBtnFaceだけ弾かれる理由ってあるんでしょうか?
コメント2件

16
デフォルトの名無しさん[sage]   投稿日:2016/10/22 10:58:32  ID:OrToTiIL.net
>15
テーマが関係してるんじゃなかったっけ

17
デフォルトの名無しさん[sage]   投稿日:2016/10/22 11:01:18  ID:AS0AO2zF.net
>15
勘だけと、システムカラーだからOSのテーマカラーが優先されて使われてるんじゃないのかな?

18
デフォルトの名無しさん[sage]   投稿日:2016/10/22 11:34:02  ID:VBuj+teK.net(3)
ありがとうございます。
と言ってもどうしていいか分からないのでパネル貼ります。w

19
デフォルトの名無しさん[sage]   投稿日:2016/10/23 10:04:04  ID:FT6Wwhog.net
昔Del7で作ったExcelを操作するプログラムを、Berlinで作り直したいんだけど今だとFirerDacを使うんですか?
取り敢えずやりたいことは、xlsxをcsvに変換したいだけなので簡単な方法があったら教えて下さい。

20
デフォルトの名無しさん[sage]   投稿日:2016/10/23 10:46:21  ID:CGzeXgZh.net(2)

21
デフォルトの名無しさん[sage]   投稿日:2016/10/23 13:40:03  ID:MP5NXD0l.net(3)
今まで 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;
コメント2件

22
デフォルトの名無しさん[sage]   投稿日:2016/10/23 14:13:58  ID:gusT9oXO.net
>21
propertyのGridLinesじゃないのか?
Delphi 10.1動かしてないから適当やけどw
コメント1件

23
デフォルトの名無しさん[sage]   投稿日:2016/10/23 15:14:16  ID:MP5NXD0l.net(3)
>22
GridLines は False です。
試しに True にしても同じように 2pixel の区切り線が出ます。
他の人の環境では出ないのでしょうか?

24
デフォルトの名無しさん[sage]   投稿日:2016/10/23 15:28:26  ID:MP5NXD0l.net(3)

25
デフォルトの名無しさん[sage]   投稿日:2016/10/23 16:44:38  ID:kZkGsd/R.net(2)
ちょっと教えてください

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

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

似た質問はあったんですが、回答がない...
http://okwave.jp/qa/q1942763.html

26
デフォルトの名無しさん[sage]   投稿日:2016/10/23 16:54:42  ID:CGzeXgZh.net(2)
http://www.chrysocome.net/download
dd のソース見れ

27
デフォルトの名無しさん[sage]   投稿日:2016/10/23 18:18:46  ID:j9LNItD5.net
cd-romだとWin32_CDROMDriveが使える

28
デフォルトの名無しさん[sage]   投稿日:2016/10/23 20:00:40  ID:kZkGsd/R.net(2)
ありがとうございました。
DelphiでWin32_CDROMDriveの使用例がありました。

29
デフォルトの名無しさん[sage]   投稿日:2016/10/24 02:18:05  ID:Pol9g+IM.net
>21 >24
10.1 Starter で再現したことだけ報告しておきます。

30
19[sage]   投稿日:2016/10/24 11:23:45  ID:V1HEhUaE.net(2)
>20
ありがとうございます。

delphiは久々なのでググりまくってる最中なんですが
Excelのコンポーネントとか有ったと思うんだけど今は無くなった?
悩んでてもしょうがないのでXRAYさんのサイト見ながらやってみます。
コメント1件

31
デフォルトの名無しさん[sage]   投稿日:2016/10/24 11:46:44  ID:/o9Bzib3.net
>30
Excelのタイプライブラリ取り込めばおk

もしくはFlexcel買うか
コメント1件

32
19[sage]   投稿日:2016/10/24 12:20:49  ID:V1HEhUaE.net(2)
>31
>Excelのタイプライブラリ取り込めばおk
おぉ、そんなのありましたね。
一気に進めそうです。
ありがとうございます。

33
19[sage]   投稿日:2016/10/25 23:13:37  ID:PC8b9+iO.net
oleコンテナだけでExcelのブックを表示できました。
昔とは違うんですね。
ただ、Excel本体も立ち上がってくるのですが、Excelは立ち上げずにブックを弄るにはどうしたらいいでしょうか?

34
デフォルトの名無しさん[sage]   投稿日:2016/10/25 23:23:00  ID:9oSj5Tvc.net(2)
Visisbleプロパティみたいのなかったっけ?
コメント1件

35
デフォルトの名無しさん[sage]   投稿日:2016/10/25 23:25:41  ID:9oSj5Tvc.net(2)
s多すぎた

36
19[sage]   投稿日:2016/10/26 00:18:32  ID:5VsTRTiY.net
>34
ありがとうございます。
試してみます。
コメント1件

37
デフォルトの名無しさん[sage]   投稿日:2016/10/26 01:12:16  ID:DnQDMwJL.net
>36
当然だけどExcel入ってない環境では動かないからね

38
デフォルトの名無しさん[sage]   投稿日:2016/10/26 12:57:47  ID:6SHMskVi.net
>Excelは立ち上げずに

って書いてあるのにVisible薦める香具師ってなんなの

39
デフォルトの名無しさん[sage]   投稿日:2016/10/26 12:59:55  ID:yTRH6Fig.net
立ち上げずにコンテナになれるわけないことを暗に示しただけやない?

40
デフォルトの名無しさん[sage]   投稿日:2016/10/28 04:03:53  ID:Jy3/QgVN.net
新しいDelpiのフォームの位置をドラッグで移動できないな???

どうして?
コメント1件

41
デフォルトの名無しさん[sage]   投稿日:2016/10/30 03:41:18  ID:5WyC57Kn.net
>40
「デフォルトレイアウト」から「クラシック(ドッキングなし)」に変えたら
Delphi7のような画面レイアウトになるけど、お望みの回答かどうかはわからない。

42
デフォルトの名無しさん[sage]   投稿日:2016/10/30 08:46:34  ID:GMyWViLu.net
丸が幾つか描かれているbitmapがあるとして特定の丸の色を変えたいと思い、
丸の上にshapeの丸を置いて対応しました。
このbitmap上の丸とshapeをきっちり対応させる方法ってないですか?
bitmapの大きさ変えたりスクロールさせた時にshapeも追従させたいのですが。
コメント1件

43
デフォルトの名無しさん[sage]   投稿日:2016/10/30 12:44:13  ID:+fHRwEF9.net(2)
>42
丸を違う色でを塗りつぶすか
違う色で丸を再描画するとかダメ?
コメント1件

44
42[sage]   投稿日:2016/10/30 13:14:20  ID:VzVr3D3G.net
>43
説明不足ですみません。
ビットマップの画像ファイルを貼り付けた状態と言うことでした。
コメント1件

45
デフォルトの名無しさん[sage]   投稿日:2016/10/30 15:20:00  ID:+fHRwEF9.net(2)
>44
じゃ、ビットマップ内の円を直接塗りつぶすのがいいよ?

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

Shapeを使う必然性があるんだったら別だけどね
コメント1件

46
42[sage]   投稿日:2016/10/31 20:22:37  ID:I4hSi9OL.net
>45
ありがとう!!
出来ました、

47
デフォルトの名無しさん[sage]   投稿日:2016/11/01 14:44:48  ID:aPCKG/Vh.net
Delphi10のインストーラーが一瞬立ち上がってすぐ終了してしまうのですが原因がわかる方いませんか?
サポートサイトを見てもレジストリを触る事しか見当たりません。
どなたかよろしくお願いします。

48
デフォルトの名無しさん[sage]   投稿日:2016/11/01 15:13:15  ID:p35VuLBk.net
パソコンが壊れとる

49
デフォルトの名無しさん[sage]   投稿日:2016/11/01 17:44:57  ID:wawt2m9n.net
まずはdependencywalkerとか
あとウィルスチェックソフト止めるとか
ファイアウォール開いてみるとか

50
デフォルトの名無しさん[sage]   投稿日:2016/11/01 18:11:10  ID:MBBNR+y9.net
お客様にエスパーの方はいらっしゃりませんかー(棒

51
デフォルトの名無しさん[sage]   投稿日:2016/11/01 18:13:18  ID:by7jiIas.net
馬鹿には無理

52
デフォルトの名無しさん[sage]   投稿日:2016/11/03 13:26:56  ID:2mKhPyDG.net(4)
符号付きのダブルワードとか言うデータを扱う事になったんだけど、普通に数値が相手から送られて来ると思ったら
16Bit毎に分かれて、しかも、-だと65535とか-が付かない値が送られてくるんだけどプロの人はどうやってるの?

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

Delphiって16進数とかに変換すると文字列になるでしょ?
文字列をどうやれば計算に使えるの?

53
デフォルトの名無しさん[sage]   投稿日:2016/11/03 13:32:53  ID:6FeMk1RE.net(2)
16bitでわかれるって
65535,65535
っていう意味?
だったら
0xffff,0xffff
で1dwordだから
リトルエンディアンなら
(dword)((a[0]<<16) | a[1])
で済むはず

54
デフォルトの名無しさん[sage]   投稿日:2016/11/03 13:33:58  ID:6FeMk1RE.net(2)
ああ逆ω
(dword)((a[1]<<16) | a[0])

55
デフォルトの名無しさん[sage]   投稿日:2016/11/03 13:41:15  ID:2mKhPyDG.net(4)
早速、ありがとうございます!!
式の意味がわからないw
調べ倒します。

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

また、分からないことがあったら宜しくお願いします。

56
デフォルトの名無しさん[sage]   投稿日:2016/11/03 16:09:43  ID:nO9s2Og+.net
SmallInt変数に代入すればいいんじゃない?

var
si: SmallInt;

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

...こう云うことじゃないの?

57
デフォルトの名無しさん[]   投稿日:2016/11/03 16:20:54  ID:KRq5Cur1.net(2)
こういうあほと仕事したくないな

58
53[sage]   投稿日:2016/11/03 18:24:42  ID:2mKhPyDG.net(4)
やってみたらあっさりできました。
右や左にシフトさせるだけで、マイナスも簡単に処理できました。
2の補数とかそういうことはDelphiが内部で勝手にやってくれるという認識でOK?
10進数のまま処理ができるのは他の言語でも一緒?

59
デフォルトの名無しさん[sage]   投稿日:2016/11/03 18:32:31  ID:Vzj8eJlj.net
>Delphiが内部で勝手にやってくれる

その認識はおかしい

「Delphiは何もしない」が正しい
コメント1件

60
53[sage]   投稿日:2016/11/03 19:10:20  ID:2mKhPyDG.net(4)
>59
そうなんですか?
プログラムとして読み取る時は上位の16bitを
a:=a shl 16;
で左にシフトさせて
c:=a + b;
で、cにダブルワードの数値がマイナス値も含めて正しく入ったのでdelphiが勝手に処理してるのかなと思いました。
プログラムとしてはこれでOKですか?
コメント1件

61
デフォルトの名無しさん[sage]   投稿日:2016/11/03 19:18:10  ID:KRq5Cur1.net(2)
+ b でも良いかも知れないが or b の方が良くね

62
デフォルトの名無しさん[sage]   投稿日:2016/11/03 19:21:51  ID:cIZsGa0I.net
符号付きのDWORDって4バイトの整数とは違うの?

63
デフォルトの名無しさん[sage]   投稿日:2016/11/03 19:44:23  ID:ieIIzjtH.net
DWORDというかWORDが符号なし整数値やろ
BYTEはunsigned char
WORDはunsigned short
DWORDはunsigned long
UINTはunsigned int
いずれも符号なし整数

64
デフォルトの名無しさん[sage]   投稿日:2016/11/03 20:02:43  ID:URbOgVYK.net
DWORDは符号なしだけど
送られてくるデータはDWORDだけど符号を扱うっつってんだから
普通に中身はintだろ
intにキャストすれば万事OK

65
デフォルトの名無しさん[sage]   投稿日:2016/11/03 21:13:18  ID:iYejUQc8.net
曖昧すぎるんだ

>普通に数値が相手から送られて来ると思ったら
>16Bit毎に分かれて、しかも、-だと65535とか-が付かない値が送られてくるんだけど

66
デフォルトの名無しさん[]   投稿日:2016/11/05 12:52:45  ID:edcXpxnV.net
>60
同じ数値型変数でも a の型を変えてビット数や符号付きかどうかが変わると結果も変わる。
コメント1件

67
53[sage]   投稿日:2016/11/06 00:10:46  ID:EC/gao/y.net
>66
仰る意味が分かりました。
符号付き16BitのデータをLongに入れるとマイナスが判断されず16Bitのプラス値が入る。
Smallintに入れるとマイナスを認識する。
と言う事で、扱うデータにあった型の変数に代入する、
もしくはデータの符号の位置が変数の左端に入るように
シフトさせるとプラマイを勝手に判断してくれると言う事で良いでしょか?
コメント1件

68
デフォルトの名無しさん[]   投稿日:2016/11/06 04:28:48  ID:nNdE2u+1.net
>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になるまで繰り返すが、これだと
逆順になるので再帰処理にするかバッファに入れておいて逆順に出すか少しテクニックが必要。
コメント1件

69
デフォルトの名無しさん[sage]   投稿日:2016/11/06 09:03:20  ID:j4rRKkND.net
コンピューター工学
ASM
2の補数
・・・・いろいろ学ばないと分からないかも
一番いいのは痛い目食わないと覚えられないかも
趣味なら?

70
デフォルトの名無しさん[sage]   投稿日:2016/11/06 09:31:18  ID:rGVVvSQ9.net
>68
結果がたまたま合ってるが過程がめちゃくちゃの典型的な悪文

71
デフォルトの名無しさん[]   投稿日:2016/11/07 02:58:59  ID:k8MgRjfU.net
じゃあおまえが書けよ

72
デフォルトの名無しさん[sage]   投稿日:2016/11/07 07:51:58  ID:MiZ0k8Uw.net
わしもそう思う
しかし、理解すべきは、型の互換性や代入の互換性についての処理系の決め事であって、
動作原理やらは趣味の領域。

73
デフォルトの名無しさん[sage]   投稿日:2016/11/07 11:31:55  ID:VvMqHJ76.net
変数の宣言で符号有り、無しのどちらの宣言しても
キャストでどうとでもなるから、くよくよするな
var
i : LongInt;

キャストで
LongWord(i)
出来るから

74
デフォルトの名無しさん[sage]   投稿日:2016/11/07 16:11:14  ID:iTWgrf69.net
スレチ

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


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

よろしくお願いします

76
デフォルトの名無しさん[sage]   投稿日:2016/11/09 16:14:12  ID:i2gLSeC7.net(2)
済みませんもう一点ありました
グループではなくページの小計を印刷したいのですが、ページフッターだと明細行と離れて印刷されてしまいます
何かいい方法は無いでしょうか

77
デフォルトの名無しさん[sage]   投稿日:2016/11/18 05:32:26  ID:mITFokzs.net(2)
仮想のイーサネットインターフェース(NIC)の作り方って知りませんか?
linuxだと簡単にできるらしいけど、windowsでできるコンポとかコマンドとかないのかな?

78
デフォルトの名無しさん[]   投稿日:2016/11/18 16:27:06  ID:vbdBJsNN.net
softetherみたいなの?

79
デフォルトの名無しさん[sage]   投稿日:2016/11/18 17:38:12  ID:mITFokzs.net(2)
そういうのいじってみたい
仮想NICというかループバックていうのはMS純正でできるのが分かった

80
デフォルトの名無しさん[sage]   投稿日:2016/11/18 19:29:30  ID:e+81aozX.net
ソース公開されてるだろ

81
デフォルトの名無しさん[sage]   投稿日:2016/11/20 12:26:46  ID:n8KZIrdr.net
https://www.embarcadero.com/products/rad-studio/features
RAD Studioの体験版ってDelphi XE2と共存できる?
体験版試して環境壊したら面倒だから躊躇してる
買うなら完全上書きで移行でも良いんだけど
xamarinみたいにハマるならやめたい
コメント1件

82
デフォルトの名無しさん[sage]   投稿日:2016/11/20 12:33:25  ID:omU4WGo2.net
canvasやcaptionを持ってないコントロール上に文字描こうと思ったら、LABELを被せるのが一番簡単?

83
デフォルトの名無しさん[sage]   投稿日:2016/11/20 12:37:35  ID:sLB4mNYr.net
そりゃ、ポトペタしてプロパティ変更するだけだから、10秒で終わるし。

84
デフォルトの名無しさん[sage]   投稿日:2016/11/21 02:06:39  ID:9bjfwpvu.net
動的に沢山作ったコントロールの破棄方法を教えて下さい。
作っ時にTLISTに入れておいて、破棄する時にリストから引っ張り出してfreeでいいですか?

85
デフォルトの名無しさん[sage]   投稿日:2016/11/21 06:45:32  ID:6Naumri0.net
TObjectListに入れておけば、リストをクリアするだけでOK
コメント1件

86
デフォルトの名無しさん[sage]   投稿日:2016/11/21 08:34:01  ID:3YAs2dXK.net
>81
XE2とは共存できる。
10.1Berlinの他のグレードとは共存できない。
コメント1件

87
デフォルトの名無しさん[sage]   投稿日:2016/11/21 08:43:29  ID:sE1stBxO.net
>85
ありがとうございます!

88
デフォルトの名無しさん[sage]   投稿日:2016/11/21 23:48:31  ID:eSdu1Qd7.net
>86
ありがとう!入れてみてすんなりスマホアプリ作れたら買おうっと

89
デフォルトの名無しさん[sage]   投稿日:2016/11/22 11:23:52  ID:J8mgYJIF.net
16万かー 高すぎる
昔の4万位ならまた買いたいと思っていたのに、これじゃ無理だわ
C#ならタダだから、こっちで我慢する

90
デフォルトの名無しさん[sage]   投稿日:2016/11/22 13:02:30  ID:d73nUv9a.net(5)
すごく初歩な事だと思うんだけど、フォームを最大にした状態でコントロールを配置するにはどうしたら良いですか?

91
デフォルトの名無しさん[sage]   投稿日:2016/11/22 13:11:22  ID:qW+6ZAFd.net(2)
えっ?

92
デフォルトの名無しさん[sage]   投稿日:2016/11/22 16:00:58  ID:d73nUv9a.net(5)
フォームデザイナは消せない?
フォームデザイナの中で少なからずスクロールさせるのがうざくて。

93
デフォルトの名無しさん[sage]   投稿日:2016/11/22 16:20:11  ID:Pvp5yOqg.net
もっと大きいディスプレイを使う

94
デフォルトの名無しさん[sage]   投稿日:2016/11/22 17:14:24  ID:d73nUv9a.net(5)
えっ?そう言う事じゃないw

95
デフォルトの名無しさん[sage]   投稿日:2016/11/22 18:10:29  ID:kKFxgFqP.net
コンポーネントパレットのコンポーネントをダブルクリックすればいいんじゃね。

96
デフォルトの名無しさん[sage]   投稿日:2016/11/22 18:15:01  ID:jjDYJ6Bv.net(2)
最大化した状態を想定してコントロールを配置したい?
...ということでもなよね
コメント1件

97
デフォルトの名無しさん[sage]   投稿日:2016/11/22 20:43:49  ID:d73nUv9a.net(5)
>96
そう言う事です。
俺、相当変なこと聞いてる?
コメント1件

98
デフォルトの名無しさん[sage]   投稿日:2016/11/22 20:54:34  ID:1EZz+VvR.net
フォームのサイズに追随するように作るから
わざわざ最大化で考えたりしない
コメント1件

99
デフォルトの名無しさん[sage]   投稿日:2016/11/22 21:23:29  ID:jjDYJ6Bv.net(2)
>97
自分だけが使うんだったら、最大化を想定して
コントロールの絶対位置を決めることもありだけどね

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

まあコントロールのAlignでフォームサイズに
追随するだけでいいなら簡単だけど...

100
デフォルトの名無しさん[sage]   投稿日:2016/11/22 22:15:22  ID:d73nUv9a.net(5)
>98,99
ありがとうございます。
大きなディスプレイ使います。w
コメント1件

101
デフォルトの名無しさん[sage]   投稿日:2016/11/22 23:16:57  ID:qW+6ZAFd.net(2)
ふーん

102
デフォルトの名無しさん[sage]   投稿日:2016/11/23 13:06:18  ID:tPiPFLaf.net
>100
4Kディスプレイを買うのかな?

103
デフォルトの名無しさん[sage]   投稿日:2016/11/23 13:16:56  ID:wddBimUU.net
4Kディスプレイはプログラミングする上で非常に作業性が高まって
生産能力が跳ね上がるからアリだな
たくさんの資料と開くのはマルチディスプレイでも出来なくないけど
4Kディスプレイは縦が長いのが素晴らしい

一つ問題があるとしたら
自分のソフトを4Kディスプレイで最大化したら
描画が追い付かなくなってカクカクになるという事実に気づいてしまうこと
ただし、MS謹製のエクスプローラでもカクカクになるぐらいなので
本当の意味で4K対応のソフトはそんなに多くないし
気にしなくてもよいのかもしれんが、どーなんだろ
アンチエイリアスのかかった文字の描画がとにかく遅い
1FPSぐらいになって操作困難だ

104
デフォルトの名無しさん[sage]   投稿日:2016/11/23 14:35:16  ID:XEgR0M7V.net
k-ブルが糞なんじゃね

105
デフォルトの名無しさん[sage]   投稿日:2016/11/24 21:31:04  ID:EbGC2MML.net
サブスクリプションって、アップデート2をインスコすれば
勝手にライセンス適用してくれるの?

106
デフォルトの名無しさん[sage]   投稿日:2016/11/26 08:53:16  ID:SyGP2pYs.net(2)
フォームに入力した数値を保存する方法を教えてください。
コメント1件

107
デフォルトの名無しさん[]   投稿日:2016/11/26 10:20:52  ID:RLaeAJYk.net
>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;

108
デフォルトの名無しさん[sage]   投稿日:2016/11/26 10:35:43  ID:SyGP2pYs.net(2)
ありがとうございます。
ちょっとやってみます。

109
デフォルトの名無しさん[sage]   投稿日:2016/11/26 23:59:22  ID:+C/v9Yiv.net
TFile使ったら1行で書けるかも

110
デフォルトの名無しさん[sage]   投稿日:2016/11/27 21:47:18  ID:G948Ts5Y.net
TEdit.Lines自体がTStringsだからSaveToFile持ってるんじゃなかったかな

111
107[sage]   投稿日:2016/11/27 22:12:21  ID:Vd8hDN3e.net
昔のDelphiしかないので最近のはわかりません、あしからず。
昔のでもメモコンポならLines.SaveToFile(ファイル名)できますね。

112
デフォルトの名無しさん[sage]   投稿日:2016/11/28 01:18:24  ID:uacaeDTN.net
TEditにLinesプロパティってなくね?

113
デフォルトの名無しさん[sage]   投稿日:2016/11/28 13:10:31  ID:/4N3P5Kl.net
TEditにはLinesはないね
もともと1行編集ボックスだからね

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

まあ後者のほうが簡単だけど

114
デフォルトの名無しさん[sage]   投稿日:2016/11/28 22:30:06  ID:4Blidc3O.net
TFileってのは最近できたのか
TFileStreamとは別物なんだな?

115
デフォルトの名無しさん[sage]   投稿日:2016/11/29 05:29:51  ID:W5POPsuB.net
TFile はDelphi2010からだって
TFileStreamとは別物
http://docwiki.embarcadero.com/Libraries/Seattle/en/System.IOUtils.TFile
System.IOUtils自体が2010からの追加らしい

116
デフォルトの名無しさん[sage]   投稿日:2016/11/29 11:14:31  ID:Ln/aQe4r.net
パスワードがかかっているExcelファイルを開ける時にパスワードを入れる方法を教えて下さい。
delphi からパスワード無しファイルを操作する事は出来ています。
コメント1件

117
デフォルトの名無しさん[sage]   投稿日:2016/11/30 09:51:10  ID:YyN+WuPe.net
>116
どういうやりかたで
「delphi からパスワード無しファイルを操作する事は出来ています。」
ができているのかしらんけど

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


excelを持ってないなら
?FlexCel for VCL / FireMonkey
を使うとか 

118
デフォルトの名無しさん[sage]   投稿日:2016/12/01 19:46:00  ID:D32vS8+n.net
D6の使用許諾コードって今でも都連だね 知らなかったわ

119
デフォルトの名無しさん[sage]   投稿日:2016/12/02 19:55:58  ID:DITubkqg.net
なぜに今さらD6?
新しいの無料になってなかったっけ

120
デフォルトの名無しさん[sage]   投稿日:2016/12/02 23:02:38  ID:p/xrLFXH.net
RXバグだらけで使いづらいよ

121
デフォルトの名無しさん[sage]   投稿日:2016/12/02 23:39:57  ID:LMsZph5A.net
具体的にどんなバグ?

122
デフォルトの名無しさん[sage]   投稿日:2016/12/03 09:26:01  ID:lQCz0lUj.net
ボタンの色の変更ってTButtonから派生させて改造しないとダメ?

123
デフォルトの名無しさん[sage]   投稿日:2016/12/04 00:23:15  ID:VbxK6ZGr.net(2)
結局どんなバグがあったんだろう


124
デフォルトの名無しさん[sage]   投稿日:2016/12/04 00:50:42  ID:Zv4y5DXv.net

125
デフォルトの名無しさん[sage]   投稿日:2016/12/04 01:14:11  ID:VbxK6ZGr.net(2)
WindowsのバグとRadStudioになんの関係が?

126
デフォルトの名無しさん[sage]   投稿日:2016/12/04 20:23:52  ID:DHDwgClI.net
7以降アップデートしてないんだけど
すると良いことある?

127
デフォルトの名無しさん[sage]   投稿日:2016/12/05 16:25:17  ID:dF177W8B.net
人に依る

128
デフォルトの名無しさん[sage]   投稿日:2016/12/05 20:51:09  ID:u75Tu5Z4.net
ユニコード対応がなんたらうんたら
コメント1件

129
デフォルトの名無しさん[sage]   投稿日:2016/12/05 22:36:44  ID:Yjl942ym.net
Delphi2.0 の高速コンパイルは素晴らしかった

130
デフォルトの名無しさん[sage]   投稿日:2016/12/05 22:44:55  ID:FaC7RcWw.net
>128
Unicode対応なんだ・・・TNTいらなくなるのか
これだけでも少し便利そうだな・・ありがと考えてみる

131
デフォルトの名無しさん[sage]   投稿日:2016/12/05 23:11:20  ID:3xjBziHl.net
新機能使わなきゃそりゃあってもしょうがないけど、
さすがに7からならアップグレードすりゃ色んな新機能がわんさかだと思うよ。
古い新機能ではUnicodeから始まってWin64bit対応やOSX対応、ジェネリックやら
Vistaとかの新コントール。
http://docwiki.embarcadero.com/RADStudio/Berlin/ja/%E3%83%A1%E3%82%A4%E3%83%...
から新機能のページだけを過去のバージョンにさかのぼってみていけばいい。

132
デフォルトの名無しさん[sage]   投稿日:2016/12/06 00:07:34  ID:cx3pcX82.net
コードエディタの進化は効率アップにもなるしやっぱ良いよ

133
デフォルトの名無しさん[sage]   投稿日:2016/12/06 18:04:09  ID:GBHXmuqR.net(3)
Editへの入力時のキーバッファをキャンセルする方法を教えて下さい。
今、バーコード入力するソフトを書いているのですが、担当者をComboboxで選択していないと
EditをクリアしてShowMessageを表示するつもりです。
EditをクリアしてMessageを出す事自体は出来ているのですが、バーコードから送られるデータの
最後にCRがついてきて(バーコードリーダーが付けてきます。)、多分このCRがShowMessageに
送られてShowMessageが勝手に消えてしまうようなのです。
イベントはKeyPressを使っています。
Windows7 Delphi10.1の環境です。
よろしくお願いします

134
デフォルトの名無しさん[sage]   投稿日:2016/12/06 18:16:56  ID:B1jaM3TV.net(2)
何がききたいのかようわからん。

135
デフォルトの名無しさん[sage]   投稿日:2016/12/06 18:24:00  ID:B1jaM3TV.net(2)
「Editへの入力時のキーバッファをキャンセルする方法を教えて下さい。」
後ろにごちゃごちゃよくわからん説明が書いてあるけどこれが聞きたいの?

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

このことじゃなかったらもっと適格に書いてくれんとわからん。

136
デフォルトの名無しさん[sage]   投稿日:2016/12/06 19:02:50  ID:GBHXmuqR.net(3)
ありがとうございます。
バーコードから送られてくる文字を全てキャンセルしたいのです。
一文字ずつチェックするのではなく、一気に送られて来た文字を消す方法はありませんか?
宜しくお願いします。
コメント1件

137
デフォルトの名無しさん[sage]   投稿日:2016/12/06 19:18:11  ID:BLWAVjyu.net
>136
CRって復帰コードのことだろ?
最後にCRがついてくるなら、それが送られてくる最後の文字
なら、それが送られてきたら Key には0入れて Edit.Text := ""; でよかんべ

138
デフォルトの名無しさん[sage]   投稿日:2016/12/06 20:03:14  ID:4bwuxuwQ.net
こんなんじゃだめなの?

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then begin
ShowMessage('Enter!');
Edit1.Clear;
end;
end;

139
デフォルトの名無しさん[sage]   投稿日:2016/12/06 20:26:28  ID:GBHXmuqR.net(3)
ありがとうございます。
出来ました。
条件に合わなかったら入力したらいけないと変な思い込みをしてました。
助かりました。

140
デフォルトの名無しさん[sage]   投稿日:2016/12/07 09:03:33  ID:gTqL7Hsg.net
キーバッファw

141
デフォルトの名無しさん[sage]   投稿日:2016/12/07 09:09:12  ID:fnsUACzH.net
えっ?

142
デフォルトの名無しさん[sage]   投稿日:2016/12/07 09:47:59  ID:7C3MKHBs.net
ラジオボタンって大きくならない?

143
デフォルトの名無しさん[sage]   投稿日:2016/12/07 16:09:50  ID:1k8Mb6um.net
できません。

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

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;

144
デフォルトの名無しさん[sage]   投稿日:2016/12/08 15:42:09  ID:G/Oz9Gxc.net
Berlin update2 のFireMonkeyで
Listbox.Items.Exchangeメソッドが動作しないXE2では動くのに

145
デフォルトの名無しさん[sage]   投稿日:2016/12/09 16:34:59  ID:G3AX0Oay.net
お前が悪い

146
デフォルトの名無しさん[sage]   投稿日:2016/12/10 23:22:51  ID:KMGjeMy/.net(2)
質問です

147
デフォルトの名無しさん[sage]   投稿日:2016/12/10 23:33:56  ID:KMGjeMy/.net(2)
関連付けされてるファイルを起動するのは ShellExecute でできますが
例えば abc.csv ファイルを .txt で関連付けされてるアプリケーションで
開く簡単な方法はあるでしょうか
コメント1件

148
デフォルトの名無しさん[sage]   投稿日:2016/12/11 06:10:35  ID:RsXQTiEs.net

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

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


149
デフォルトの名無しさん[sage]   投稿日:2016/12/11 12:45:00  ID:DKctrae4.net
>147
簡単には無いと思う。
レジストリ開いて関連付け調べてabc.csvを引数にそのプロセスを起動させる。
コメント1件

150
デフォルトの名無しさん[sage]   投稿日:2016/12/11 16:52:57  ID:uXWnPaTO.net
拡張子に関連付けされた実行ファイル名の取得
http://mrxray.on.coocan.jp/Delphi/plSamples/480_GetFullExePath.htm

151
デフォルトの名無しさん[sage]   投稿日:2016/12/11 18:44:37  ID:IZotsPxu.net
>149-150
サンキュー参考になりそう

ちなみに xray さん元気そうでなにより

152
デフォルトの名無しさん[sage]   投稿日:2016/12/12 14:28:19  ID:JuHHFpqe.net
私はFindExecutable APIで拡張子".txt"のダミーのファイル名を渡して…というところまで考えていたのですが、そのものずばりなAPIがあるのですね。

153
デフォルトの名無しさん[sage]   投稿日:2016/12/15 11:41:17  ID:KMS/yunp.net
Cのライブラリで
const char *ss[] = {"abc", "def", "xyz", NULL};
を引数として要求するAPIがあるのですがDelphiからは
どうやって定義すればよいでしょう?

154
デフォルトの名無しさん[]   投稿日:2016/12/15 12:42:40  ID:jYtTego3.net
ポインタのポインタ
コメント1件

155
デフォルトの名無しさん[sage]   投稿日:2016/12/15 21:30:43  ID:esnvxFap.net
array of PChar
コメント1件

156
デフォルトの名無しさん[sage]   投稿日:2016/12/16 08:13:11  ID:khJxMTBU.net(2)
>154
>155
ありがとう。
array of は内部的にはポインタなんですね。上手く動作しました。

157
デフォルトの名無しさん[sage]   投稿日:2016/12/16 13:53:20  ID:bP8vH7ub.net(2)
 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 の '静的配列名' はポインタではないのしょうか。

158
デフォルトの名無しさん[sage]   投稿日:2016/12/16 13:58:41  ID:n8JQ6xp/.net(2)
Fs.Writeの引数の型宣言みろ

159
デフォルトの名無しさん[sage]   投稿日:2016/12/16 14:20:04  ID:bP8vH7ub.net(2)
 引数は型なしパラメータだから、実際にはパラメータのアドレスが Fs.Write に渡され、
そのアドレスが処理対象になる。つまりそこに必要なサイズのメモリ領域が正しく確保さ
れていれば、その領域がどのような型なのかは関係ないということか。

 結局 Delphi の '静的配列名' はポインタではないんだね。


160
デフォルトの名無しさん[sage]   投稿日:2016/12/16 14:32:37  ID:HmHblg1G.net
P := Pointer(AI);

161
153[sage]   投稿日:2016/12/16 16:08:44  ID:khJxMTBU.net(2)
後に誰かの参考になるかもしれないので少し詳しく書いておきます。

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]);

で上手く動作しました。ペコリ。

162
デフォルトの名無しさん[sage]   投稿日:2016/12/16 16:14:50  ID:n8JQ6xp/.net(2)
さんざん概出
コメント1件

163
153[sage]   投稿日:2016/12/17 10:45:35  ID:1MhgkvS0.net
>162
そうですか。スレ汚し失礼しました。ペコリ

164
デフォルトの名無しさん[sage]   投稿日:2016/12/18 18:39:46  ID:SM4ZDbUW.net(2)
 TreeView をデザイン時にフォームに貼り付けてできたアプリを終了するとき
 TreeView の各ノードが保持するデータ(TreeView1.Items[n].data が保持しているデータ)
も自動的に廃棄されるのですか?
コメント1件

165
デフォルトの名無しさん[sage]   投稿日:2016/12/18 18:51:06  ID:U6l2OwGO.net(2)
>164
TTreeNode::Data が保持するデータはプログラマが明示的に破棄しないとダメ。
コメント1件

166
デフォルトの名無しさん[sage]   投稿日:2016/12/18 20:05:19  ID:SM4ZDbUW.net(2)
>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;
コメント1件

167
デフォルトの名無しさん[sage]   投稿日:2016/12/18 20:17:52  ID:U6l2OwGO.net(2)
>166
そんな感じ。

168
デフォルトの名無しさん[sage]   投稿日:2016/12/20 23:16:00  ID:ifPrFvUo.net(2)
スレッドを使ったプログラムで、スレッド内にある未使用の変数をコメントアウトしたら、
終了する時にアクセスバイオレーションが出るんだけど、こんな事ってあるの?
プライベートに宣言してあるからメインとかが絡んでる事は無いのだけど。

169
デフォルトの名無しさん[sage]   投稿日:2016/12/20 23:35:38  ID:qjg7YQIs.net
コメントアウトされた変数が確保していたメモリ域のおかげで
偶然アクセス違反が発生しない状態になってるとかじゃね?
要はコメントアウトしていなくてもコーディングミスで不正なメモリアクセスしている状態なのかも

170
デフォルトの名無しさん[sage]   投稿日:2016/12/20 23:43:04  ID:ifPrFvUo.net(2)
こんな時間にありがとう!
そんな事があり得るんですか。
難しいなぁ。

171
デフォルトの名無しさん[sage]   投稿日:2016/12/21 12:39:12  ID:kCrlwcjM.net
あり得るというより一番多いパターンだったり

172
デフォルトの名無しさん[sage]   投稿日:2016/12/21 14:28:11  ID:yxrWTbmA.net
「参照」とポインタの話か? 慣れるまで結構厄介だからな。

173
デフォルトの名無しさん[sage]   投稿日:2016/12/21 17:50:14  ID:69vl5rId.net(2)
ちょっと教えてください

自分自身(実行ファイル)を再起動する方法を教えてください
ちなみに二重起動を禁止したアプリでです
できれば再起動用の別アプリを使用しないのが理想的です...
コメント1件

174
デフォルトの名無しさん[sage]   投稿日:2016/12/21 18:38:54  ID:3rWlzZt5.net
>173
自分自身が起動するときだけ二重起動許可して起動確認できたら自分を閉じる
コメント1件

175
デフォルトの名無しさん[sage]   投稿日:2016/12/21 21:13:47  ID:69vl5rId.net(2)
>174
ありがとうございます。
やはりその方向ですか。

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

簡単でスマートな方法はないんですね
コメント1件

176
デフォルトの名無しさん[sage]   投稿日:2016/12/21 21:25:28  ID:GvkBvmPc.net
>175
自分(プロセスA)が自分(プロセスB)を起動するときに、コマンドラインで /restart というようなコマンドを渡す。
プロセスBは /restart ってコマンドを受け取ったら、Mutexの所有権を得るまで待機する。(再起動処理)
プロセスAはMutexの所有権を開放する。
/restartを受け取らなかった場合は、Mutexの所有権を得られなかった場合は終了する。(二重起動防止)
コメント1件

177
デフォルトの名無しさん[sage]   投稿日:2016/12/21 23:03:33  ID:V2gs4HSo.net
>176
そうですね

Mutexが取得できるまで待機すればいいですよね
終了待ちをもっと複雑な方法で考えてました
ありがとうございます

178
デフォルトの名無しさん[]   投稿日:2016/12/22 20:53:24  ID:GbxNFxpQ.net
よろしくお願いします。
『レコード型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で似た様なコードの重複が多い場合、
クラスの定義をもっと効率良く記述できる方法があれば教えていただきたいです。

179
デフォルトの名無しさん[]   投稿日:2016/12/22 20:58:35  ID:T2mCxqBZ.net
delphi ジェネリックスでググる

180
デフォルトの名無しさん[sage]   投稿日:2016/12/24 05:08:06  ID:dJj6Jdn2.net
クラスの継承を使えないか?
レコードのほうに「違い」を押し込んでクラスにして継承して、クラスは共用とできないか?
そもそもクラスとレコードに分ける必要があるのか?
などなど

181
デフォルトの名無しさん[sage]   投稿日:2016/12/24 16:48:03  ID:NvTs06qg.net
レコード型をクラスのメンバとしてポインタで管理して
そのポインタの実体を操作する仮想メソッドなどを作る。

182
デフォルトの名無しさん[]   投稿日:2016/12/24 23:24:23  ID:SRluPO+r.net
firemonkeyを使ってandroid向けのゲームを作り始めましたが
いきなり躓いて困ってます。

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

firemonkeyでゲームを作る場合はメインスレッドのみで作るのでしょうか。
コメント1件

183
デフォルトの名無しさん[sage]   投稿日:2016/12/25 02:11:22  ID:dFY2jBPw.net(2)
lockしてもダメ?
コメント1件

184
デフォルトの名無しさん[sage]   投稿日:2016/12/25 09:12:26  ID:LRNNB7e/.net
DrawGridのセルの色を取得する方法を教えて下さい。
どのセルに何色を塗ったか記憶しているのですか、
もっと簡単に知る方法があると思い質問させてもらいました。
宜しくお願いします。

185
デフォルトの名無しさん[sage]   投稿日:2016/12/25 09:56:13  ID:HB1HITh4.net(2)
>182
スレッド側でBitmap描画してからSynchronize使ってメインスレッドのBitmapに転送すれ
コメント1件

186
デフォルトの名無しさん[sage]   投稿日:2016/12/25 09:59:02  ID:BtIm+2Ns.net(4)
>183
Delphi6の時はCanvas.Lockがあったと思いますが
今使ってるDelphi10.1ではLockが見つからなくて・・・
コメント1件

187
デフォルトの名無しさん[sage]   投稿日:2016/12/25 10:11:02  ID:BtIm+2Ns.net(4)
>185
スレッド側で描画用のBitmapをCreateしてWidth、Heightを設定した段階で
EBitmapSizeTooBigの例外が発生してしまうため、そこまで辿り着けなくて困ってます。

188
デフォルトの名無しさん[sage]   投稿日:2016/12/25 10:30:12  ID:rexwkbDx.net
例外の種類見る限り、スレッドと関係なさそうに見えるが。
ビットマップが大きすぎるってWidthとHeightをいくつに設定しようとしたの?
コメント1件

189
デフォルトの名無しさん[sage]   投稿日:2016/12/25 10:36:40  ID:BtIm+2Ns.net(4)
>188
サイズは350x450なのでたぶん大きすぎることはないと思います。
メインスレッドで動作させた場合は、例外が発生することなく動作するので
メインスレッド以外ではTBitmapは使えないのかと・・・

また、Windowsでは正常に動作してAndroidで動作させると例外が発生するため
Android固有の問題なのかなと思いまして
コメント1件

190
デフォルトの名無しさん[sage]   投稿日:2016/12/25 12:33:01  ID:dFY2jBPw.net(2)

191
デフォルトの名無しさん[sage]   投稿日:2016/12/25 17:27:44  ID:HB1HITh4.net(2)
>189
AndroidのThreadで発生するってQPに上がってるからVOTEしとけばそのうち治るんじゃないかな
そのうち。
コメント1件

192
デフォルトの名無しさん[sage]   投稿日:2016/12/25 17:59:22  ID:YEQFz9Pa.net
Delのバグかよ

193
デフォルトの名無しさん[sage]   投稿日:2016/12/25 18:04:15  ID:BtIm+2Ns.net(4)
>190
教えていただいたものを使って処理を行ってみましたがダメでした。


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


別スレッドでの処理を諦めてとりあえずメインスレッドで全て行うようにします。
相談に乗っていただいた方々ありがとうございました!

194
デフォルトの名無しさん[sage]   投稿日:2016/12/28 09:28:27  ID:aele3sW5.net
Delphi 10.1 BerlinのStarterでチュートリアルをやってます。
http://docwiki.embarcadero.com/RADStudio/Berlin/ja/ユーザー アクションに対する応答をコード エディタでコーディングする(IDE チュートリアル)
このページの中ほどまで進んだら
[dcc32 エラー] TextEditorUnit.pas(94): E2003 未定義の識別子 : 'TDialogServiceSync'
というエラーが表示されてしまいます。
どうしたら修正できるのでしょうか?
コメント2件


195
デフォルトの名無しさん[sage]   投稿日:2017/01/01 00:51:30  ID:u9hnImCi.net
>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);

と書き換えたらエラー出なくなると思う。
コメント1件

196
デフォルトの名無しさん[sage]   投稿日:2017/01/02 05:54:12  ID:IPXAtosy.net
クラスファンクションなのかそれは?

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

FireMonkeyはデフォルトで使えるのかと思ってました。いろいろと無知すぎるので
もうちょっと分かりやすいところから勉強しなおしてみます。
コメント1件

198
デフォルトの名無しさん[sage]   投稿日:2017/01/02 20:49:19  ID:7Rs/ksIu.net
>197
その警告が出るって事はFire Monkeyの方なのか。
だったらそこは元の>194の命令でいいはず。

usesの所に FMX.DialogService.Sync が記載されているか確認して
なければ追加。
コメント1件

199
デフォルトの名無しさん[sage]   投稿日:2017/01/04 22:56:01  ID:SVZbRNc5.net
スレッドからサブフォームを表示する事は可能ですか?
他の機器から特定の信号が来たら、警告画面みたいなのを表示しようとして
スレッドで信号監視してフォーム表示のつもりがうまくいきません。
なのでメインフォームにタイマー置いてタイマーイベントで信号監視しています。
ヘルプを読むとスレッドからフォームはコントロール出来ないような事が書いてあったのですが、皆さんならどうしますか?
コメント2件

200
デフォルトの名無しさん[sage]   投稿日:2017/01/04 23:19:05  ID:07zJ2hFc.net(2)
表示するだけなんでしょ?

自分だったらpostmessage
コメント1件

201
デフォルトの名無しさん[sage]   投稿日:2017/01/04 23:55:57  ID:07zJ2hFc.net(2)
ごめん

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

独自のメッセージを定義して受け取った側でshowするか
showwindow(async)を使うかだね

202
デフォルトの名無しさん[sage]   投稿日:2017/01/05 00:45:48  ID:sWl9IbhJ.net
>199
TThread.Synchronizeで、メインスレッドに切り替えてから、引数で渡されたコールバックメソッド(手続き)でサブフォームを表示させるとか

203
194[sage]   投稿日:2017/01/05 06:34:16  ID:KgVZC7r0.net
>198
エラーが消えて無事に動きました。
ありがとうございます。

こういうのはIDEが教えてくれるのかと思って
いましたが、有料版だとそういう機能は
あるんでしょうかねー
コメント1件

204
デフォルトの名無しさん[sage]   投稿日:2017/01/05 07:19:36  ID:DrifgVvY.net
>203
関数や手続きが定義されていないってエラーが出たときはその関数などのヘルプを見て
そこに書いてあるユニット名が自分のプログラムのuses節に書かれているか調べるといいよ。

205
199[sage]   投稿日:2017/01/05 09:38:01  ID:u8XERnLo.net
>200,202
ありがとうございます。
教えてもらった方法を調べながらやってみます。

206
デフォルトの名無しさん[sage]   投稿日:2017/01/08 16:20:11  ID:lAdNqeO/.net
TShellCtrlコンポーネントって、デモに含まれるものなんだよね なんでVCLに含めなかった??

207
デフォルトの名無しさん[sage]   投稿日:2017/01/09 14:24:09  ID:KdQvIKlc.net

208
デフォルトの名無しさん[sage]   投稿日:2017/01/10 11:27:52  ID:D5z5IiVv.net
マルチスレッドが終了したかどうか確認するのに、フラグで確認してるんだけど、
なんかもっとスマートな方法ってありませんか?
ググったらWaitForが出て来たのですが、hoge.WaitForとしてもハンドルエラーとか出て使えませんでした。
宜しくお願いします。
コメント1件

209
デフォルトの名無しさん[sage]   投稿日:2017/01/10 12:33:32  ID:8tL5nmKS.net(2)
何があなたのスマートの基準なのか?
フラグは別に悪くないと思うけど。

210
デフォルトの名無しさん[sage]   投稿日:2017/01/10 17:34:35  ID:cSdSlPHe.net
freeが一番確実じゃない?

211
デフォルトの名無しさん[sage]   投稿日:2017/01/10 17:41:03  ID:9hDOaePS.net(2)
>208
hogeってTThread?
そんだったらTThread.FreeOnTerminateをTrueにしてるから、
スレッドが終了してFreeされてるから、ハンドルエラーと出てくるんだろう。
FreeOnTerminiateをFalseにすればOK(そのかわりTThreadの破棄は自分でやる必要がある)。

212
デフォルトの名無しさん[sage]   投稿日:2017/01/10 18:11:59  ID:uT10hEea.net
終了したか確認するのにWaitForしたら確認じゃなく待機しちゃってダメじゃないのかと思うけど。
FreeOnTerminiate:=true;で OnTerminateイベントでフラグ立てるので良くないかい?
あとはメインフォームに終了通知としてメッセージ送るとか。
Win32API使うのOKなら FreeOnTerminiate:=false; にして
スレッドハンドルに対して WaitForSingleObject (タイムアウトは0に設定)使い
WAIT_OBJECT_0が返るかWAIT_TIMEOUTが返るか確認する。
もしくはGetExitCodeThread関数を使うとかかな。

213
デフォルトの名無しさん[sage]   投稿日:2017/01/10 18:56:40  ID:XaHxjxQc.net
そういやスレッドの終わり方の議論が2、3年前にあったな

214
デフォルトの名無しさん[sage]   投稿日:2017/01/10 19:15:27  ID:9hDOaePS.net(2)
FreeOnTerminateが使えない?とかいう議論じゃなかったっけw

215
デフォルトの名無しさん[sage]   投稿日:2017/01/10 21:06:50  ID:8tL5nmKS.net(2)
FreeOnTerminiate:=true;で OnTerminateイベントでフラグ立てる

に賛成。簡単確実。
コメント1件

216
デフォルトの名無しさん[sage]   投稿日:2017/01/11 07:54:30  ID:7+b9GoiT.net(2)
>215
そのフラグの排他制御は簡単じゃないよ

217
デフォルトの名無しさん[sage]   投稿日:2017/01/11 08:27:35  ID:7+b9GoiT.net(2)
ああOnTerminate 内はメインスレッドか。
なら簡単だわ。メンゴ。
昔はOnTerminateイベント無かった希ガス

218
208[sage]   投稿日:2017/01/11 08:51:02  ID:jn+AzvnI.net
おはようございます。
皆さん、ありがとうございます。
フラグがやはり良さげなんですね。

もう1つ教えて下さい。
スレッドの中で
try
stringlist:=TStringList.Create;
while not Terminete do
begin
何かの処理
end;
finally
stringlist.free;
End;
とした時に、TermineteをTrueにして終了するとfinallyの処理をしてくれません。
異常終了した時はfinallyの処理をしてくれます。
stringlistの解放はOnTermineteでするのが普通なのでしょうか?
コメント2件

219
デフォルトの名無しさん[sage]   投稿日:2017/01/11 12:16:51  ID:CK/PUOqI.net
>218
構文が変だよ

tryが抜けてる
コメント1件

220
デフォルトの名無しさん[sage]   投稿日:2017/01/11 14:34:41  ID:Rshx8mvt.net
>219
tryはあるが?
コメント1件

221
デフォルトの名無しさん[sage]   投稿日:2017/01/11 14:43:08  ID:mOqhfYH5.net
>とした時に、TermineteをTrueにして終了するとfinallyの処理をしてくれません。
んなわけない。ちゃんとfinallyの処理するはずだからもっとしっかり確認しよう。

>フラグがやはり良さげなんですね。
もうちょっと具体的にスレッド終わった後何したいのかとか書いてくれんと答えようがねぇ。

222
デフォルトの名無しさん[sage]   投稿日:2017/01/11 17:34:02  ID:y79IyYLw.net
>220
ホントだtryはあった...でも
最近のdelphiは仕様が変わったのか...

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

list=:tstringlist.create;
try try
while not terminated do begin ...end;
// ここで正常処理終了のフラグをセット
except....end;
finally list.free; end;

223
デフォルトの名無しさん[sage]   投稿日:2017/01/11 18:26:26  ID:tCuecbSb.net
>218
>TermineteをTrueにして終了するとfinallyの処理をしてくれません。
どうやって確認したの?
あとTThreadの派生クラスならTerminateはメソッドとTerminatedプロパティが使える。

>stringlistの解放はOnTermineteでするのが普通なのでしょうか?
そんなことはない。

224
デフォルトの名無しさん[]   投稿日:2017/01/11 18:29:24  ID:+wq8yOB3.net
昔昔、QuadrupleDを使ってやってたサウンドの再生を最新のDelphiでやりたいんですが、使えるライブラリを探してます。

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

あるかな…(´・ω・`)

225
デフォルトの名無しさん[sage]   投稿日:2017/01/11 21:03:36  ID:go3Ym2g4.net
ブレーク入れてね
ステップで見るときブレーク入れないと
見かけ飛ばすから

226
デフォルトの名無しさん[sage]   投稿日:2017/01/12 06:31:56  ID:a5xM53E0.net
フラグの排他制御は簡単だと思うが。
boolean変数一個なら読み書きは1命令で、割り込まれることはないだろうし
書く前に消されちゃうようなコードを書かなければいいだけ。
コメント1件

227
デフォルトの名無しさん[sage]   投稿日:2017/01/12 07:43:07  ID:pteiZ85t.net
>226
きちんとした知識がある人にとっては簡単だよね

228
デフォルトの名無しさん[sage]   投稿日:2017/01/13 08:37:54  ID:ZuNdbFdt.net
フラグをグローバルやメインフォームなどに
持たせるのはなんか古臭いという気持ちはある

229
デフォルトの名無しさん[sage]   投稿日:2017/01/14 13:08:24  ID:gjFRSJdj.net
元号変わったらどうすっかな
D7だと対応できんだろ
コメント1件

230
デフォルトの名無しさん[sage]   投稿日:2017/01/14 13:25:01  ID:h3eR+GmF.net
>229
元号とか使わないか
自力で変換

OSの機能を使ってるんだったら大丈夫か
ただvistaも今春でサポート終了するけど

231
デフォルトの名無しさん[sage]   投稿日:2017/01/17 17:31:21  ID:O6RaaTFv.net
Berlin試したみたけど以前ここで言った
gifアニメのバグが解消されてないな

232
デフォルトの名無しさん[sage]   投稿日:2017/01/18 13:40:10  ID:YhLwefSp.net
string、ansichar、pansicharの型キャストってどうやるの?
暗黙の型キャストの警告を消したいんだけど、ググってstrpcopyとかのサンプルを実行しても消えない。
コメント1件

233
デフォルトの名無しさん[sage]   投稿日:2017/01/19 15:50:04  ID:5UKguDxp.net
>232
string(ansistring変数)とかで消えない?

234
デフォルトの名無しさん[sage]   投稿日:2017/01/20 09:53:10  ID:1eiriAuJ.net
具体的なコードを挙げてみては?

235
デフォルトの名無しさん[sage]   投稿日:2017/01/27 12:59:02  ID:/S2JEwyl.net(2)
Konopkaコンポーネントのアンインストール方法を教えて下さい。
インストール中に異常終了したのでアンインストールしたいのですが、
アンインストールも途中終了してしまって、行き詰ってしまいました。
よろしくお願いします。
コメント1件

236
デフォルトの名無しさん[sage]   投稿日:2017/01/27 14:49:41  ID:5OkJm/3R.net
>235
マイドキュメント\Embarcadero\Studio\18.0\CatalogRepositoryにあるKonopkaのフォルダと
パブリックのドキュメント\Embarcadero\Studio\18.0\CatalogRepositoryにあるKonopkaの
リポジトリデータを削除すればよかったと思う。(心配ならバックアップとっといてね)

konopka、インストール失敗するとアンインストールもできなくなるんだよね。
コメント1件

237
235[sage]   投稿日:2017/01/27 22:35:47  ID:/S2JEwyl.net(2)
>236
ありがとうございます。
助かりました。

238
デフォルトの名無しさん[sage]   投稿日:2017/02/01 09:20:48  ID:5qzbuLNZ.net
入力の支援機能で出て来た候補にカーソルを合わせて、
ピリオド打ったら選んだ候補が入力される設定ってどこにありますか?
ベルリンのup2を入れたのですが、最初は良かったのにいつの間にかピリオドで選択されなくなってしまいました。

239
デフォルトの名無しさん[sage]   投稿日:2017/02/06 19:05:34  ID:xOrt0AYX.net(2)
StringGridのセルをデータの合わせて塗りつぶすことをしています。
タイマーイベントで0.2秒毎にデータに変化がなくても一旦デフォルト色にしてから他の色を塗っています。
そのせいだと思うのですがセルの選択ができません。
セルをランダムに色を塗りつつ、セルの選択もできるようにするにはどうしたらいいでしょうか?

240
デフォルトの名無しさん[sage]   投稿日:2017/02/06 20:35:02  ID:iNTq03fP.net
おんどろーせる
コメント1件

241
デフォルトの名無しさん[sage]   投稿日:2017/02/06 20:38:57  ID:U9v8FdBr.net
TSringGridのOnDrawCellイベントの引数で渡されるTGridDrawStateで、選択されたかどうか判断できる。
選択されてないときだけ、色を変更するよろし。

242
239[sage]   投稿日:2017/02/06 22:36:47  ID:xOrt0AYX.net(2)
>240.241
ありがとうございます。
まだ、試してませんがどういうコードを書けば良いか案が浮かびました。

243
デフォルトの名無しさん[sage]   投稿日:2017/02/07 04:11:46  ID:odr3U2KT.net
タイマーで200ミリ秒ずつやってるところが壮絶にまぬけっぽい 小学生以下の知能
コメント1件

244
デフォルトの名無しさん[sage]   投稿日:2017/02/07 07:48:29  ID:uL0lBsbg.net
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

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

245
239[sage]   投稿日:2017/02/07 14:14:09  ID:vf4YiH1/.net
昨日はありがとうございました。
TSringGridの特定のセルに数値を書き込むのにDrawTextを使って右寄せで書き込んでいます。
この書き込んだ数値を後から取得することってできますか?
セルにHintみたいに埋め込めたら簡単なんですけどググっても分かりませんでした。

>243
シーケンサーの信号状態を監視するんで手っ取り早くタイマー使ってます。
コメント1件

246
デフォルトの名無しさん[sage]   投稿日:2017/02/07 21:01:48  ID:qgMFF5pP.net
その「数値」はどこにしまってあるの? それは自分で世話するしかない。
DrawTextは文字列を描画するだけで、何書いたかなんてどこにも覚えていないよ。

247
デフォルトの名無しさん[sage]   投稿日:2017/02/07 22:53:48  ID:GEF3mu7C.net
StringGridなんだから、Cellsプロパティを通して、文字列として各セルにでも入れときゃいいんでね?(ハナホジ

248
デフォルトの名無しさん[sage]   投稿日:2017/02/08 07:16:05  ID:3kd0dWw+.net
>245
格納するオブジェクトも実装したらいいんじゃ

249
デフォルトの名無しさん[sage]   投稿日:2017/02/12 16:38:05  ID:iYdKWxWq.net
整数ならcellのobjects(だったっけかな)に入れときゃ良いじゃん

250
デフォルトの名無しさん[sage]   投稿日:2017/02/26 22:21:06  ID:S5w82ICF.net(2)
vs2015アンインスコしたらDel10.1でコンパイルできなくなった。
Del再インスコするしかない?

251
デフォルトの名無しさん[sage]   投稿日:2017/02/26 22:23:37  ID:8hwVjJWR.net
環境変数消されてるとか?
コメント1件

252
デフォルトの名無しさん[sage]   投稿日:2017/02/26 23:37:41  ID:S5w82ICF.net(2)
>251
ありがとうございます。
調べてみます。

253
デフォルトの名無しさん[sage]   投稿日:2017/03/14 14:46:39  ID:SzM2z6wx.net
スレッド1で変数aの値を読み書きしていてスレッド2では変数aを読み込みしかしない場合って干渉対策って必要?

254
デフォルトの名無しさん[sage]   投稿日:2017/03/14 15:58:50  ID:vbV/Jpv3.net
うん

255
253[sage]   投稿日:2017/03/14 22:26:02  ID:M7D1b0oM.net
ありがとうございます。
干渉対策じゃなくて排他処理っていうんですね。
失礼しました。
各スレッドで共有する変数を集めたUnitに変数aを宣言して使っています。
この変数aを複数のスレッドからアクセスする場合、Synchronizeを使うのでしょうか?
SynchronizeはスレッドからVCLを描画する場合に使うと書いてあったので、フラグを立てるとかして
排他処理をするのでしょうか?
コメント1件

256
デフォルトの名無しさん[sage]   投稿日:2017/03/14 23:05:45  ID:137tpMLx.net(2)
クリティカルセクションでも使えばいい、どっかで
CS := TCricalSection.Create()で作っておいて、

同時にアクセスされたら困るところで
CS.Enter();
try
 共有リソースの変数Aにアクセスなど
finally
 CS.Leave();
end;

257
デフォルトの名無しさん[sage]   投稿日:2017/03/14 23:07:46  ID:137tpMLx.net(2)
まぁ、他にもSyncObjs.pasにTInterlockedとかあるけど、
そこは自分で頑張ってくれ

258
デフォルトの名無しさん[sage]   投稿日:2017/03/15 07:56:13  ID:OMQXGO2Q.net
>255
Synchronize内の処理はメインスレッドでの処理となるから
同時アクセスがありえなくなるということらしいよ

259
253[sage]   投稿日:2017/03/16 09:51:28  ID:IMOOaoXR.net
皆さん、ありがとうございます。
これから調べて確認しようと思うのですが、最後に1つ教えて下さい。
シンクロナイズを使い過ぎるとマルチスレッドの意味が無くなるとヘルプに書いてありました。
クリティカルセクション等は使い過ぎてもメインフォームの反応が悪くなるとかそういう事が無くなる、若しくは低減されるとかあるのでしょうか?
もし、それならクリティカルセクション等を推奨すると思うので使い過ぎはやはりダメとは思いますがどうなんでそょう?
コメント2件

260
デフォルトの名無しさん[]   投稿日:2017/03/16 17:53:22  ID:Xe646fvV.net
どこからが使いすぎだと思う?

261
デフォルトの名無しさん[sage]   投稿日:2017/03/16 18:29:10  ID:vq3uRAd1.net
>259
ウインドウ描画などしているスレッドが「メインVCLスレッド」。
要するにメッセージループが動作しているスレッド。
Synchronizeはこのメッセージループに「渡したプロシージャの処理を任せる」ため
Synchronizeを多用すると「メインフォームの反応が悪くなる」という状況を生む。
Synchronizeはあくまで変数のアクセスと言った軽い処理に限定すればいい。
この場合、メッセージループがウィンドウメッセージを処理する合間に変数へのアクセスを処理する程度なので
その程度で「メインフォームの反応が悪くなる」ということはないだろう。
ただ、もし重たい処理を任せてしまうと、フォームのイベントで処理するのと同じになってしまう。
(フォームなどコンポーネントのイベントはメインVCLスレッドで動作している)
この場合メインフォームの反応が悪くなる。

クリティカルセクションはメッセージループとか関係ないので、それによってメインフォームの反応が悪くなるということはない。
ただ例外として、メインVCLスレッドでクリティカルセクションを使うと、
他のスレッドが使用中はメインVCLスレッドは待機してしまうのでメインフォームの反応が悪くなることはある。

262
デフォルトの名無しさん[sage]   投稿日:2017/03/17 07:45:46  ID:88SBOT8h.net(2)
>259
問題は「使い過ぎ」の定義だと思うけど
僕は1つ1つの処理の長さが長くなってしまった場合をいってるのではないかと思う。
同時処理といっても現実は短い処理が交互に行われるのをスレッドと称しているだけであって
それを否定するようなプログラミングはもはやスレッドではないということではないかと。
コメント3件

263
デフォルトの名無しさん[sage]   投稿日:2017/03/17 09:01:04  ID:88SBOT8h.net(2)
あ、もしかしたら質問に答えてなかったかな?
つまりsyncronizeだろうがcsだろうが
占有状態が長くなるようなロジックになるなら同じことだ

264
デフォルトの名無しさん[sage]   投稿日:2017/03/17 17:25:37  ID:c2lVMe4f.net
>262
今のcpuは普通にマルチコア、マルチスレッドじゃない?
同時に動いてんじゃない?
コメント1件

265
デフォルトの名無しさん[sage]   投稿日:2017/03/18 10:42:58  ID:TEQZ8ThN.net
>264
そういう御仁が現れるだろうなとは思ってた。
申し訳ないがマルチコアなどの詳細な仕組みが現話題の結論に
影響を与えるものではないので無視させてもらいます。

266
デフォルトの名無しさん[sage]   投稿日:2017/03/18 11:15:40  ID:uhuX0RUO.net(2)
OSのタスクスケジューリングやスレッド、Delphiのメインスレッドの話がごっちゃ混ぜになっててカオスカオス

267
デフォルトの名無しさん[sage]   投稿日:2017/03/18 11:18:08  ID:At1yjhtj.net
細かい処理が交互にっていつの時代のタスク割り当ての話してるんだ

268
デフォルトの名無しさん[sage]   投稿日:2017/03/18 17:26:39  ID:qhwfKSm6.net
>マルチコアなどの詳細な仕組みが現話題の結論に影響を与えるものではない

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

>同時処理といっても現実は短い処理が交互に行われるのをスレッドと称しているだけであって
この話も同じく、“現話題の結論に影響を与えるものではない”

269
デフォルトの名無しさん[sage]   投稿日:2017/03/18 17:42:46  ID:uhuX0RUO.net(2)
中途半端に説明するからややこしくなる
SynchronizeにしろCriticalSectionにしろDelphiのメインスレッドが処理待ちになる状況ができれば反応は悪化する

くらいでイナフ
コメント1件

270
デフォルトの名無しさん[sage]   投稿日:2017/03/18 23:22:19  ID:toYG3enn.net
>262が変な説明を入れたのが元凶だ

271
デフォルトの名無しさん[sage]   投稿日:2017/03/19 10:14:13  ID:pPSf+p35.net(2)
>269
メインに限らないっしょ。同期されたサブスレッド間でも片方が長い処理すれば片方は待ちになるわけだし。
コメント1件

272
デフォルトの名無しさん[sage]   投稿日:2017/03/19 10:31:00  ID:Zac56zGn.net(2)
>271
メインスレッドを待機が発生するスレッドと置き換えて考えたら良いだけの話であってそのあたりは柔軟に考えてくだちい

まー、サブスレッド同士が待機しあって停滞しててもメインスレッドがそこに巻き込まれてなければ(見かけ上は)レスポンスの悪化とかは無いけどね

273
デフォルトの名無しさん[sage]   投稿日:2017/03/19 12:59:15  ID:pPSf+p35.net(2)
結局「スレッド」という英単語が同いう意味かってだけだね。
あと例えば一度にたくさんのログインがあるサーバーなんかは
スレッドたくさん作ることによるメモリの圧迫が指摘されてて
メッセージ処理型に回帰してるよね。
つまり同時(的な)処理においてスレッドが万能ってわけじゃない
ことも知ってたほうがよいよね。

274
デフォルトの名無しさん[sage]   投稿日:2017/03/19 16:36:19  ID:z/4QTPa3.net
で、そのメモリ圧迫とやらは今回の質問のどこにかすっているのかね?

275
デフォルトの名無しさん[sage]   投稿日:2017/03/19 18:47:31  ID:Zac56zGn.net(2)
どんどん話題がすり変わっていくな

276
デフォルトの名無しさん[sage]   投稿日:2017/03/20 01:59:24  ID:Qzpue34I.net
>262
が悔し紛れに難癖つけてるだけっしょ

277
デフォルトの名無しさん[sage]   投稿日:2017/03/20 07:33:47  ID:/HDavIr2.net
予想どおりの反応ですw

278
デフォルトの名無しさん[sage]   投稿日:2017/03/23 17:32:52  ID:0AhE1jWZ.net
10.2tokyo入れて見たんだけど、10.1でgetitから入れたコンパーネントが入れられなくてプロジェクト開けられない。
エンバカ何なんだ?
コメント1件

279
デフォルトの名無しさん[sage]   投稿日:2017/03/24 07:00:18  ID:w0n9pMnW.net
>278
よくある
Getitじゃなくて配布元からダウンロードして入れたらOk

280
デフォルトの名無しさん[sage]   投稿日:2017/03/25 07:13:02  ID:Hlan26fq.net
StarterのBerlinをTokyoにするんだけど
いったんBerlinをアンインストールするんだっけ?

281
デフォルトの名無しさん[sage]   投稿日:2017/03/28 04:59:23  ID:by30piXi.net
StarterのBerlinをインストールしたままTokyoをインストール出来ましたし、同時に起動出来ました。

公式ブログには逆の順番(Tokyo→Berlin)でのインストールは、
お勧めしませんって書いてました。
コメント1件

282
デフォルトの名無しさん[sage]   投稿日:2017/03/28 10:13:09  ID:o61kLVYu.net
>281
ありがとう

上書きインストールされないってことか...

283
デフォルトの名無しさん[sage]   投稿日:2017/03/31 10:26:45  ID:SnNLRdP6.net(4)
2007からXEにあげるのに、いまさらながらユニコードに取り組むんですが、
・フォーム上で入力されるのはUTF-16
・UnicodeStringで保持するのはUTF-16
・ソースはUTF-8
の違いがあるようなのですが、ソースでリテラルで記述したUFT-8の文字を
コンポーネントのテキストやUnicodeStringに代入したりするとごちゃ混ぜに
なってしまうんですか?

284
283[sage]   投稿日:2017/03/31 10:42:53  ID:SnNLRdP6.net(4)
文字コードを確認してみたのですが
var
c: Char;
begin
c := 'あ';
ShowMessage(Format('%x',[(Ord(c))]);

のソースで、ソースをバイナリエディタで見てみると、'あ'の部分
のコードはUTF-8ですが、Ord(c)はUTF-16のコードでした。
これは、勝手に文字コードの変換が掛かるのですか?

285
デフォルトの名無しさん[sage]   投稿日:2017/03/31 11:27:56  ID:tBgePiep.net(3)
こう言うとアレだけど
普通に使うときはユニコードとか
意識する必要ないんじゃない?
コメント2件

286
283[sage]   投稿日:2017/03/31 11:48:21  ID:SnNLRdP6.net(4)
>285
例えば、

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

のような場合だと、sにUTF-8の文字コードとUTF-16の文字コードが混在して
まずいような気がするのですが、プログラム動かしてみると、コンパイル時に
ソースコードでの文字列はUTF-16に変換してるのかな?と思ったのですが。
コメント1件

287
デフォルトの名無しさん[sage]   投稿日:2017/03/31 12:08:45  ID:YNGnrt5P.net
便乗失礼します。
2009以降
・ShowMessageの内部では、UnicodeStringとして表示する文字列を処理します。
ってことだったと思うのでUTF-16変換されてるのかと

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

https://edn.embarcadero.com/jp/article/38783
https://edn.embarcadero.com/jp/article/38791
コメント1件

288
283[sage]   投稿日:2017/03/31 12:14:44  ID:SnNLRdP6.net(4)
>287
リンク先を読んでみると、文字列の代入時に変換してるみたいですね。
ありがとうございます。
コメント2件

289
デフォルトの名無しさん[sage]   投稿日:2017/03/31 12:27:36  ID:tBgePiep.net(3)
>286
大丈夫
ソースファイルがutf8とか意識しないほうがいいよ

文字列リテラルもstring変数もunicodeだよ

290
デフォルトの名無しさん[sage]   投稿日:2017/03/31 12:33:03  ID:tBgePiep.net(3)
>288
内部でどう処理してるのか知らないけど
このケースだと代入時(実行時)に変換してるのかな?

実行ファイルの最後に定数が保存されてたと思うけど
すでにunicodeになってたような気がする

291
デフォルトの名無しさん[sage]   投稿日:2017/04/01 09:16:09  ID:FVobg3nm.net
>285
逆に、常に意識してないと嵌まることがあるよ。

292
デフォルトの名無しさん[sage]   投稿日:2017/04/01 11:20:45  ID:1uakO4Jp.net
コンパイル時に変換

293
デフォルトの名無しさん[sage]   投稿日:2017/04/01 14:47:04  ID:MIBbFxu2.net
>288
リンク先を読んでみると、「すでにUnicodeとして扱われている」ってのが分かると思うんだが。

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

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

C++Builderで扱う場合はLが付いているかいないかでリテラル文字列の扱いが変わると思う。

294
デフォルトの名無しさん[sage]   投稿日:2017/04/01 16:29:34  ID:xnSlrZsr.net
てか簡単なサンプル作って試せば済むことじゃん

昔のバージョンのdelphiで
文字コードを意識する必要があるケース以外
最近のバージョンのdelphiでも
unicodeであることは考えなくていいんじゃない

295
デフォルトの名無しさん[sage]   投稿日:2017/04/01 21:40:45  ID:JcotD4lU.net
真に気を付けないといけないのは1文字に複数文字が入ってるサロゲートペア

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

「ば」と「ば」が違う文字とかわっかんねーよ
コメント2件

296
デフォルトの名無しさん[sage]   投稿日:2017/04/02 09:37:47  ID:OL+frmBm.net(2)
正直UTF8で統一したほうがよかったと思う

297
デフォルトの名無しさん[sage]   投稿日:2017/04/02 09:38:21  ID:WSPdqmkD.net(2)
>295
最後の行は「ば」?
これってサロゲートペアなのか?
それとも別の文字が化けた?

それと
内部の文字列がunicodeになった話と
unicode文字列を処理する話は
微妙に違う話だぞ?
コメント1件

298
デフォルトの名無しさん[sage]   投稿日:2017/04/02 09:40:01  ID:OL+frmBm.net(2)
UTF16も実は可変長という落ちなんだからややこしくなっただけだと思う

299
デフォルトの名無しさん[sage]   投稿日:2017/04/02 10:43:02  ID:3chV0onz.net(5)
>297
2chだと化ける可能性あるから両方サロゲートペアじゃないよ

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

おかげでEditのTextとか必ずUTF8Stringに代入する癖がついてしまった

300
デフォルトの名無しさん[sage]   投稿日:2017/04/02 11:06:40  ID:5Z3z/Zq2.net
は̋

301
デフォルトの名無しさん[sage]   投稿日:2017/04/02 12:55:55  ID:n+5RCyoZ.net(6)
>295
それ、ちょっと間違ってるな。
そのケースはサロゲートペアじゃないだろ。
サロゲートペアは単にUTF-16の2バイトのコードユニットで2つのコードユニットで
1文字を表すケースの事でしょ。

「ば」の話は合成文字だか結合文字だかそっちの話じゃん。

302
デフォルトの名無しさん[sage]   投稿日:2017/04/02 13:01:11  ID:n+5RCyoZ.net(6)
>299
>おかげでEditのTextとか必ずUTF8Stringに代入する癖がついてしまった
だから、それも全然関係ないから。UTF-8だから解決するというのは勘違いだから。
合成文字の問題は「正規化」使って解決する問題。
コメント1件

303
デフォルトの名無しさん[sage]   投稿日:2017/04/02 13:05:11  ID:3chV0onz.net(5)
>302
はしょってるから書いてないけど正規化もしてるよ

文字での説明に重箱の隅つつかないでくださいな
気にしないでやってるとそういう問題(にぶつかる可能性)もあるよって話です

304
デフォルトの名無しさん[sage]   投稿日:2017/04/02 13:10:15  ID:n+5RCyoZ.net(6)
言葉の使い方が完璧に間違ってるのに重箱のすみつつかないでっていわれてもなぁ・・

君たちが議論してる「ぱ」と「は」+「゜」はサロゲートペアと全然関係ないんだけどな。
合成済み文字と基底文字と結合文字の話で合って、
サロゲートペアと全く関係ない。

305
デフォルトの名無しさん[sage]   投稿日:2017/04/02 13:13:23  ID:3chV0onz.net(5)
つまりこれこれこういう問題があってこうしましたって1から10まではしょらず正しい言葉をつかって説明しないとここには書き込むなって事ね。了解。




めんどくせ

306
デフォルトの名無しさん[sage]   投稿日:2017/04/02 13:17:10  ID:n+5RCyoZ.net(6)
完全に言葉の定義を間違ってるんだから、教えてあげただけじゃねぇかよ。

別に間違ってたことに対して、「おまえら馬鹿?」みたいなくだらい煽りとか
俺はする気ねぇし。丁寧な言葉で教えてあげたら、その言いぐさ。

307
デフォルトの名無しさん[sage]   投稿日:2017/04/02 13:20:18  ID:8zECKtY8.net
君たち ではない。

308
デフォルトの名無しさん[sage]   投稿日:2017/04/02 13:23:02  ID:JDqJ1ftS.net
言葉の定義とやらが間違ってたとしても、
バグの原因になる事のコメントは個人的に大歓迎(こなみかん

309
デフォルトの名無しさん[sage]   投稿日:2017/04/02 14:03:03  ID:iqf+IrkA.net
俺には難しい話をしてるけど、文字扱うには正規化とやらをやって、utf8とか16とかに統一してから加工したり検索したりしないとハマるってこと?

310
デフォルトの名無しさん[sage]   投稿日:2017/04/02 17:46:06  ID:WSPdqmkD.net(2)
サロゲートペアに関連してだけど
MECUtilsとか使ってやったりするの?

今まであんまり意識したことないから
注意喚起は嬉しいけどメンドクサ過ぎるね
コメント1件

311
デフォルトの名無しさん[sage]   投稿日:2017/04/02 18:37:26  ID:9KwT0wNW.net
Unicode化の弊害というかなんというかだけど、
マルチデバイスも相まって想定外の変な文字が入る確率っていうのは
確かに飛躍的に増えてる・・・気がする。

312
デフォルトの名無しさん[sage]   投稿日:2017/04/02 20:31:47  ID:n+5RCyoZ.net(6)
>310
そんなの使わなくても普通は標準であるだろ。
Character.pasに必要なのそろってる。
TCharacter.IsSurrogate()
コメント1件

313
デフォルトの名無しさん[sage]   投稿日:2017/04/02 20:47:01  ID:3chV0onz.net(5)
>312
TCharctorなんてものはない

System.Charactor.IsSurrogate(廃止)
もしくは
TCharHelper


314
デフォルトの名無しさん[sage]   投稿日:2017/04/02 20:48:31  ID:3chV0onz.net(5)
おっと綴り間違ってたな
System.Characterだな。また重箱の隅つつかれるところだった

315
デフォルトの名無しさん[sage]   投稿日:2017/04/02 21:07:50  ID:n+5RCyoZ.net(6)
そうなんだ。それはすまん。XE3以降買ってなくて
最新のもってなくて。

316
デフォルトの名無しさん[sage]   投稿日:2017/04/02 23:41:35  ID:9/rnzeyZ.net
今ってディスプレイのアスペクト比が数種類あるけど、皆さんは画面のデザインってどうしてますか?
16:9に合うようにデザインしてる?
それとも、フォームの設定とかで実行時にある程度アスペクト比に合わせてくれる設定とかってある?
コメント3件

317
デフォルトの名無しさん[]   投稿日:2017/04/03 14:57:16  ID:r7DyphN2.net
時代は可変

318
デフォルトの名無しさん[sage]   投稿日:2017/04/03 17:20:51  ID:vwU/OCff.net
>316
全画面表示させない

319
デフォルトの名無しさん[sage]   投稿日:2017/04/03 18:42:50  ID:gM/woy0K.net
>316
意味分からないが。
ウインドウサイズ自体固定させないし、
Align プロパティを使って固定部分とそうでない部分とを分けるし
プラスTSplitterでユーザの好みにさせたりもするし。
動画や画像でもないならアスペクト比なんて気にしないんじゃないのか。

320
デフォルトの名無しさん[sage]   投稿日:2017/04/03 21:28:02  ID:r3n0H3vn.net
やっぱ、全画面表示させないが簡単でいいな

321
デフォルトの名無しさん[sage]   投稿日:2017/04/04 06:32:18  ID:vjUtddW+.net
>316
ファイアーモンキーならTScaleLayout使って無理やり対応した事もあります

322
デフォルトの名無しさん[sage]   投稿日:2017/04/12 07:11:34  ID:lM5IX7kk.net
メモリーリークの場所ってdelphiに標準で入ってるリークを監視するやつのフルバージョン入れないと分からない?

323
デフォルトの名無しさん[sage]   投稿日:2017/04/16 12:03:24  ID:he8BFR5v.net
Delphi10.1でのフル機能のfastmm4の使い方を教えてください。
メモリーリークのメッセージは出るのですが、テキストファイルが作成されないです。
よろしくお願いします。
コメント1件

324
デフォルトの名無しさん[sage]   投稿日:2017/04/17 16:51:42  ID:y+L9zWaz.net(2)
DatetimetostringとFormatDateTimeの違いって
procedureであるか、Functionであるか、だけですか?
(引数は異りますが)
コメント1件

325
デフォルトの名無しさん[sage]   投稿日:2017/04/17 17:16:23  ID:tXRogAtk.net
>324
引数が違うって分かれば
自ずと...
コメント1件

326
デフォルトの名無しさん[sage]   投稿日:2017/04/17 20:24:58  ID:y+L9zWaz.net(2)
>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分手間がかかるなと思ってました。
コメント1件

327
デフォルトの名無しさん[sage]   投稿日:2017/04/18 09:41:09  ID:phVpBhu/.net
何かとの互換性でどうしてもDT2strが欲しかったんじゃないかね

328
デフォルトの名無しさん[sage]   投稿日:2017/04/18 15:11:31  ID:nhn9im/Y.net
>323
http://mrxray.on.coocan.jp/Delphi/Others/UsageFastMM.htm

ここに書いてある手順でやってみた?
コメント1件

329
デフォルトの名無しさん[sage]   投稿日:2017/04/18 18:41:12  ID:EH33vxsU.net
>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を呼び出しているだけ。
コメント1件

330
324,326[sage]   投稿日:2017/04/19 09:04:32  ID:/KRyUyJO.net
>329
なるほど、参考になりました。ありがとうございます。

331
323[sage]   投稿日:2017/04/19 15:21:22  ID:1b3gc8EV.net
>328
FastMM4のデモで試した結果、ソースの所のFastMM4 in 'FastMM4.pas'をSharememに変えたらリークの場所がわかる余裕になりました。
Sharememが何かはわかりません。w
円バカのサイトに載ってたのでやって見たらなんとか動作したって感じです。

332
デフォルトの名無しさん[sage]   投稿日:2017/04/23 00:33:57  ID:h9OMGlcp.net(3)
delphi10.1までは問題なかったのにdelphi10.2にしてから
stylebookで指定したstyleが一部反映されなくなりました。

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

対処方法とか分かる方いらっしゃいますか?
暫くは10.1を使い続けるしかないですかね・・・
コメント1件

333
デフォルトの名無しさん[sage]   投稿日:2017/04/23 01:24:14  ID:6D2X13Ox.net
>332
Android用のスタイルを一旦削除してマージ
コメント2件

334
332[sage]   投稿日:2017/04/23 07:38:09  ID:h9OMGlcp.net(3)
>333
アドバイスありがとうございます。

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

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

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

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

実機はXperia Z3ですが他に持っていないので他機種でどうなるかは未検証です。

335
332[sage]   投稿日:2017/04/23 07:50:06  ID:h9OMGlcp.net(3)
>333
すいませんTabControlのみしかない最小限のプロジェクトで試したら
正常にスタイルが反映されているのが確認できました。

変な設定がどこかで生きているのだと思います。
失礼しましたm(_ _)m

336
デフォルトの名無しさん[sage]   投稿日:2017/04/27 08:22:37  ID:rpeb1FWf.net
メッセージダイアログやショーメッセージで改行を
使うとメモリリークが出るけどなんで?

337
デフォルトの名無しさん[sage]   投稿日:2017/04/27 12:14:19  ID:nqOtHEIU.net
バグってんじゃね

338
336[sage]   投稿日:2017/04/27 12:36:20  ID:axAm+D16.net
delphiがバグってる?
新規作成でシンプルな状態でやってもメモリーリークのメッセージが出るんだけど、どうすりゃ良いんだろう。
俺だけ?

339
336[sage]   投稿日:2017/04/28 22:34:22  ID:WI3n6xVG.net
メモリーリークを調べているのですが
MessageDlg(IntToStr(123),mtConfirmation, [mbOK, mbCancel], 0);
IntToStr(123)が原因でメモリーリークが起きるみたいです。
Delphiのバグ?コードがダメ?

340
デフォルトの名無しさん[sage]   投稿日:2017/04/30 09:29:58  ID:kcq5sr/L.net
ソースみれば?

341
デフォルトの名無しさん[sage]   投稿日:2017/04/30 11:59:29  ID:0p25w19v.net
336ではないけどソースコード見てみた
ポイントになりそうなところがアセンブリで書かれてた

342
デフォルトの名無しさん[sage]   投稿日:2017/04/30 12:08:19  ID:VPr4LyhY.net
それがどうかしたか

343
デフォルトの名無しさん[sage]   投稿日:2017/04/30 23:16:41  ID:rKLNeW5H.net
1. MessageDlg と同じ引数を持つ、そのユニット内にローカルな関数を書いて、MessageDlg のせいかどうか調べる。
2. IntToStr と同じ引数を持ち、適当な文字列を返す関数を同様に書いてみる。
3. コンソールアプリケーションのプロジェクトを作成して、1.を行って調べてみる。
4. 同様に IntToStr も行ってみる。

344
デフォルトの名無しさん[sage]   投稿日:2017/04/30 23:36:32  ID:5yRtGq51.net
どのバージョンで発生したのかしら?
こちらのTurbo Delphiは
ReportMemoryLeaksOnShutdown := True;
で再現せず。

345
デフォルトの名無しさん[sage]   投稿日:2017/05/02 01:47:15  ID:As8TBna0.net
昔の経験
マルチスレッド内で間違った呼びし、クリティカルセクションの間違った実装

346
デフォルトの名無しさん[sage]   投稿日:2017/05/02 08:06:56  ID:Hq/uPbjy.net
「IntToStr(123)が原因でメモリーリークが起きる」
と判断した理由を開示せよ
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
羽鳥慎一モーニングショー★3 (955)テレ朝実況
実況 ◆ 日本テレビ 55270 (879)NTV実況
NHK総合を常に実況し続けるスレ 134101 ごま油 (663)NHK実況
実況 ◆ フジテレビ 83440 (74)フジ実況
ビビット 5/23(火) ★1 (515)TBS実況
はやドキ!& あさチャン!火曜日★2 (703)TBS実況
おはよう!時代劇 暴れん坊将軍4 #17(第18話)[字][再] (933)テレ朝実況
キスマイブサイク ★1 (816)フジ実況
このスレッドが人気です(ニュース系)
【速報】コンサートで事件 爆発可能性=英マンチェスター 20人死亡、200人負傷【動画】 (1000)ニュー速+
【音楽】<多数の死傷者>アリアナ・グランデさんのコンサート会場で爆発! (358)音楽・芸能ニュース
【レゴランド】来場者低迷、隣接店舗が2か月で閉店 売り上げが想定の10分の1 (124)ニュー速+
【英国】コンサートで事件 爆発可能性=英マンチェスター 犠牲者も【動画】 (609)ニュー速+
【フィリピン】ドゥテルテ大統領「信頼できるのは中国とロシアだけ」ロシア・中国との「軍事同盟」も辞さず? (223)ニュー速+
【天皇退位】「皇太子」称号に難色 秋篠宮さま意向で見送り (671)ニュー速+
【テレビ】<テレビを見ないとバカになる>という投稿に騒然!「価値観の違い」の声も 「テレビは見ない」という人も増えてきた。 (440)音楽・芸能ニュース
【中国6邦人拘束】「精神状態が心配だ」 社員が拘束の日本地下探査が会見 (693)ニュー速+
プログラム板の人気スレ
Excel VBA 質問スレ Part48 (164)
ふらっと C#,C♯,C#(初心者用) Part128 (442)
次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 (624)
C言語なら俺に聞け 140 (218)
スレ立てるまでもない質問はここで 147匹目 (941)
【統計分析】機械学習・データマイニング15 (572)
くだすれPython(超初心者用) その33 (865)
Xamarin Part4 (206)
オブジェクト指向って自然な文法だな 3 (610)
ねねっちと一緒にプログラムを勉強するスレ第2話 (788)
Visual Studio 2017 Part2 (503)
Ruby 初心者スレッド Part 60 (255)
Java入門・初心者質問スレ Part.3 (498)
推薦図書/必読書のためのスレッド 81 (905)
Git 15 (818)
Swift part10 (630)
C++相談室 part130 (366)
スマホでは容量的にナンセンスなブロックチェーン (86)
Visual Studio 2015 Part8 (725)
ふらっと C#,C♯,C#(初心者用) Part127 (408)
プログラミング言語 Rust 2 (1002)
JavaScript の質問用スレッド vol.123 (260)
関数型プログラミング言語Haskell Part30 (513)
C# vs Java どっちが好き? その3 (268)
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part21 (66)
【PHP】下らねぇ質問はここに書き込みやがれ 8 (307)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)