くだすれDelphi(超初心者用)その54

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

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

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
http://delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
2 忍法帖【Lv=40,xxxPT】 :2011/12/28(水) 08:23:41.15
<関連スレ>
delphiで作った有名ソフトって何があるの?
http://hibari.2ch.net/test/read.cgi/tech/1135654787/
【Delphi互換!?】FreePascal/Lazarus その2【GPL】
http://hibari.2ch.net/test/read.cgi/tech/1261676778/

ネットワークゲーム作成のお勉強(Delphi専用スレ)
http://hibari.2ch.net/test/read.cgi/gamedev/1028278884/
Delphiでアクションゲームが作りたい!! Part2
http://hibari.2ch.net/test/read.cgi/gamedev/1027482533/
delphiでMMO
http://hibari.2ch.net/test/read.cgi/gamedev/1072515100/

では質問どうぞ。
3デフォルトの名無しさん:2011/12/28(水) 22:55:10.84
完走?落ちた?
4デフォルトの名無しさん:2011/12/28(水) 23:42:01.00
984で落ちたような
5デフォルトの名無しさん:2011/12/30(金) 09:44:55.79
もう人いなんだからスレ立てる必要ねぇよ
6デフォルトの名無しさん:2011/12/30(金) 21:18:53.52
時代はLazarus
7デフォルトの名無しさん:2012/01/05(木) 13:22:04.97
delphi7なんだけど、CombBoxって文字の右寄せって出来ない?
ググったらEditコントロールは出来るみたいだけど。
8デフォルトの名無しさん:2012/01/05(木) 19:30:26.97
Delphiじゃなくて WindowsのCOMBOBOXには右寄せというのは無いからね

オーナードローで描画すれば右寄せ表示も出来るけど、文字入力もしたいんだよね?

Editコントロールで入力して ListBoxを動的に表示させるとか
9デフォルトの名無しさん:2012/01/05(木) 19:46:25.31
CreateWndした後だとprotectedなメンバのEditHandleにエディット部分のhwndが入っているようなので、
こいつを使ってStyleを書き換えればできそう。
10デフォルトの名無しさん:2012/01/05(木) 23:44:48.39
とりあえずコンポーネントを作らないやりかた。まずフォームのinterface部の先頭に
type
 TComboBox = class(StdCtrls.TComboBox)
 private
  FAlignment: TAlignment;
  procedure SetAlignment(const Value: TAlignment);
 public
  constructor Create(AOwner: TComponent); override;
  procedure CreateWnd; override;
  property Alignment: TAlignment read FAlignment write SetAlignment;
 end;
とする。
11デフォルトの名無しさん:2012/01/05(木) 23:45:38.79
んでもって実装はこんな感じ。
constructor TComboBox.Create(AOwner: TComponent);
begin
 inherited;
 FAlignment := taLeftJustify;
end;

procedure TComboBox.CreateWnd;
const
 Alignments: array[TAlignment] of DWord = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
 inherited;
 SetWindowLong(EditHandle,GWL_STYLE,
        (GetWindowLong(EditHandle,GWL_STYLE) and $FFFFFFFC) or Alignments[FAlignment]);
end;

procedure TComboBox.SetAlignment(const Value: TAlignment);
begin
 if FAlignment <> Value then
 begin
  FAlignment := Value;
  RecreateWnd;
 end;
end;
12デフォルトの名無しさん:2012/01/05(木) 23:52:47.48
でフォームに3つTComboBoxを置いて
procedure TForm1.FormShow(Sender: TObject);
begin
 ComboBox1.Alignment := taLeftJustify;
 ComboBox2.Alignment := taRightJustify;
 ComboBox3.Alignment := taCenter;
end;
でもこれだと設計時にAlignmentを指定できないので、それがいやならTComboBoxから派生したコンポーネントを
作ってインストールする。注意事項としてはWindows NT4では複数行ではないEDITにES_RIGHT/ES_CENTERを
指定できないためこれだけではうまくいかないということと、ひょっとしたらStyleにES_AUTOHSCROLLも入れたほうが
いいかも、ということくらいかな。
137:2012/01/06(金) 08:56:08.00
うおおおおおおお
皆さん、ありがとうございます。
10さん、まだ試してないですが使わせていただきます。

本当にありがとうございました。
14デフォルトの名無しさん:2012/01/14(土) 18:22:32.42
DELPHIの既存システムに無線ハンディ売上システムを
アドオンしようとしてるんだけど、
ハンディサーバーは既存でVB.NETでいい感じのシステムがあるんだよね
俺はどの戦略をとるべきかな
ちなみにDELPHI7だけど、俺の職歴はDEL3.1CSで止まってる

1.DELPHIでハンディサーバーシステムを新規構築
  (マルチスレッドなTCPサーバーを作るの面倒)
2.VB.NETサーバー側にDELPHI後方処理を移植
  (既存システムの後方処理を使い回しできない)
3.VB.NETサーバーを利用し、DELPHI後方処理をDLLパックしてコール
(変数の受け渡し等でシリアライズとか問題発生しないかな)

燃料だとでも思ってなんか意見ください
15デフォルトの名無しさん:2012/01/15(日) 04:45:01.30
手間が少ないのは3だろ
16デフォルトの名無しさん:2012/01/16(月) 09:19:10.54
>>15
最近の異言語間のマーシャリングとか得意じゃないんだけど
VB.NETとDEL7ってあんまり気を使わないで済むのかな
17デフォルトの名無しさん:2012/01/16(月) 09:28:22.62
COMで呼べばいいじゃん
18デフォルトの名無しさん:2012/01/16(月) 09:40:25.72
俺だったら全部Delphiでやるけどね。 既存設計の良い所真似してより便利にしてやれば喜んでくれるだろう。
下手に既存との両立とかしたらアレは向こうの問題だとか 問題の切り分けで面倒な事になる。

でも、久しぶりのDelphiだと慣れてないって事もあるだろうからお勧めは出来ないな。
自作のコンポ大量にある場合向けだな。


で、VB.NETとの共存なら、コールバックとかややこしい事しなくても、DelphiからVB.NETのサーバーにアクセスすりゃいいんじゃないの?
プロトコルが判ってるんならだけどさ。

何かデータ加工してもらわないといけないのなら、VB.NET側で加工してファイル渡しで作ればいいじゃない。
19デフォルトの名無しさん:2012/01/16(月) 11:41:20.91
Delphi1〜4まで持ってたんだけど
今再開するとしたら有利なアップグレードパスはありますか?

フリー版ってもうないんですよね
20デフォルトの名無しさん:2012/01/16(月) 16:42:17.14
>>15,17,18
ご意見ありがとうございます

TThreadやSocketの経験はあるのですが、
今日実際に通信サーバーを作ろうとしたらApplication.ExeName
すらぐぐらないと思い出せない始末
この分では2週間ぐらいかかってしまうので

VB通信サーバー −> FireBirdトランかきこ
−> Delphi監視サーバー −> 伝票自動発行
の流れで行こうと思います。(監視サーバーは定期監視か可能ならSocket通知)
21デフォルトの名無しさん:2012/01/16(月) 21:40:30.78
>>19
とりあえずStarter SKU(Delphi XE2 Starter)でいいのでは?これで足りないようなら今年の9月頃にXE3が出ると思うんで、
そのときにジャンプアップキャンペーンがあればこれでPro以上のSKUにするのがオヌヌメ。
22デフォルトの名無しさん:2012/01/17(火) 21:21:27.11
mainmenuを使って
メニューを作っています。
コンパイルすると
メニューの文字の左側に(アルファベット1文字)が追加されています。
例)ファイル(X)
開く(Y)
閉じる(Z)
カッコとアルファベットを消す方法を教えて下さい。
23デフォルトの名無しさん:2012/01/17(火) 21:27:42.97
つAutoHotkeys
2422:2012/01/17(火) 22:58:21.85
maManualにしたらできました。
ありがとうございます。
25デフォルトの名無しさん:2012/01/17(火) 23:39:07.83
delphi3の頃から見かける質問だがいまだにこれが出るって事は新規がまだいるんだなぁ
26デフォルトの名無しさん:2012/01/17(火) 23:45:03.28
ホットキーがついてないのって出来損ないのクロスプラットフォームアプリでしか見かけないな
27デフォルトの名無しさん:2012/01/18(水) 18:18:04.32
ツールボタンしか用意してないものとかもあるもんな
28デフォルトの名無しさん:2012/01/18(水) 21:56:03.23
Delphi6使ってるんですが、Indy9はHTTP1.1に対応していますか?
ヘルプには
IdHTTP1->ProtocolVersion のデフォルトは pv1_1 と書いてありますけど。
Transfer-Encoding: chunked だと途中でファイルが途切れることがあるみたいなのですが・・・
29デフォルトの名無しさん:2012/01/19(木) 09:58:37.70
それはDelphiじゃなくてIndy側の問題。どうせオープンソースだから自分で直せ
30デフォルトの名無しさん:2012/01/20(金) 00:24:41.00
>>28
chunkedなデータって元々サイズ指定がなかったりするから
途切れてるんじゃなくてそれで正常って可能性もあるんじゃね?
31デフォルトの名無しさん:2012/01/20(金) 06:00:51.65
RFC嫁
3228:2012/01/20(金) 06:55:44.94
ネットモニタで見てみたら、ちゃんとデータは鯖から送信されていました。
なので、Indyがchunkedに対応していない、あるいはバグのようです。
>>30 ちなみに、chunkedはブロックごとにサイズ指定して送信してくる方式ですよ。
いろいろ試行錯誤してみた結果、
ProtocolVersion:=pv1_0 にするとchunked形式ではなく普通の形式で送信される
ので、とりあえずはそれで回避しましたが、なんか鯖の反応が遅くなるみたいです。
Indyのソースは見てみましたが、膨大で挫折しました。
どこを見ればいいんでしょうか。
33デフォルトの名無しさん:2012/01/20(金) 16:39:05.59
Delphi初心者です
34デフォルトの名無しさん:2012/01/20(金) 16:41:04.77
Delphi初心者です
マルチクライアントなTCPサーバーを作ろうと思うのですが、
TTcpServerというのを使えばいいんでしょうか?
バグとか機能的に使えんとかいうご意見があれば教えてくさい
あと、それよりこっちがいいよっていうコンポーネントなんか
あったら教えてくさい
35デフォルトの名無しさん:2012/01/20(金) 17:17:28.40
Ararat Synapse にマルチクライアントなTCPサーバーのサンプルがついてるよ
36デフォルトの名無しさん:2012/01/20(金) 17:25:43.67
>>35
34です。ありがとうございます。調べてみます。
TTcpServerは使い物にならないってことですかね?
37デフォルトの名無しさん:2012/01/20(金) 18:44:20.50
特に理由がなければC#とかの方がいいよ
38デフォルトの名無しさん:2012/01/20(金) 18:51:21.57
ほんとだったら.Net Frameworkでやりたいんですが、今回はDelphi言語指定です
39デフォルトの名無しさん:2012/01/20(金) 19:00:54.62
まぁ、TTcpServerぐらいなら元のWinSockラップしてるだけだし。
バグとか大丈夫なんじゃ。ソースも簡単に追える程度でしょ。
40デフォルトの名無しさん:2012/01/20(金) 19:08:38.45
>>39
34です。とにかく情報が少なすぎて不安ですが、チャレンジしてみます
ありがとうございました
41デフォルトの名無しさん:2012/01/20(金) 19:15:12.47
42デフォルトの名無しさん:2012/01/20(金) 19:17:51.82
はい、そこは見てます。これぐらいしかないんですw
43デフォルトの名無しさん:2012/01/20(金) 22:35:18.64
>>32
サイズって全体のサイズな
細切れ毎のサイズだけでは全体がいくつか分かんないでしょ
44デフォルトの名無しさん:2012/01/20(金) 22:38:25.99
>>42
古いものだけど、TServerSocketの方が情報はあるかもしれない
簡単に言えばTTcpServerの旧世代版みたいなもの
標準ではインストールされてなかったと思うけど、一応最新のDelphiにも入ってたはず
導入方法はググれ
45デフォルトの名無しさん:2012/01/21(土) 02:56:00.45
>>32
Content-LengthとTransfer-Encoding: chunked が同時に指定されている場合に
鯖によって問題出る事があって昔Janeでバグ修正してるけど関係あるかな?
TIdCustomHTTP.ReadResultの判定順序変えてるけど
46デフォルトの名無しさん:2012/01/21(土) 07:56:32.97
>>37
C#でサーバーとな。気は確かか?
47デフォルトの名無しさん:2012/01/21(土) 08:12:16.95
.NETはWinForm,WPFなどのクライアントよりASP.NETなどのサーバー分野の方が強いんだけど
48デフォルトの名無しさん:2012/01/21(土) 08:27:18.57
いや、別に止めないけど
49デフォルトの名無しさん:2012/01/21(土) 09:00:50.83
Delphi+Indyに比べれば何でもましだろ
50デフォルトの名無しさん:2012/01/21(土) 10:39:32.91
だな
51デフォルトの名無しさん:2012/01/21(土) 12:09:25.77
というかArarat Synapse のサンプルはマルチスレッドだから実用に耐えるよ。
Indyは確かに糞だよ。
52デフォルトの名無しさん:2012/01/24(火) 09:04:17.21
パッケージ・インストールの質問です。
TMS SoftwareのTAdvListViewをインストールしようとしていますが、
次のようなエラーが出ます。

パッケージ C:\Users\Public\Documents\RAD Studio\9.0\Bpl\alvPkgDXE2.bplは
異なる Delphi または CBuilder で作成されたためインストールできません。

コンパイルはエラー無く終了します。上記のalvPkgDXE2.bplは、
正常にコンパイルした結果でファイルの更新日付は新しくなっています。
TMS Softwareのサポートにもメールで問い合わせましたが、解決の
糸口がつかめません。bplのファイルを生成するときに、バージョンを
指定するオプションがあるのかと探していますが、
手詰まりになってきました。

'異なるDelphiまたはCBuilderで作成'というキーワードから、点検のポイント
がわかればご教授ください。
53デフォルトの名無しさん:2012/01/24(火) 11:22:57.74
私教授じゃないから教示はできても教授はできないわ
54デフォルトの名無しさん:2012/01/24(火) 11:42:45.40
この際Lazarusに移行しちゃえば?
55デフォルトの名無しさん:2012/01/24(火) 19:53:55.61
_alvPkgDXE2.bpl
にでもリネームしてみる
56デフォルトの名無しさん:2012/01/24(火) 23:38:49.03
52です。
この件クローズです。
直接の原因はTAdvStringGridがインストールされているためでした。
そもそも、TAdvListViewと共存できるのかTMS Softwareに確認しています。
お騒がせしました。
57 ◆XcB18Bks.Y :2012/01/28(土) 02:48:08.05
Turbo Delphiのテキスト選択に関する質問です。

普段はテキスト選択のあとにキャレットを移動させると
テキスト選択が解除されますが
使っているうちに何か変なキー操作をしてしまったのか
テキスト選択モードが変わってしまったようで
キャレットを移動してもテキスト選択が解除されません。

これはどうやったら元に戻る(切り替えられる)のでしょうか。
ヘルプを見たのですが分かりませんでした。
58デフォルトの名無しさん:2012/01/28(土) 03:29:43.82
その質問をするためにはどうしてもトリップを付ける必要があったのでしょうか?
59デフォルトの名無しさん:2012/01/28(土) 05:17:26.69
うぜえよ
答えられないならレスすんな、カス
60デフォルトの名無しさん:2012/01/28(土) 08:55:36.81
キーボードにコーヒーこぼしてShiftキーが押しっばなし状態になったことはあった
61デフォルトの名無しさん:2012/01/28(土) 21:48:25.50
今のデルファイで232c扱うコンポーネントある?
62デフォルトの名無しさん:2012/01/28(土) 22:43:59.27
CommPortとかTurboPower Asyncあたり
63デフォルトの名無しさん:2012/01/29(日) 16:39:11.89
ドラッグアンドドロップで、画像を配置して表示させるフォーム
をつくるには
どうすればいいでしょうか。
64デフォルトの名無しさん:2012/01/29(日) 22:55:17.20
まずドラッグアンドドロップの処理をフォームに実装します
65デフォルトの名無しさん:2012/01/29(日) 23:09:04.21
>>63
「フォームをつくる」の意味が曖昧だけど

usesにShellAPI

WM_DROPFILES

DragQueryPoint

を検索してみたらよろしいかと
66デフォルトの名無しさん:2012/01/30(月) 18:31:05.62
ファイルをとは一言も言ってません
67デフォルトの名無しさん:2012/01/30(月) 20:04:21.35
はい、次の方
68デフォルトの名無しさん:2012/02/01(水) 10:12:15.10
Del2010です。コンパイルオプションの範囲チェックを有効にしたプロジェクトを読み込むと、

var
a : UInt64;
begin
a := $f000f000;
a := a shl 32;
showmessage(inttohex(a,16));

こういうコードの場合、shlの行でaの上位4バイトに対して負の数だったら、@BoundErrとなるように範囲チェック処理が働きます。
UInt64の場合これはおかしいように思いますが、なぜなんでしょう。実は暗黙的にUInt64もInt64として扱われるんでしょうか。
69デフォルトの名無しさん:2012/02/01(水) 10:57:07.37
>>68
この際だから Lazarus に移行しちゃえば?
70デフォルトの名無しさん:2012/02/02(木) 10:45:46.55
>>68
IntToHexの引数の型を見たことはある?
71デフォルトの名無しさん:2012/02/02(木) 11:56:14.72
こんにちは。
Delphi7でmdbをTADOQueryで読み込んでDBGridに表示しています。
そのADOQueryにはCalcFieldがあり、OnCalcFieldsイベントで
データをセットしています。
で、このクエリをDBGridに表示し終わった時に、そのCalcFieldの
値の全レコードの合計をTEditか何かに表示させたいと思って、
OnCalcFieldsイベントプロシジャの中で、
Ruikei := Ruikei + CalcFieldの値;
みたいに累計を求める式を書いてるのですが、
OnCalcFieldsイベントはDBGridに表示されているレコードしか
呼び出されないようで、全レコードの合計になってくれません。
CalcFieldの値の全レコード合計を出すにはどうすればよいでしょうか?
72デフォルトの名無しさん:2012/02/02(木) 12:26:02.02
>>71
逆に mdb にクエリー投げたくない理由教えて。
なんでわざわざDBGrid 解して計算したいの?
73デフォルトの名無しさん:2012/02/02(木) 12:31:34.73
>>72
DBGridには表示してるだけです。
TADOQueryでmdbにSQLを投げてます。
74デフォルトの名無しさん:2012/02/02(木) 12:33:15.29
>>72
mdb - TADOConnection - TADOQuery - TDataSource - TDBGrid
7568:2012/02/02(木) 13:24:05.22
>> 70
はい、あります。Integerですよね。IntToHex自体はaの中身を表示する処理ですが、
それはあくまで、その時点でaにセットされている内容を表示する処理ですよね。
したがってaの中身が$8000000000000000であればそれが表示されるでしょう。

私が思うのは、その前のshlの段階。
shlは符号に無関係な"論理左シフト"である以上、1 shl 63は$8000000000000000と
セットされるべきで、ここに符号ありチェックが入るのは、おかしいのではないか?
という趣旨です。

参考までに、下記のようなコードでもやはり同様の現象が起きます。
var
a : UInt64;
begin
a := 1; a := a shl 63;
pcardinal( pbyte( @a ) + 4 )^ := $f; // とりあえずaを使用するためのダミー処理
76デフォルトの名無しさん:2012/02/02(木) 13:31:28.53
>>75
逆アセして貼ってくれ
77デフォルトの名無しさん:2012/02/02(木) 14:24:06.29
>>75
DXEで逆アセのコードを見てみたけど、まずshl 32はシフト命令を使用していない。64bitデータの
左32bitシフトは下位32bitを上位に移動して、下位32bitを0にする、という形に最適化されている。

その上でaがInt64なら範囲チェックなし、UInt64なら範囲チェックあり、というコードが生成されている。
逆じゃね?という指摘はまぁそのとおりのような気もする。
78デフォルトの名無しさん:2012/02/02(木) 16:14:49.32
>>73
>>74
よくわからんがどうしてもDBGridを仲介させたいなら
DBGridを全スクロールさせるとかしかないわな。
俺なら別のクエリで計算させるけど。
79デフォルトの名無しさん:2012/02/02(木) 21:19:58.70
Delphi6 で質問です。

データの簡易エディタ表示部分を作ろうとしているのですが、

Index |  txt  | −1− | −2− | −3− |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
☑ฺ 1 | data1txt | −1-1txt− | −1-2txt− | −1-3txt− |▲|
☑ฺ 2 | data2txt | −2-1txt− | −2-2txt− | −2-3txt− | |
☑ฺ 3 | data3txt | −3-1txt− | −3-2txt− | −3-3txt− | |


 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
[←]_____________________[→]

表示は別ボタンなどで計算結果などを表示するだけ。
項目内で直接書き換えはしません。
行数はデータによって1000行ぐらいまで変動します。
チェックボックス付きの項目(有効/無効)用を入れるには ListView でいけますか? 他にあります?

ScrollBox → ListView (ViewStyle vsReport) ?
80デフォルトの名無しさん:2012/02/03(金) 11:53:48.51
そういうリストビューコンポーネントを作れば?
81デフォルトの名無しさん:2012/02/03(金) 13:35:10.16
>>79
Checkboxes
82デフォルトの名無しさん:2012/02/03(金) 14:32:57.41
ListViewでいいだろ。
83デフォルトの名無しさん:2012/02/03(金) 14:38:09.78
>>79
すぐできるからやってみろ
84デフォルトの名無しさん:2012/02/04(土) 03:04:32.39
ドモドモ
Checkboxes というコンポーネントかと思って探しまくってました orz
ListView の プロパティCheckboxes を True にするのですね。
これを探してました、ありがとう!
85デフォルトの名無しさん:2012/02/04(土) 23:13:25.01
教えてください。
TProgressBarで、カウントする数字が未確定の場合などに
左右にバーが揺れながら移動するのを見かけたのですが
どのように実現するのでしょうか。
調べたら、TProgressBarには、pbstMarqueeという形式がありますが
pbstMarqueeだと、左から右にブロックが移動しますが
実現したいのは、左右に移動する形式です。
86デフォルトの名無しさん:2012/02/05(日) 03:52:17.11
自前で描画
87デフォルトの名無しさん:2012/02/05(日) 21:22:17.35
gifアニメでいいんじゃないの?
88デフォルトの名無しさん:2012/02/06(月) 22:11:57.85
>>85
ProgressBar1.Position := 0; 〜
を ProgressBar1.Max までの範囲で直接増減させたらダメなの?
89デフォルトの名無しさん:2012/02/06(月) 23:21:27.87
読解力に少々問題があるようですね
90デフォルトの名無しさん:2012/02/08(水) 12:59:02.85
脳も左右に揺れております
91デフォルトの名無しさん:2012/02/08(水) 21:38:04.18
むかし、 Knight2000というコンポーネンがあってだな
92デフォルトの名無しさん:2012/02/11(土) 08:56:08.55
XE2 Starterって買ってメリットある?
ジャンプアップで1万引きでproが買えるって話なら、結局払ってる金同じじゃん
それなら、VS2010のProを5万そこそこで買ってる方が得だと思うけど。
もっと安かったら飛びつくのだけどなdelphi。残念。
93デフォルトの名無しさん:2012/02/11(土) 09:45:26.15
貧乏人は麦を食え
94デフォルトの名無しさん:2012/02/11(土) 10:42:43.45
今は麦飯にすると高くつくけどな
95デフォルトの名無しさん:2012/02/11(土) 18:20:08.08
XE/XE2で
tmyclass=class
published
procedure foo;
procedure bar;
procedure baz;
end;
でpublishedなメソッドfoo,bar,bazの一覧を得る方法あったら教えて下さい。
なるべくならRTTIを使った安全な方法でおねがいします。
96デフォルトの名無しさん:2012/02/11(土) 19:02:09.38
Rtti.pas
97デフォルトの名無しさん:2012/02/11(土) 19:54:42.75
TRRIContext.Create
GetTypes(tmyclass)
GetMethods
ToString

こんな流れ
98デフォルトの名無しさん:2012/02/11(土) 20:48:51.65
うまくいきました。ありがとうございます。

publishedかどうかの判定はTRttiMethodのメソッド、プロパティに見当たらなかったので
TMyClass.MethodAddress(Method.Name) <> nil
で判定しました。
99デフォルトの名無しさん:2012/02/12(日) 10:28:04.80
TRttiMemberにVisibilityプロパティあるじゃんかよ。
100デフォルトの名無しさん:2012/02/12(日) 17:11:43.59
じゃあ最初からそう書いてもらえます?
10197:2012/02/12(日) 18:27:05.82
>>99はおれじゃないし。
適切なフォローありがと>>99
102デフォルトの名無しさん:2012/02/13(月) 01:03:13.19
うむ、苦しゅうない
103デフォルトの名無しさん:2012/02/14(火) 18:36:47.26
Delphi6EnterPriseで、ApplicationEventsのOnMessageイベントの中で、
Msg.Message=WM_KeyDownだった場合に、
テンキーのどのボタンが押されたかを判断するにはどうしたらよいでしょうか?
半角入力時の判断は実装済みで、今回は全角入力時の判断を実装します。
104デフォルトの名無しさん:2012/02/14(火) 20:41:53.35
IMEに取られちゃうからうまくいかないんじゃね?
105デフォルトの名無しさん:2012/02/15(水) 00:21:02.67
IMEを自分で直接コントロールすれば、不可能ではないだろうな
106103:2012/02/15(水) 01:09:40.88
AやS等のキーはMapVirtuaklKey(LOBYTE(HIWORD(Msg.lParam)))で判断できました。
ですが、問題はテンキーのどのキーが押されたかどうかが知りたいのです。
107デフォルトの名無しさん:2012/02/15(水) 09:31:37.72
>>104-105を無視して何がしたいの?コード丸ごと書いて欲しいわけ?
108デフォルトの名無しさん:2012/02/15(水) 10:09:32.17
Ex付きのを使うのか、VkKeyScanExあたりを使うのか、Imm系関数を使うのか、
あるいは低レベルフックか、可能性がありそうなのはこのあたりか。
本当はWin32APIスレで聞けっていいたいけど、あそこは既知外に粘着されてて
機能してないからな…。
109103:2012/02/15(水) 11:03:12.67
ImmGetVirtualKey(Handle)で取得したコードで解決できました。
>>104-105 >>107
無視する様な発言をして、すみませんでした。

>>108
ApplicationEventsのOnMessageイベント内で解決したかったので、こちらに投稿してしまいました。
今度からWin32API用スレッドに先に行ってみます。
110108:2012/02/15(水) 11:57:09.73
>>109
> 今度からWin32API用スレッドに先に行ってみます。
やめとけ。このあたりにいるアンチとは比べ物にならないのがもう1ヶ月以上も粘着してんだから。
111デフォルトの名無しさん:2012/02/17(金) 11:25:49.03
コンボボックスのonkeypressに重めの処理書いて123って入力した場合、
321123って表示されてしまう。

これどうすればなおせる?
112デフォルトの名無しさん:2012/02/17(金) 12:08:50.62
コード晒せよ禿
113デフォルトの名無しさん:2012/02/17(金) 23:42:05.97
禿じゃないので諦めます
11454:2012/02/18(土) 03:58:55.01
スカルプって毛生えないらしい、ショックだ
勝手に上書きして欲しいんだろうけど、やめた方がいいよ
115デフォルトの名無しさん:2012/02/20(月) 23:40:39.00
XE2のヘルプの見方がさっぱりわからん
116デフォルトの名無しさん:2012/02/21(火) 09:48:13.70
オンラインヘルプのほうがまだましかも
117デフォルトの名無しさん:2012/02/21(火) 10:31:05.80
ヘルプに文句言う人は、何のことについて調べていたのか書かないよね。
118デフォルトの名無しさん:2012/02/21(火) 13:17:09.07
youtubeでiosアプリの作り方見たんだけど、
macの上でdelphi使ってた見たいなんだけど、
BootCampじゃなくて、仮想なんチャラみたいなので
Windowsを使えばdelphiが使えて、プロジェクトもMacにドロップ
出来るの?
119デフォルトの名無しさん:2012/02/21(火) 13:30:09.86
ヘルプでやたら

このトピックには現在ドキュメントが存在しません。「ノート」を利用してこのトピックの改良について話しあうことができます

出てくるんだけど、プロパチィとかイベントのヘルプってほとんど無いじゃない?
120デフォルトの名無しさん:2012/02/21(火) 13:45:56.49
結果はわかったが何を調べたんだ
121デフォルトの名無しさん:2012/02/21(火) 14:19:33.20
>>118
Lazarusだよ。できるよ。
122デフォルトの名無しさん:2012/02/21(火) 17:58:06.15
>>119
ものによる。最近新しく追加されたようなコンポーネントのヘルプは内容がないことが多いな。
ただ右下の"現在のwikiページを表示"で出てくるものもある。
123デフォルトの名無しさん:2012/02/21(火) 20:08:57.07
>>120
何でお前にいちいち報告しないといけないの?
124デフォルトの名無しさん:2012/02/22(水) 08:17:56.24
なおるかもしれないじゃん。
125デフォルトの名無しさん:2012/02/22(水) 12:42:08.04
炎猿とかはヘルプ無いよね?
追加インスコとかするの?
126デフォルトの名無しさん:2012/02/22(水) 12:49:52.23
127デフォルトの名無しさん:2012/02/22(水) 21:46:50.31
ヘルプに、説明抜けが多量にあるわけだが。
マラメータの意味がわからんわ。
128デフォルトの名無しさん:2012/02/24(金) 23:46:34.23
StepItすると左からチ○コが生えてくるProgressBarか
12954:2012/02/24(金) 23:53:20.02
XE2持ってるのに、また買えって案内きた
130デフォルトの名無しさん:2012/02/25(土) 00:41:45.77
>>129
この際Lazarusに移行しちゃえば?
131デフォルトの名無しさん:2012/02/25(土) 00:53:40.20
TPanelの上にTImageを置いて
TImageがTPanelの大きさを超えたら(TPanelからはみ出したら)
スクロールバーを出す(スクロールバーではみ出した部分をスクロールできる)ように設計したいんだけど
TPanelのプロパティのどれを使えばいい?

もしかしたら滅茶苦茶なこと聞いてるかも…
132131:2012/02/25(土) 01:21:07.64
追記

TScrollBoxの上にTImage置いて、
TScrollBoxのAutoSizeをTrueにしてもみたけどダメだった。
133デフォルトの名無しさん:2012/02/25(土) 01:47:51.15
すみません。教えて下さい。
時間のかかる処理の進捗を知らせるため、プログレスバーを乗せたフォーム(Form2)を表示して
ループの中でプログレスバーのPositionを1ずつ増やしてます。
でも、何故かプログレスバーのゲージが増えず、ソフトが止まったみたいになります。

Applicationのメソッドの何かでループの中からソフトの動作を更新(?)すればいいのかとも思うんですが
どんなメソッドを使えばいいんでしょう?
支離滅裂ですが教えて下さい。
134デフォルトの名無しさん:2012/02/25(土) 09:01:59.10
デルファイって、VBのように配列の要素数を超えて
値を入れようとすると、デバッカがエラー出してくれる?
135デフォルトの名無しさん:2012/02/25(土) 09:09:12.03
そういうコンパイラオプションもあるよ
136デフォルトの名無しさん:2012/02/25(土) 09:11:06.91
>>133
Application.ProcessMessages
137デフォルトの名無しさん:2012/02/25(土) 09:12:48.00
>>131
そういう時はTPanelじゃなくてTScrollBoxを使う
138デフォルトの名無しさん:2012/02/25(土) 09:20:07.43
>>135
そうなの。あまり気にせず書けて便利ですね。
ということは、兄弟であるCビルダーも同じってことなの?
139デフォルトの名無しさん:2012/02/25(土) 13:30:35.06
Alt+F4が押されるた時、Formを閉じないようにしたいんです

「カーソル位置まで実行」でFormのKeyDown、KeyPress、CloseQueryに
来たら停止するようにしてみたんですけど、停止しないみたいです

Formのスタイルとかを変える…という方法でも結構ですので
Alt+F4を無効にする方法をお願いします
140デフォルトの名無しさん:2012/02/25(土) 14:50:10.65
>>139

KeyDownの中で
Key=0
でよくないか?

試してないが…
141140:2012/02/25(土) 14:51:20.51
Key:=0 だった orz
142デフォルトの名無しさん:2012/02/26(日) 10:09:18.74
>>133 こういうのってWindowsの仕組み自体を知らない人なんだろうな
143デフォルトの名無しさん:2012/02/26(日) 12:19:00.14
これから覚えれば良いこと
所詮、プログラムは知識量
144デフォルトの名無しさん:2012/02/26(日) 13:57:46.54
炎猿 FMX.TCanvasで、角度を持った文字を出力したんいんだが、
FillTextでは無理、CreateFontらしきものも見当たらない、
TBitMapに書いて、自分で座標変換して出力しないといけないのかなぁ
145デフォルトの名無しさん:2012/02/26(日) 17:14:50.87
>>142
超初心者用スレで「この人は超初心者だ」と指摘することにどれだけの意味があるとお考えですか?
146144:2012/02/26(日) 17:44:48.87
自己解決
炎猿 FMX.TCanvasではなく、
FMX.Formなんかで、 TLabelを書きたい位置に貼って(描画時に生成しても良い)
TLabel RotateAngleに角度を代入すれば桶だったわ。

FMXでこういうプロパティが追加されているならVCLにもあるか?と
さがしたが、Vcl.TLabelにはRotateAngleはありませんですた。

炎猿で一瞬でできること、VCLで一瞬でできること、それを違うほうで
やるときに考え方をコロっと変えなければという現実を見て、orz...
147デフォルトの名無しさん:2012/02/27(月) 20:51:12.94
>>145
確かにdelphiは初心者にとって扱いやすくていいのだけど、
やっぱりある程度のことをやろうと思うと、おとなしくCから
学ぶべきなんだろうなと、つい先日林はるひこの本買いました。
精進します。
148デフォルトの名無しさん:2012/02/28(火) 17:41:17.89
精々頑張りたまえ
149デフォルトの名無しさん:2012/03/03(土) 17:36:46.55
TreeViewにおいてツリー状にノードがある場合に
特定のノードからサブ含む子ノード全てにアクセスしたいのです。

再帰関数の書き方がわかりません。
サンプルいただけないでしょうか?
150デフォルトの名無しさん:2012/03/03(土) 20:22:49.74
XE2のIDEでALTキーを押した時に初めて”ファイル”メニューが”ファイル(&F)”と表示されるようになりますが
常時"ファイル(&F)"と表示されるようには出来ませんか。

わかりづらい上にたまに一度ALTを離してからでないと
サブメニューのアクセラレータキーが表示されないことがあって困ってます。
151149:2012/03/03(土) 22:25:04.56
TreeNodeの再帰の件は自己解決しました

procedure exNode(TargetNode: TTreeNode);
var
 Node: TTreeNode;
begin
 Node:= TargetNode.getFirstChild;

 while Node<>nil do
 begin
  //ここに処理を書く

  exNode(Node, b);
  Node:= TargetNode.GetNextChild(Node);
 end;
end;
152デフォルトの名無しさん:2012/03/04(日) 16:55:36.85
えっ
153デフォルトの名無しさん:2012/03/05(月) 05:12:05.37
びっ
まっ
よっ
ねーず
154デフォルトの名無しさん:2012/03/05(月) 08:34:59.99
s := 'foo#'#13#10'bar'#1#2#3;
な文字列を
'foo###13#10bar#1#2#3'
のように相互にescape/unescapeしてくれる関数あったら教えて下さい。
155デフォルトの名無しさん:2012/03/05(月) 13:05:28.87
すみません、教えてください。

C#(Visual studio2010 Windowsフォームアプリケーション)で作成したフォームを
DelphiでDLLファイルかTLBファイルから呼び出したいんですが、やり方がわかりません。
どなたか教えていただけませんでしょうか
156デフォルトの名無しさん:2012/03/06(火) 23:25:13.21
本当に済まないと思っているのか。
157デフォルトの名無しさん:2012/03/07(水) 04:24:03.31
痛い。
158デフォルトの名無しさん:2012/03/07(水) 07:53:14.50


   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ     >155  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
159デフォルトの名無しさん:2012/03/07(水) 10:44:42.00
ぜんぜんDelphiのこと知らないんだけど
Delphi.netってどうなったの
160デフォルトの名無しさん:2012/03/07(水) 11:02:08.20
win7のハンドル調べるツールは何を使っていますか?
161デフォルトの名無しさん:2012/03/07(水) 22:25:43.45
自作
162デフォルトの名無しさん:2012/03/08(木) 12:00:04.20
他作
163デフォルトの名無しさん:2012/03/08(木) 13:31:01.81
与作
164デフォルトの名無しさん:2012/03/08(木) 15:05:05.08
Delphi XE の 「コード」「履歴」「デザイン」タブの「デザイン」タブが
消えて、フォームが見れなくなったんですが、復活させるのは、どうすれば良いのでしょうか?

お願いします。お願いします。お願いします。
165デフォルトの名無しさん:2012/03/08(木) 15:55:50.94
[F12]じゃだめなの?
166デフォルトの名無しさん:2012/03/08(木) 16:08:45.29
環境オプション-VCLデザイナ-埋め込みデザインにチェックついてるとか
167デフォルトの名無しさん:2012/03/08(木) 16:10:06.33
逆だ。チェック外すと昔のIDEようにフォームが独立したウィンドウで表示される。
168164:2012/03/08(木) 16:22:59.92
とりあえず、自己解決しました。

pas ファイルと dfm ファイルは、残ってるのですが、「デザイン」タブが
無くなったので、[F12]は、効きませんでしたし、編集画面左上の切り替えボタンも
使用不能になってました。

新しく Form2 を作り、Form1 の dfm ファイルの中身をテキストエディタで
Form1 を Form2 に置換して貼り付けたら Form2 で、画面は復活しましたが
同じ方法で, pas ファイルを Form1 を Form2 に置換して貼り付けたら
また、Form2 も「デザイン」タブが、消えて同じ現象になりました。

新しく Form3 を作り、 dfm ファイルを貼り付けて
pas ファイルは、procedure や fanction の枠だけ造り、var i: Integer;
だけ、書いて保存し、procedure や fanction の中身だけ貼り付けたら
「デザイン」タブが消えずに復活しました。
169164:2012/03/08(木) 16:31:28.21
>>166,167
そのチェックは、関係無かったです。

現象としては、「デザイン」タブが、完全に無くなり、
編集画面の左上の3番目のボタン「フォーム/ユニットの切り替え(F12)」ボタンが
Enabled := false みたいに使用不可になって使えませんでした。
170デフォルトの名無しさん:2012/03/08(木) 18:47:12.10
起動時に複数のフォームを表示させるにはどうすればいいですか?
171デフォルトの名無しさん:2012/03/08(木) 20:16:06.54
{$R *.dfm}を消したんじゃね?

>170
メインフォームのOnShowで2つめのフォームを作って表示するか、メインフォームと同様に
2つめのフォームを自動生成にする。
172デフォルトの名無しさん:2012/03/09(金) 01:38:09.26
>>171
ありがとう
173164:2012/03/09(金) 11:06:26.37
>>171
消してないです。まあ、なんとか復活したので良かったです。
174デフォルトの名無しさん:2012/03/12(月) 08:17:33.72
例えば
'dir c:\ /s /b'
という外部コマンドを実行して結果を取得するような
ライブラリって無いですか。

WinExecで'cmd.exe /c dir c:\ /s /b > temp/result.txt'
みたいなことをやってるんですがもうちょっとスマートに(出来ればリアルタイムに1行ずつ)取りたいです。
175デフォルトの名無しさん:2012/03/12(月) 09:30:47.26
FindFirst/FindNext/FindCloseとかそういう話じゃなく?単にコンソールアプリを
起動してその出力を取りたいってこと?それならパイプを使うんだけど、
Delphi コンソール パイプとかで検索してみたら?
176デフォルトの名無しさん:2012/03/12(月) 09:32:11.02
というかそんなのぐぐればすぐ見つかる
177デフォルトの名無しさん:2012/03/12(月) 13:16:11.05
ggrks
178デフォルトの名無しさん:2012/03/12(月) 17:02:58.73
これって毎度ググれとか言う割にまともな実装がひとつもないんだよなw
179デフォルトの名無しさん:2012/03/12(月) 17:13:29.89
180デフォルトの名無しさん:2012/03/13(火) 00:03:34.25
JVCLのTJvCreateProcessとか
181174:2012/03/13(火) 09:37:39.18
有難うございました。
182デフォルトの名無しさん:2012/03/13(火) 13:37:07.10
>>178
ググる能力すらなかったんだね(ニッコリ
183デフォルトの名無しさん:2012/03/13(火) 14:12:44.77
これってssl通信できますか?
184デフォルトの名無しさん:2012/03/13(火) 17:41:33.10
Indy10ならOKでは?
185デフォルトの名無しさん:2012/03/15(木) 21:23:41.09
delphiにプロトタイプ関数ってあるの?
186デフォルトの名無しさん:2012/03/15(木) 22:53:18.22
Cのプロトタイプ宣言相当ならこんな感じ

unit mylib;

interface

function add(a, b: integer): integer;

implementation

function add(a, b: integer): integer;
begin
 Exit(a+b);
end;

end.
187デフォルトの名無しさん:2012/03/15(木) 23:19:25.62
やっぱりpascalはいいなあ
188デフォルトの名無しさん:2012/03/15(木) 23:32:52.56
>>185
forward宣言ね。
189デフォルトの名無しさん:2012/03/16(金) 17:20:31.75
type
TFoo<T> = class
public
function Eq(A, B: T): Boolean;
end;

function TFoo<T>.Eq(A, B: T): Boolean;
begin
Result := A = B; // [DCC エラー] E2015 この型には指定した演算子は使えません
end;

でエラーになってしまう。
Tにはクラスではなく列挙型のみを指定して使いたいんだけど(なのでIなんたらは継承できない)
そういうのは現実的ではない?
列挙型制約なんてのはサポートされないんだろうか。

type TMyEnum = (meFoo, meBar, meBaz);

var foo: TFoo<TMyEnum>;

if foo.eq(meFoo, meBar) then ...
190デフォルトの名無しさん:2012/03/17(土) 05:36:28.34
値型制約はあるけど
191デフォルトの名無しさん:2012/03/17(土) 06:26:37.39
Result := A = B; なんて書き方できたっけ これじゃ戻り値はどうなるの
192デフォルトの名無しさん:2012/03/17(土) 09:09:53.10
>>191
Boolean
193デフォルトの名無しさん:2012/03/17(土) 09:31:25.49
>>189
列挙型制約欲しいよな。TFoo<T: enum>とか。
ただ他の制約と違って、指定する列挙型によってSizeOf(T)が変わるから実装が難しいのかもしれない。
現実的な書き方としては、CreateでTypeInfo(T)のKindがtkEnumerationかどうかチェックしつつ、
比較では上記のSizeOf(T)が変わる可能性があるという部分も考慮して、
function TFoo<T>.Eq(A, B: T): Boolean;
begin
  Result := CompareMem(@A, @B, SizeOf(T));
end;
って感じだろうな。CompareMemの代わりにPByteArray何かにキャストしてSizeOf(T)分forで回すとかでもいいけど。

>>191
えっ…基本だろ…
もしかしてif文で毎回if A = B = True thenとか書いてるわけ?
そうだとしてもA = BとTrueがエラー無く比較できてる時点で何を返してるかは自明だろ…。
194デフォルトの名無しさん:2012/03/17(土) 09:57:24.47
やっぱりpascalはいいなあ
ヘッダファイルいらないし。
195デフォルトの名無しさん:2012/03/17(土) 10:06:49.23
ヘッダファイルがある言語の方が少ないだろ
196デフォルトの名無しさん:2012/03/18(日) 01:12:12.13
StringGridの指定したセルの色を瞬時に変えたい。

指定したセルの色を変えるところまでは
procedure TForm1.StringGrid1DrawCell(...
begin
if (ACol = 5) and (ARow =5) then begin
StringGrid1.Canvas.Brush.Color := clBlue;
StringGrid1.Canvas.FillRect(Rect);
end;
end;
でよかったんだけどこれに
if combobox1.itemindex=0 thenなど条件を加えると条件にすぐさま反応せず、
指定したセルをクリックしたら色が変わるという状態になってしまう。
このstringgridのイベントはプログラム起動時にしか自動で動いてくれないのかな
どなたかご教授願います。
197デフォルトの名無しさん:2012/03/18(日) 01:29:01.44
refresh とか
198デフォルトの名無しさん:2012/03/18(日) 01:42:58.77
>>197
ありがとうございます。
Invalidateのことでしょうか?
いろいろ置く場所を変えて試してみましたが状況変わらずでした
199デフォルトの名無しさん:2012/03/18(日) 03:27:51.95
>>196
> このstringgridのイベントはプログラム起動時にしか自動で動いてくれないのかな
そんなわきゃない。

StringGrid.RepaintとかInvalidateRect(StringGrid.Handle,nil)とかをComboBoxの
OnChangeで呼び出せ。
200デフォルトの名無しさん:2012/03/18(日) 11:50:50.30
>>199
きたあああああああああああああああああうおっしゃあああ
あざすあざす!
201デフォルトの名無しさん:2012/03/19(月) 07:28:25.51
Windows7のコピーダイアログみたいに
見出し+説明がセットになった大きなボタンの配置されたダイアログって
どうやって作ればいいですか?

------------------
OK(&O)
長々とした説明
------------------

------------------
Cancel(&C)
長々とした説明
------------------

どっちか選んでください。
202デフォルトの名無しさん:2012/03/19(月) 09:15:30.12
203デフォルトの名無しさん:2012/03/19(月) 18:22:00.72
RepaintやRefreshは真っ先に思いついて試すだろ普通・・・
204デフォルトの名無しさん:2012/03/19(月) 18:44:38.76
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。
205デフォルトの名無しさん:2012/03/19(月) 20:28:28.54
>>202
ありがとうございます。これ良さそうです。
206デフォルトの名無しさん:2012/03/20(火) 07:29:38.25
ウィキ作った。
書くの手伝って。
http://goo.gl/5Isxp
207デフォルトの名無しさん:2012/03/20(火) 08:22:43.87
>>206
なんかいろんな言語スレに張ってるな。広告収入目当てか?
208デフォルトの名無しさん:2012/03/20(火) 15:39:54.21
>>206
ノートン先生大激怒
209デフォルトの名無しさん:2012/03/20(火) 17:46:37.20
現在のところ
delphiを無料で手に入れることはできるのでしょうか?
入門っていうか、少し興味があり今やっているpythonと同じく勉強してみたいのですが…
210デフォルトの名無しさん:2012/03/20(火) 18:40:54.60
>>209
つLazarus
211デフォルトの名無しさん:2012/03/20(火) 18:57:53.18
>>210
こんなのがあるんですね
なるほどです
Lazarusについていろいろ調べてみます
212デフォルトの名無しさん:2012/03/20(火) 19:44:55.08
>>209
trubo delphi exploreがあるよ。
vclソースももれなくついてくるよ。
フランスかどこかのミラーサイトがあるから入手可能よ。
736ファイルもそこにあるはずだよ。
213デフォルトの名無しさん:2012/03/20(火) 19:58:53.73
>>212
Turbo Delphi 6 Explorerのやつですね
情報ありがとうございます
214デフォルトの名無しさん:2012/03/20(火) 21:42:00.58
このスレで他ツール推めるのもアレだけど
今からはじめるならC# Express検討してみるのがいいと思う。
Win32APIなプラットフォームに拘りがあるならDelphiでもいいとは思うけど。
215デフォルトの名無しさん:2012/03/21(水) 07:58:00.93
C#wwwwwwwwwwwwwwwwwwwwwwww
216デフォルトの名無しさん:2012/03/21(水) 20:21:22.41
結果的に希望のアプリが作れるならC#でもいいじゃない
.NETの仕様に沿って完結できるならそんなに悪いものじゃないよ
217デフォルトの名無しさん:2012/03/21(水) 23:46:06.46
こういうアプリが作りたいという質問じゃないのに
希望のアプリがどうとか言い出す神経がそもそも異常だということを自覚した方がいい
218デフォルトの名無しさん:2012/03/22(木) 00:18:50.00
ちょっと分からないことがあるんですが、教えてください。

pngイメージを読み込んでBitmapにAssignするわけですが、
これを同じ変数Bitmapを使って繰り返した場合、
何か不都合があるんでしょうか?

100回を超えたあたりで、この部分で「リソースが...」とエラーが
出てしまうんですが?

219デフォルトの名無しさん:2012/03/22(木) 00:28:32.83
またエスパー待ちの質問か
220デフォルトの名無しさん:2012/03/22(木) 06:21:47.05
CreateしてんのにFreeしてないとかそういうオチだろ
221デフォルトの名無しさん:2012/03/22(木) 07:04:55.57
100個のpngファイルをロックするアプリケーションか……ゴクリ。。。
222デフォルトの名無しさん:2012/03/22(木) 07:42:22.92
メモリは無限にあるわけじゃないだろ どんだけドカ食いしてるんだよ
メモリリークしてるはずだから確かめてみな
223デフォルトの名無しさん:2012/03/22(木) 12:13:08.52
>>218
最近のなら
System.ReportMemoryLeaksOnShutdown := True;

以前のならFastMM入れてどーたらすれば開放し忘れのオブジェクトがあったら
警告してくれる。

そうじゃなく単に作り過ぎという事なら
自分もファイラーもどきのアプリ作った時Icon作りまくった時にリソース不足でエラーが出たことがあったな。
PNGインスタンスを管理してサイズか個数で制限かけて古いものから自動開放、
必要になったらまた読み込むというのを自動化してくれるキャッシュクラスを作ってみればいいかも知れない。
224デフォルトの名無しさん:2012/03/23(金) 21:02:03.83
delphiでポインタを使ってswap関数の実験をしてるのですが、うまくいきません。

メイン側
a:=1000;
b:=2000;
swap(@a,@b);


メソッド側
procedure swap(x:^integer;y:^integer);
var
z:integer;
begin
z:=y^;
y:=x^;
x^:=z;
end

Cみたいなやり方ではだめなんでしょうか。
225デフォルトの名無しさん:2012/03/23(金) 21:10:57.64
y^:=x^;
226デフォルトの名無しさん:2012/03/23(金) 21:30:49.59
^-^
227デフォルトの名無しさん:2012/03/24(土) 01:31:38.44
>>225
失礼。y^:=x^;のタイプミスでした。
しかし、procedureの中の^でエラーになるんです。
228デフォルトの名無しさん:2012/03/24(土) 01:56:39.03
うまくいかないとかエラーになるとか具体的な情報を書こうとしないのは
プログラマに向いていないタイプだな。
どういう風にうまくいかないのかとかエラーはコンパイル時なのか実行時なのか
どういうエラーメッセージが出るとか具体的な情報を書かないと。
229デフォルトの名無しさん:2012/03/24(土) 02:19:35.81
procedure Swap(a, b: PInteger);
var tmp: Integer;
begin
tmp := a^;
a^ := b^;
b^ := tmp;
end;
230デフォルトの名無しさん:2012/03/24(土) 11:07:45.21
varでいいじゃんっていう
231デフォルトの名無しさん:2012/03/24(土) 17:14:12.12
関数宣言の引数の型には、型名(と、いくつかの例外)しか
許さないので、^ は使えない。ポインタは型名で
使用できるようにするためにあらかじめ定義しておく。
232デフォルトの名無しさん:2012/03/24(土) 21:03:51.39
>>231
そうなんですか。
varで充分ことは足りるのですが、
一度やってみます。有難うございます。
233デフォルトの名無しさん:2012/03/24(土) 22:51:32.03
環境:Delphi XE2 Update4
TProcをフィールドに持つクラスを生成廃棄した時
FProc._Releaseを明示的に呼ばないとメモリリークするんですが
どう書くのが正しいというのはありますか。
イベントハンドラ替わりにこういう使い方は認められていないんでしょうか。

type
TCaller = class
FProc: TProc;
end;
var
c: TCaller;
begin
System.ReportMemoryLeaksOnShutdown := True;

c := TCaller.Create;
c.FProc:= procedure begin end;
// c.FProc._Release;
c.Free;
end.

---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:

13 - 20 bytes: Test$1354$ActRec x 1

---------------------------
OK
---------------------------
234デフォルトの名無しさん:2012/03/24(土) 23:28:47.00
2010でコピペして動かすとリークはしないな
235デフォルトの名無しさん:2012/03/24(土) 23:30:08.00
とりあえず、program のメインブロックの begin end. での
無名メソッドをやめ、一旦、手続きを呼び出せ。
|uses SysUtils;
|type
| TCaller = class
| FProc: TProc;
| end;
|var
| c: TCaller;
|procedure MyProc;
|begin
| c := TCaller.Create;
| c.FProc:= procedure begin end;
| c.Free;
|end;
|begin
| System.ReportMemoryLeaksOnShutdown := True;
| MyProc;
|end.
D7でFireBird2.5とIBXでDBアプリを作っています
コード入力したマスターを参照項目で表示させているのですが
既にマスターに登録されているものについては表示されるのですが
レコードの入力の途中でマスター未登録のものを別画面を開いて登録しても
参照項目で表示されません
どうしたら表示されますか

キャンペーンで配ってる本を買ったんだけど、金をドブに捨てた。
>>236
そういうのはMLで質問するとDB大好きなおじさんたちが嬉々として教えてくれます
データセットを別のデータモジュールあたりに分離させて
両方からそこを見に行けばいいじゃない
参照を更新し直さないと駄目な仕組みだとサーバーに負担掛かるので
過去履歴とかを参照する場合などにしか使わなくなったな。
{$i}は使わないで
MyUtilsA.pas, MyUtilsB.pas, MyUtilsC.pasと複数ファイルに分かれているユニットを
uses MyUtils; だけで利用できるようにするやり方無いですか
// MyUnits.pas
unit MyUnits;
interface
uses MyUnitsA, MyUnitsB, MyUnitsC;
type
TFoo = MyUnitsA.TFoo;
TBar = MyUnitsB.TBar;
const
MyConst1 = MyUnitC.MyConst1;
procedure MyGlobalProcA;
function MyGlobalVarA: Integer;
// 変数の書き込みはムリ。変数を書き換える関数を書く
procedure SetMyGlobalVarA(Val: Integer);

implementation
procedure MyGlobalProcA;
begin
MyUnitsA.MyGlobalProcA;
end;
function MyGlobalVarA: Integer;
begin
Result := MyUnitaA.MyGlobalA;
end;
procedure SetMyGlobalVarA(Val: Integer);
begin
MyUnitaA.MyGlobalA := Val;
end;

end.
exeと同じフォルダにiniファイルが無いと初回起動とみなすようにしているけど、
デバッグするのにいちいちiniファイルを消すのが面倒なので良い方法を知りませんか?
デバッグ用のIFDEF使うとか
EXEの引数にそれ用のパラメータを用意するとか
[SHIFT]が押されていたら初回起動と見なす
それは嫌です
[CTRL]が押されていたら初回起動と見なす
Post BuildでINIファイルを削除する
例えばLabel1.text := inttostr(random(100));
としてLabel2にも同じテキストを挿入したい時
Label2.text := Label1.text;
よりもスタイリッシュな書き方ってありますか?
或いは1行で2つのラベルに同じテキストを入れる方法とか
>>249
変なとこで悩んでないで次に進め
>>249
ふつうはそれで良し。
繰り返しあるようなら自前で関数つくるべし。
procedure SetLabel(A,B:TLabel; S:String);
>>251
引数が初心者っぽいぞw
ありがとうございます
確かに掘り下げてもよしない疑問でした
254営利利用に関するLR審議中@詳細は自治スレへ:2012/04/10(火) 21:28:07.80
今時iniファイルなんて使ってんのかよ
xmlってかw編集面倒じゃんw
まさかレジストリなうとかいわねーよなw
iniは標準でメモ帳で開いてくれるけど、xmlはブラウザで開いちまうからな
初心者はその程度でも詰まったりするから、iniの方が使う側も作る側も楽
jsonでいいんでねーの
258デフォルトの名無しさん:2012/04/11(水) 21:54:53.14
ねーわ
259デフォルトの名無しさん:2012/04/11(水) 23:16:17.45
sqliteでいいだろ
260デフォルトの名無しさん:2012/04/11(水) 23:24:46.31
わざわざDLL用意すんのかよw本末転倒だろjk
261デフォルトの名無しさん:2012/04/12(木) 00:08:15.27
Oracleあたりで落ち着こうぜみんな。
262デフォルトの名無しさん:2012/04/12(木) 06:45:26.11
で結局ini以外って何よ
263デフォルトの名無しさん:2012/04/12(木) 07:12:08.90
DOMストレージ
264デフォルトの名無しさん:2012/04/12(木) 09:59:03.48
ini嫌うのってまさに>>249と同じなんじゃねーのw
265デフォルトの名無しさん:2012/04/12(木) 10:31:09.21
スタイリッシュw
266デフォルトの名無しさん:2012/04/12(木) 15:11:30.12
CSV
267デフォルトの名無しさん:2012/04/12(木) 18:12:37.79
ちょっと教えてください。

プログラムの中でTWebBrowserを使ってるんですが、
これはメモリを大量消費するんで、対象Formごと
動的に作成するようにしたんです。

で、WebBrowserを貼り付けたFormをFreeしても
メモリがぜんぜん解放されないみたいなんですが
なんか特別な処理が必要なんでしょうか?

よろしくお願いします。
268デフォルトの名無しさん:2012/04/12(木) 18:41:11.15
キャッシュじゃない?
NavigateメソッドでnavNoWriteToCache使ってみるべし
269デフォルトの名無しさん:2012/04/12(木) 19:08:40.44
>>268
ありがとうございます。

さっそく試してみました。

8M → 50M のままだったのが
8M → 50M → 18M まで減少しました。

270デフォルトの名無しさん:2012/04/12(木) 21:24:41.01
俺の厚い胸板を騒がしてくれる質問最近ねぇな
271デフォルトの名無しさん:2012/04/12(木) 23:51:51.67
>>270
じゃあ質問。SSE2とかで最適化したいんですけど、どうしたらいいんでしょうか。
272デフォルトの名無しさん:2012/04/12(木) 23:59:41.04
しらん

はい次
273デフォルトの名無しさん:2012/04/13(金) 00:07:48.97
海の水はどうしてですか?
274デフォルトの名無しさん:2012/04/13(金) 02:40:30.22
おとうさん か おかあさん と いっしょ に あたま の びょういん に いこうね

はい次
275デフォルトの名無しさん:2012/04/13(金) 03:25:09.52
ttp://twitter.com/#!/kaitboy/status/190231289079676928
なぜDelphiで作るとかそういう話になるのかな。いまどきDelphiで作ってる人ってほとんどいないだろ。
なぜ世の開発者たちはDelphiから離れていったか、その理由を考えたことあるのかな。単なる生産性の
低さ、開発情報のなさ、開発環境のサポートへの不安からだよ。
276デフォルトの名無しさん:2012/04/13(金) 05:54:05.57
↑著作権違反
277デフォルトの名無しさん:2012/04/13(金) 09:30:39.54
自分の書き込みを転載することも違反かね。すごいもんだね。
278デフォルトの名無しさん:2012/04/13(金) 10:38:49.68
せっかくバカスレがあるんだからそっちでやれ
279デフォルトの名無しさん:2012/04/13(金) 19:14:44.54
>>277
証明できないのに自分の書き込みだと言い張る馬鹿もいるんですね
280デフォルトの名無しさん:2012/04/13(金) 19:35:27.29
サポートの不安wwww
281デフォルトの名無しさん:2012/04/14(土) 01:19:52.57
自身の能力の低さは言うまでも無いから書いてないんだね
282 [―{}@{}@{}-] デフォルトの名無しさん:2012/04/14(土) 05:28:33.96
単なる生産性の低さ
開発情報のなさ
開発環境のサポートへの不安
283デフォルトの名無しさん:2012/04/14(土) 07:51:47.51
生産性は抜群だけどねw
284デフォルトの名無しさん:2012/04/14(土) 20:42:08.98
TBitmapってどうしたらコピーできますか?
285デフォルトの名無しさん:2012/04/14(土) 21:00:30.42
新しく TBitmap Create して、Assign
286デフォルトの名無しさん:2012/04/15(日) 21:21:48.69
生産性抜群とか言ってるやつは経験たりないだけ。
昔の自分を見てるようでおまえの立ち位置が見える。
287デフォルトの名無しさん:2012/04/16(月) 07:49:31.34
スレチを繰り返すおまえをみてると
昔の自分を見てるようでおまえの立ち位置が見える。
288デフォルトの名無しさん:2012/04/16(月) 10:18:07.81
Delphiの生産性を否定するやつってグーグルなしじゃ何もできなさそうだよな
289デフォルトの名無しさん:2012/04/16(月) 10:29:39.50
.NET最高厨だろ。DLLヘルに落ちて氏ね
290デフォルトの名無しさん:2012/04/16(月) 11:40:17.20
自分の生産性の低さを道具のせいにする奴は総じてクズ
291デフォルトの名無しさん:2012/04/16(月) 12:47:35.26
まぁくだすれだからってそうくだをまくなよ。
初心者こなくなっちまうぞw
292デフォルトの名無しさん:2012/04/16(月) 14:20:45.24
道具がすべて同じ能力持ってると思ってるのか?どんだけ馬鹿なんだよ。
10年前のPC使って、おまえの能力で最新のアプリを快適に使えるもんなら使ってみろ馬鹿。
293デフォルトの名無しさん:2012/04/16(月) 15:47:17.58
いや、Delphi の能力は最低。
294デフォルトの名無しさん:2012/04/16(月) 16:51:32.08
確かに。Lazarusは最高だけどな。
295デフォルトの名無しさん:2012/04/16(月) 18:51:51.71
10年以上前のPCで流通系の電算室取りしきってるがダメなの?
296デフォルトの名無しさん:2012/04/17(火) 02:46:29.10
>>292
人間としての使えなさと道具の性能は関係ないよ底辺さん^^
何か思い当たることでもあったのかな?^^;
297デフォルトの名無しさん:2012/04/17(火) 09:10:54.36
10年前から何も変わってないような環境をいまだに生産性高いとか言ってるのは
自分が10年前から進歩してないことをアピールしてるだけなんだよ。
エンバカスレにも書いたように不満から新しいものが生まれてくるんだよ。
>>296
自分のレベルの低さアピールしておつかれ^^;
298デフォルトの名無しさん:2012/04/17(火) 10:08:02.69
>不満から新しいものが
C# のことかね。

いやエンバカがわしらの不満を解決してくれると信じている人がまだいるとは噴飯ものでありますな
299デフォルトの名無しさん:2012/04/17(火) 10:38:38.16
何百年たとうがいいものはいい。
ビル信者にはそれが分からんのですよ。
スレチはほっときましょうよ
300デフォルトの名無しさん:2012/04/17(火) 10:40:28.57
         ,,-―--、
        |:::::::::::::;;;ノ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        |::::::::::( 」 <  不満から新しいものが生まれてくるんだよ。
        ノノノ ヽ_l   \______________
       ,,-┴―┴- 、    ∩_
     /,|┌-[]─┐| \  (  ノ
      / ヽ| |  バ  | '、/\ / /
     / `./| |  カ  |  |\   /
     \ ヽ| lゝ    |  |  \__/
     \ |  ̄ ̄ ̄   |
      ⊂|______|
       |l_l i l_l |
       |   ┬    |
301デフォルトの名無しさん:2012/04/18(水) 00:36:46.33
なんか今の流れをブッちぎるようで申し訳ないけど

アプリAのフォーム上に、アプリBの画面を重ねて表示し、
外見上はあたかも一つのプログラムであるかのようにするって
可能でしょうか?

もちろん、両アプリともDelphiで作るものですが。

訳あって、機能の一部をまったく別アプリにしたいので
よろしくお願いします。
302デフォルトの名無しさん:2012/04/18(水) 00:48:51.76
アプリBのウィンドウをアプリAのウィンドウの子供にする
303デフォルトの名無しさん:2012/04/18(水) 01:04:55.99
>>302
さっそくありがとうございます

で、「ウィンドウの子供」って?

同じアプリ内だとParentプロパティを使ったことあるけど、
アプリ同士の親子って、何をどう操作するんですか?
304301:2012/04/18(水) 01:33:12.49
いろいろ調べてみたけど、下で議論してるようなことかな...

ttp://www.delphipages.com/forum/showthread.php?t=82363
ttp://forum.tuts4you.com/topic/14392-embed-form-into-other-apps-window-delphi/

自分にはちょっと難しいかも...
305デフォルトの名無しさん:2012/04/18(水) 02:14:37.85
>>301
あまりスマートな方法じゃないですが
別EXEの画面をフチなしで作って
もう一方のEXEから表示する位置をSendMessageで送って
その場所に画面を表示したらどうですか?

そのままだと多分[ALT]キーでシステムメニューは表示出来るので
移動・サイズ変更・終了など出来ないようにしないといけないですが。
306デフォルトの名無しさん:2012/04/18(水) 02:28:13.56
>>305
ありがとうございます。


自分の目的に一番かなってるのは以下の記事ですが、

ttp://www.mombu.com/programming/xbase/t-external-application-from-within-a-delphi-form-3234654.html

これがうまく機能しなかったら、>>305さんの方法でと思ってます。
307デフォルトの名無しさん:2012/04/18(水) 11:38:35.12
この手の質問良くあるけど、そいつらって
自分が作ってるものがどう使われるか知ってて開発してんの?
308デフォルトの名無しさん:2012/04/18(水) 11:45:45.51
まだいたのかスレチ君
309デフォルトの名無しさん:2012/04/19(木) 01:32:21.12
>>303
unit Unit1; // 親(アプリB 上でコントロールする方)

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI, ExtCtrls, ComCtrls,
Unit2; // 子(アプリA 下でコントロールされる方)

type
TForm1 = class(TForm)
 〜〜〜〜〜


子アプリの方が「Unit2 Form2」とした場合
unit Unit2; // 子
TForm2 = class(TForm)

親側から → 子へは
Form2.Button1.OnClick(nil);
など Form2 から指定して書く。
310デフォルトの名無しさん:2012/04/19(木) 01:35:54.66
Unit2.pas を親側のプロジェクトに加えることを忘れずに
311デフォルトの名無しさん:2012/04/19(木) 02:09:19.58
それアプリじゃなくてフォーム分けてるだけでしょ
アプリを分けるって書いてあるんだけど、日本語読めない?
それともアプリやフォームっていう基本的な用語の意味が理解できてない?
312デフォルトの名無しさん:2012/04/19(木) 04:16:21.77
もっとはっきり目的を書けよ。
なにが訳あって別アプリにしたいだよ。
どうせネトゲの自動化とかだろw
313デフォルトの名無しさん:2012/04/19(木) 12:20:35.16
くだすれと知ってて聞いてるなら答えは「無理」
本気ならMLかフォーラムに逝け
314デフォルトの名無しさん:2012/04/19(木) 12:32:33.86
もう終わってるのにいつまで言ってんのお前ら
315301:2012/04/19(木) 16:23:47.87
えーーっと

コントロール上に別アプリを表示させたいって質問した者ですけど
結果を報告するのを忘れてすみませんでした。

>>312
別アプリにする理由は、上の方でTWebBrowserのメモリ解放について
質問したレス(>>267)に関連したものです。

TWebBrowserを貼り付けたForm(Google map関連のもの)を動的に作成し、
不要になったら解放しても、大量のメモリ(40MBとか)を解放してくれず、
ちょっと精神的によくないんで別アプリにしたいというわけです。

で結局、次スレのようにしました。
316301:2012/04/19(木) 16:26:47.49
chWND: hWND;
procedure TForm1.TabSheet2Show(Sender: TObject);
var
Count: Integer;
begin
if chWND <> 0 then exit;
WinExec(**別アプリのパス**, SW_HIDE);
try
Count := 0;
repeat
chWND := FindWindow(nil, '**別アプリのキャプション**');
if chWND = 0 then begin
inc(Count);
sleep(100);
end;
until (chWND <> 0) or (Count > 20);
if chWND <> 0 then begin
Windows.SetParent(chWND, TabSheet2.Handle );
Windows.MoveWindow(chWND, 0, 0, TabSheet2.ClientWidth, TabSheet2.ClientHeight, false);
ShowWindow(chWND, SW_SHOW);
SetForegroundWindow(chWND);
end else
ShowMessage('can not start app');
except
on Exception do PostMessage(chWND, WM_CLOSE, 0, 0);
end;
end;
317デフォルトの名無しさん:2012/04/19(木) 17:15:26.11
だからここは超初心者用
お前が来るところではない
318デフォルトの名無しさん:2012/04/19(木) 19:28:47.53
というかゲームなんかやること自体が人生の無駄遣いなんだから
仮にゲームでの不正目的でももともと無駄なものを取得しただけだから二重に無駄だよ
319デフォルトの名無しさん:2012/04/19(木) 23:14:07.34
Formのことをアプリと呼んでる人がいる(笑)
320デフォルトの名無しさん:2012/04/20(金) 09:11:36.88
>>317
そうだな、お前みたいな馬鹿では>>316みたいなソース貼られても頭悪くて理解できないもんな
321デフォルトの名無しさん:2012/04/20(金) 10:00:53.97
お前はなんで超初心者に絡んでるんだ?
322デフォルトの名無しさん:2012/04/20(金) 10:28:45.87
超初心者だらけのスレなんてなんか意味あんの?
323デフォルトの名無しさん:2012/04/20(金) 11:18:55.61
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘  ! ヽ             …わかった この話はやめよう
                /イ       ', l  ’
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l            ハイ!! やめやめ
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
324デフォルトの名無しさん:2012/04/20(金) 11:19:38.02
.,r‐--,,,_、                                   
.゙l゙'i、  `゙''-,,,,,,,,,,,,,,,,,_                         
: ゙l `'i、.,r‐-、,,`'-,、  `''ー、_                      
 ゙l ,/゛   `゙''''ミッ、   ゙゙'''-,、                  
  У        `!ヽ、    ._,,i、      ,,,,,、          
 /          ゙r゙l,   / ‘i、    { ゙i、          
 |              ゙'i゙l ./    |,    ゙l、 ゙l          
 |         _,,,,_  .゙'},. |   ,/ ゚i、    ゙l  ゙l、        
 ゙l         ,r'"` `゙゙''',゙',lri、,,/  .゙l    ゙l  ヽ        
 │     .|     .彳 ゚|″    |    .|  │       
  │     .ヽ_   _,,-°  `i、    .|    .,,゙l, .゙ケ'=ッ、    
  ゙l, ,,,,,,、    ̄ ̄     .゙l,-'シ'',!.゙l  ,/゜ ゙'i、 .}i、`.゙'i、    
   `'| `'i、            ,,,rン・'゙,,,-'i| .|  .l、,,」  ゙=    |    
    .゙ヽ, .゙!,          i″ ゙''i,   .l │ /" .゚┓     .|    
     ‘'''l"        ゙'-,,、゙l、 .,,「 |  ゙l、  ゜     .|    
       ゙l'-,、       `゙''゙‐'" ./   .ヽ       .|    
          |  ゙'ヽ,、        /    '゙l      .,ノ    
       ′   .~'―--―ー¬''"         ヽ-,   |、   
                            "    .l゙  
325デフォルトの名無しさん:2012/04/20(金) 11:50:36.15
ウルトラマンセブンとは古いな
326デフォルトの名無しさん:2012/04/20(金) 16:58:57.09
>>322
お前よりは意味あるんじゃねw
327デフォルトの名無しさん:2012/04/21(土) 01:16:08.47
じゃあ俺が超初心者の質問するよ。
interface ってbuilderでいうヘッダファイル?
delphiはなぜヘッダファイルがないの
328デフォルトの名無しさん:2012/04/21(土) 01:51:05.44
>>327
>delphiはなぜヘッダファイルがないの
あります。
命令文は {$INCLUDE filename}です。
329デフォルトの名無しさん:2012/04/21(土) 13:55:58.39
それヘッダじゃないよね
馬鹿なのかな
330デフォルトの名無しさん:2012/04/21(土) 14:51:12.24
>>329
>それヘッダじゃないよね
{$INCLUDE filename}はヘッダに書くことも可能です。

DelphiとC++ではヘッダファイル(インクルードファイル)の使用用途がまったく同じという訳ではないですが
だからといって、Delphiにヘッダファイル(インクルードファイル)が無いということにはならないでしょう。
331デフォルトの名無しさん:2012/04/21(土) 16:03:12.02
DelphiにC/C++でいうヘッダファイルはない。ヘッダファイルがない理由はusesで他のユニットの
interface部の内容を取り込む仕様だから。
$I($INCLUDE)はそのファイルの内容をその行に置き換えるという、Cの#includeと全く同じ意味を
持つが、言語仕様の差から同じ効果をもたらすわけではない。
332デフォルトの名無しさん:2012/04/21(土) 17:49:30.84
>>331
>interface部の内容を取り込む仕様だから。
それは必須ではないです。INCLUDEをC++と同じような用途で使用したいなら
//Project1.dprファイル
program Project1;
uses
SysUtils,
Dialogs;
{$INCLUDE filename.txt}
var
aaa: Taaa;
begin
aaa := Taaa.Create;
aaa.bbb;
aaa.Free;
end.

#filename.txtファイル
type
Taaa = class
procedure bbb;
end;

procedure Taaa.bbb;
begin
ShowMessage('Taaa.bbb');
end;
このようにUnitを使わずC++と同等程度の”効果をもたらす”書き方も出来ます。
(もちろん、こんな書き方を推奨しているわかではないですが)
>>327,331
解答を用意しているということは、これは質問ではなく自分の知識を自慢したいのですか?
それなら、ここは初心者のスレなので正確な質問と解答を書いた方がいいですよ。
333デフォルトの名無しさん:2012/04/21(土) 18:15:54.72
>>332
いろいろ教えて下さりありがとうごうざいます。
でも私327は331ではありませんので
そういうつもりはありません。
334デフォルトの名無しさん:2012/04/21(土) 18:16:13.68
そもそもCもヘッダファイル必須じゃねーし。
質問自体がおかしい。
335デフォルトの名無しさん:2012/04/21(土) 18:18:13.15
何度も同じこと書くの面倒だからまとめましょぐらいの意味しかないから
>328が正解
336デフォルトの名無しさん:2012/04/21(土) 19:12:53.00
やめて〜 わたしの美貌を巡って争わないでぇ
337デフォルトの名無しさん:2012/04/21(土) 19:15:26.61
>>333
>でも私327は331ではありませんので
そうなんですか、すみませんでした。

しかし、それならこの回答では求めていた解答と違いますよね?
質問をこんな感じに変えてみたらどうですか。(意図する質問と違っていたらすみません)

DelphiはINCLUDEがあるのに何故Unitを使うのか?
Unitを使った場合のメリット・デメリットや特徴は何か?
338デフォルトの名無しさん:2012/04/21(土) 19:34:10.10
いつのpascalから$include指令があったん?
339331:2012/04/21(土) 20:28:13.46
多分1から

>332
> それは必須ではないです。
意味不明。usesはC#のusing同様に宣言の内容を取り込むのであって、C/C++の
#INCLUDEのようにその行をファイル全体で置き換えるわけではない。
その例だと2カ所以上でfilename.txtを$INCLUDEした場合、Taaaが2回定義され、
しかも異なるものと解釈される、ってのはわかってるか?

> 解答を用意しているということは、これは質問ではなく自分の知識を自慢したいのですか?
> それなら、ここは初心者のスレなので正確な質問と解答を書いた方がいいですよ。
自分以外がみんな敵に見えるのは病気だよ?ちなみに>>327-330は俺じゃないから。
340デフォルトの名無しさん:2012/04/21(土) 21:13:35.87
このすれ超初心者しか閲覧禁止らしいから仕方ないよ
341デフォルトの名無しさん:2012/04/21(土) 21:32:00.64
>>340
そんなこといわないで。
経験豊かなオジサンたちが、delphi初心者にやさしく教えるスレなんだから。
素晴らしい言語であるdelphiを若手に広めるのが目的じゃないか。
342デフォルトの名無しさん:2012/04/22(日) 12:05:28.58
delphiもそうだったけれど大抵の言語のinclude文は単なるコピペなので、 ビルドスクリプトで
perl,pythonとかをサーバーから呼んで生成してからかますと結構手抜きができる。定数に日付
入れたり、クラス名にユニークな名前入れたり 特定条件でプロパティ変えたりとか
343デフォルトの名無しさん:2012/04/22(日) 14:53:13.82
FM関係のドキュメントが一杯出たんだって。
少しずつでも読まないといけないなー。積読・宿題が山積みー

344デフォルトの名無しさん:2012/04/22(日) 15:07:45.51
読む前に最初にやる事は、Delphi/FMに将来があるかを考えることだと思う。
345デフォルトの名無しさん:2012/04/22(日) 16:06:47.33
>>339
>意味不明。usesはC#のusing同様に宣言の内容を取り込むのであって、C/C++の
>#INCLUDEのようにその行をファイル全体で置き換えるわけではない。
ソースのファイル分割がUnit形式だけと限らないという意味です。
Unitを使った >interface部の内容を取り込む仕様だから。
この方法以外でもファイルを取り込めます。だからこの”取り込む仕様”だけが必須ではないと書きました。

>その例だと2カ所以上でfilename.txtを$INCLUDEした場合、Taaaが2回定義され、
>しかも異なるものと解釈される、ってのはわかってるか?
すみません、言いたいことの意図がわかりません。
インクルードファイルなので、記述されれば何回でもソースに展開されますし
それを認識して不具合なくソースを書くのは他の言語同様で当然のことだと思います。
それにUnit形式の場合でも、usesに二つ以上Unitを定義できないのもある意味同様だと思いますが。
すみませんが本当に、何を言いたいのかわかりません。
346デフォルトの名無しさん:2012/04/22(日) 16:09:36.16
馬鹿には無理
347デフォルトの名無しさん:2012/04/22(日) 16:32:15.41
>>345
おかしい質問にはおかしい答えしか出ない。
もうやめとけ。
348デフォルトの名無しさん:2012/04/22(日) 17:06:10.26
>345
> ソースのファイル分割がUnit形式だけと限らないという意味です。
必須じゃないという意味はわかった。初心者に説明して意味があるかどうかは別だけど。
ソースのファイル分割とユニット分割の違いって初心者に意味ないでしょ?混乱させるだけで。

> >その例だと2カ所以上でfilename.txtを$INCLUDEした場合、Taaaが2回定義され、
> >しかも異なるものと解釈される、ってのはわかってるか?
> すみません、言いたいことの意図がわかりません。
あー、やっぱりわかってないような。Unit1とUnit2の2つのユニットでfinename.txtを
$INCLUDEすると、Unit1.TaaaとUnit2.Taaaの2つのクラスが別のものとして
作られるのよ。C/C++では宣言(型宣言やプロトタイプ宣言)だけであれば
そんなことないでしょ?だからDelphiではこのようなことはしないの。

で、そういう普通しないことを初心者スレに書いて意味あるの?

>347
そりゃそうだ。
349デフォルトの名無しさん:2012/04/22(日) 19:13:20.73
>>348
>あー、やっぱりわかってないような。Unit1とUnit2の2つのユニットでfinename.txtを
>$INCLUDEすると、Unit1.TaaaとUnit2.Taaaの2つのクラスが別のものとして
>作られるのよ。
意図するところは判りました。
どうやら>>332の例が理解出来ていなかったようですね。
例はUnit形式を使わないでファイル分割を行う方法なので、”異なるものと解釈される”ことはありません。

あなたの言っているのは、プログラムをUnit形式を使ってファイル分割したあと
またそれをINCLUDEを使ってファイル分解する場合の事です。
350デフォルトの名無しさん:2012/04/22(日) 19:56:14.01
以後、放置でおながいします
351デフォルトの名無しさん:2012/04/23(月) 03:49:48.83
馬鹿と馬鹿が争うほど醜いものはないな
352デフォルトの名無しさん:2012/04/23(月) 07:38:34.18
一般の方はご存知無いやろうけど、青い銀行のATMの処理の結構な部分はDelphi6時代の
コードが今も利用されてて、ボーランド以降転々とする母屋のせいでライセンスとか保守とかが
極めて問題になっとる…らしいよ
353デフォルトの名無しさん:2012/04/23(月) 08:51:40.58
おーい
くだすれに長文は不要
初心者を遠ざけるだけ
354デフォルトの名無しさん:2012/04/23(月) 09:07:02.73
>>352
Lazarusで書き直せばいいやん
355デフォルトの名無しさん:2012/04/23(月) 09:17:06.23
>>352
転々って…1回しか変わってへんがな
ライセンスは引き継がれてるし
356デフォルトの名無しさん:2012/04/23(月) 10:06:24.03
ボーランドそのものが開発に参加していたのならともかく、Delphi は開発ツールでしかないしな。
どうすればライセンスとか保守に影響が出るのかがわからん。

だいたい Delphi6時代ってことは10年以上昔なわけで、逆に10年問題を先送りにしていた方が問題じゃないのか?
357デフォルトの名無しさん:2012/04/23(月) 17:38:04.51
そんなのこの業界じゃ日常なんだけどw
10年ならむしろ緩いだろw
358デフォルトの名無しさん:2012/04/23(月) 17:41:15.63
そりゃ未だにWin2k使ってるところもあるんだしな。
アプリなんかそれ以上に古いの使ってて当たり前だろう。
趣味じゃないから機能満たして安定してれば何も問題ない。
359デフォルトの名無しさん:2012/04/23(月) 17:55:53.80
素人はそれでもいいんだろうけどね > 358
ハードウェア追加になった時に OS どうするの?買えるの?コピー?
ハードが追加にならないとしたら、安定して問題もないのなら、どうやって食っていくんだ???
360デフォルトの名無しさん:2012/04/23(月) 17:58:59.63
という矛盾を普通に抱えているのがこの業界です
361デフォルトの名無しさん:2012/04/23(月) 18:01:34.07
ですよねー
362デフォルトの名無しさん:2012/04/23(月) 22:11:03.66
思考停止、乙。
363デフォルトの名無しさん:2012/04/23(月) 22:50:50.86
>>362
素人はそれでもいいんだろうけどね
364デフォルトの名無しさん:2012/04/23(月) 23:02:18.07
古いOSはダウングレードできないこともない。
365デフォルトの名無しさん:2012/04/24(火) 00:22:17.35
まあ、いまだにPC98使ってるとこもあるぐらいだから。
366デフォルトの名無しさん:2012/04/24(火) 02:48:23.98
XE1を使ってます。
フォルダの選択するためにはググったら SelectDirectory を使うと良いとありました。
SelectDirectory を使うには uses 節に Filectrl を記述すべきとあったのでコンパイルしてみると
 「[DCC 警告] Unit2.pas(7): W1005: ユニット 'FileCtrl' は特定のプラットフォームに固有のものです」
と出るのが気になります。この表示を消すにはどうすれば良いのでしょうか?
367デフォルトの名無しさん:2012/04/24(火) 03:14:00.92
>>366
Windows固有機能を使って、機能が実装されているので、他OSでは動かないよという警告。
他OSに移植しないなら、気にする必要はない。

警告を消すには、ソースファイルに、
{$WARN UNIT_PLATFORM OFF}
を追加する。

またはプロジェクトオプションで、Delphiコンパイラのヒントと警告から、ライブラリ依存のユニットの警告をFalseにする。
368デフォルトの名無しさん:2012/04/24(火) 08:42:58.03
2007のIDEの環境設定に関して教えてください。

自作のコンポーネントとパッケージがあり、プロジェクトに組み込んであるのですが、
パッケージのdcuとbplのパスを[ライブラリパス]に追加して
パッケージのソースのパスを[ブラウザ検索パス]に追加してあります。
この状態だと、IDEのエディタ上で[ctrl+クリック]しても、その変数やユニットを
エディタで検索して開いてくれません。

ソースのパスを[ライブラリパス]に追加するとエディタで検索されるのですが、
この状態でコンパイルするとパッケージのソースまでコンパイルされてしまいます。

既存のVCLのコンポーネント郡の様に、エディタで自動検索はされるけどコンパイル対象には
ならないようにするにはどのように設定したら良いのでしょうか?
369デフォルトの名無しさん:2012/04/24(火) 09:33:21.28
できません。
方法はあるのでしょうが未公開です。
370デフォルトの名無しさん:2012/04/24(火) 15:26:06.97
dcpのパスは?
371デフォルトの名無しさん:2012/04/24(火) 16:56:56.87
Delphi7でUINT64定義するのやっぱ無理?
372デフォルトの名無しさん:2012/04/24(火) 18:26:25.72
どう定義するかによる
373368:2012/04/24(火) 21:06:32.96
>>370
dcpの出力パスは意識してなかったのでデフォルトだったのですが、
[ライブラリパス]にコンパイルしてみましたが動作は変わりませんでした。
374デフォルトの名無しさん:2012/04/24(火) 22:03:22.20
>>368
ReadOnly
375デフォルトの名無しさん:2012/04/25(水) 00:44:03.93
シンボリックな情報は、.dcu にもあるが、パッケージにした場合、
.dcp を使う。というか、逆にアプリケーションからは
パッケージの .dcu を見えないようにしておく。

パッケージを組み込んでいるということは、
アプリケーションにパッケージの .dcp をすでに
指定してあるということで解決しているはず。

ところで、デバッグのトレースとかで、
パッケージの関数の中に入っていけるの?
376デフォルトの名無しさん:2012/04/25(水) 03:35:31.14
>>368
>プロジェクトに組み込んであるのですが、
まず、プロジェクトから外したら?
まっ、それでも再構築したらdcuは更新されるけど。

そもそも何で、パッケージがコンパイルされたら駄目なの?
リリースポイントとか、ある特定時期のモジュールを残したいのなら
それはVSSやSubversionみたいなバージョン管理の話でしょう。

変更出来なくするとDelphiのUpdateとかでVCLが修正されても
その修正がパッケージに反映されなくなるよ。

それでも、どうしてもdcuを更新したくないのなら
Delphiインストール先のlibにdcuをいれ
ソース(pas)は\source\Win32\rtl\winとかに入れたら。
377デフォルトの名無しさん:2012/04/25(水) 04:02:06.94
初心者には厳しいなぁ。
378デフォルトの名無しさん:2012/04/25(水) 09:15:19.42
素人はそれでもいいんだろうけどね
379デフォルトの名無しさん:2012/04/25(水) 16:02:30.93
手持ちのXE2だとおそらく期待通りの動作をしている。
380デフォルトの名無しさん:2012/04/25(水) 18:35:29.40
素人はそれでもいいんだろうけどね
381デフォルトの名無しさん:2012/04/25(水) 20:59:29.00
さすが玄人は違うな
382デフォルトの名無しさん:2012/04/25(水) 21:54:33.64
delphiは玄人も使うのかい?
ぼくは初心者の言語だと思っていた。
383デフォルトの名無しさん:2012/04/25(水) 22:49:23.07
初心者の言語って???
どの言語だろうが最初は初心者に決まってるだろ
訳わからんことおっしゃる
384デフォルトの名無しさん:2012/04/26(木) 06:22:08.51
初心者に優しい言語って意味だろ
385デフォルトの名無しさん:2012/04/26(木) 14:30:49.72
バブゥ語
386デフォルトの名無しさん:2012/04/26(木) 14:48:45.12
言語は優しいがスレは厳しい
387デフォルトの名無しさん:2012/04/26(木) 15:21:46.36
>>385
タラちゃんにしか分からない超難解言語じゃないか
388デフォルトの名無しさん:2012/04/26(木) 19:52:57.82
どうやって食っていくんだ???
389デフォルトの名無しさん:2012/04/28(土) 01:09:01.87
新スレ立ってるよ

くだすれC++Builder(超初心者用)その5
http://toro.2ch.net/test/read.cgi/tech/1334982374/

Embarcadero RAD Studio/Delphi/C++Builder その2
http://toro.2ch.net/test/read.cgi/tech/1335177837/
390デフォルトの名無しさん:2012/04/28(土) 10:08:22.24
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘  ! ヽ             …わかった この話はやめよう
                /イ       ', l  ’
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l            ハイ!! やめやめ
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
391デフォルトの名無しさん:2012/04/28(土) 11:06:19.05
出てくるのおせーよw
392デフォルトの名無しさん:2012/04/28(土) 22:14:20.80
                  r、__                         / |
            ト、,'⌒/7ヽ┘'<i\/L-、,___            `'ー-‐''"   ヽ、_
             /:/ヽ!::|_」ヽ-ァ'_,,..,__   `´ ロ└、_    /i __            /
          〈::::! r「>''"     `ヽ、.,__  ロ i>、/::::__i/:::|    か ほ そ  |
         i .ノヽ|/ /  /  /      `ヽ.  ̄|/:::/」//i|    ァ  う ろ  |
         ト^Y/  /  /i  i    ;      ヽ、/::/´  `ヽ./   i |  が そ  ヽ!
         | 〈! ,'  /ヽ!、_ハ  /!   /   i  Yi',  ヽ. i    /! |  い ろ  >
         .! ノヘ.!  /,ゝ='、,/ | / |  _ハ_   |  ! i   ', '、/ | |  い  次  /
   ,. --,rく`"'ー'<ニ|o/〈 i'´ r!  レ'`ァ;=!ニ__ i  ,'  ハ |    i  `ヽ.,' |  ん ス  |
  i'二'/ i|    ノ. |/,,, ひ'ー'     i  r'; Yレ'i  〈 Y',   ハ    i  |  じ .レ   |
  { ‐-:!_,ハ.|   _/ ,ヘi7    '      ヽ- '_ノ o 。_,.ゝ/i  / ',    / ッ .ゃ. た   |〉
   `"'T´:::|   ! ./ニヘ.   i7´ ̄`ヽ.  U "/|/  ,イ ,ハ  ,'  i   ,'  ! ? な て  .',
     '、_/_,.-'"レ'レ' ! !へ.  !'    |  _,.ィ / イ .ノ' , '! ハ/ヽ!   .!     い. た   ヽ、_
           ヽ、Yレ'7> 、.,___,,.' r'´/ `ヽ./ / レ'   ,i  /      で      /
            r-、!:::}_レ'´i\,、!イ/      Y     ,. ' レ'       す     /
       __,,.. -‐ノ  ハ::::/`7i::::ヽ、_r     _ハ、_,,.. < _____  彡        〈
       \,_____`;rく rく  / ハ::::::::ト、   _,r'  '" ̄7'´ 〉ー、_ゝ,        ,.:'⌒ヽ
         _r-‐='ト、 ヽサ二7」ー-<フ>r、 i     /i__/ / /'〉|
     __,.r-''":r´く  `''ァー- :: 、.,___,.イ::::ヽく `ヽ、  ト、,_>-'、-'´i |
393デフォルトの名無しさん:2012/04/29(日) 21:11:44.95
XE2だとWASP周りのInterfaceは定義されてます?
394デフォルトの名無しさん:2012/04/29(日) 21:12:32.61
WASAPIだった
395デフォルトの名無しさん:2012/04/29(日) 21:31:00.70
なさそうですね
396デフォルトの名無しさん:2012/04/30(月) 00:17:45.61
そうですか

シコシココンバートしますわ
397デフォルトの名無しさん:2012/04/30(月) 13:29:45.24
質問です。
Delphi(Delphi7)からコンソールアプリケーションを操作したいと思っています。

例えば、Delphiのプログラムから、すでに開いているDOSプロンプトに
DIRコマンドを送るみたいなことをしたいのですが、どのようにしたらできるのでしょうか?

C#だと
ProcessStartInfo g = new ProcessStartInfo();
みたいなのを作って操作できるようなんですが、
Delphiでする方法を探してみると
keybd_eventなどでDIRと送る方法みたいなのしか見付かりませんでした。

何か他に良い方法がありましたら教えていただけないでしょうか。
398デフォルトの名無しさん:2012/04/30(月) 14:11:47.51
399デフォルトの名無しさん:2012/04/30(月) 17:36:12.42
>>398
ありがとうございます。
Lazarusというものを初めて使ってみました。

ただ、自分が使い方をわかってないだけかもしれませんが
リンクの方法の場合、cmdでコンソールを起動した後
dirコマンドを入力ってできますか?

AProcess.CommandLine := 'cmd /c dir';

とかで起動させるのではなく、

AProcess.CommandLine := 'cmd';

で起動させた後、dirコマンドを打つとかがしたいです。
400デフォルトの名無しさん:2012/04/30(月) 17:55:45.33
> C#だと
> ProcessStartInfo g = new ProcessStartInfo();
> みたいなのを作って操作できるようなんですが、
これが思い違い。
401デフォルトの名無しさん:2012/04/30(月) 17:58:53.97
分からないならレスしなくていいです
402デフォルトの名無しさん:2012/04/30(月) 18:10:14.15
400が正解。ProcessStartInfoは関係ない。
他のウィンドウにキー入力を送るとかその辺の問題。
できなくはないがプログラムとしては三流でキモイ
403デフォルトの名無しさん:2012/04/30(月) 18:38:58.17
(別プロセスの)アプリケーションを操作…
という時点でDelphi言語やVCLかどうかではなく
Windowsのセキュリティに関連する知識が必要と思われ
くだすれレベルではない。
404デフォルトの名無しさん:2012/04/30(月) 19:13:17.80
>>399
ども、私も初心者ですが、検索してみたところ、パイプでの入出力に対応しているならば、
パイプというのとWriteFileというWIN32APIを使えば可能なようです。
パイプとかWriteFileで検索すれば、使用方法が見つかると思います。
405397:2012/04/30(月) 20:05:21.96
みなさんありがとうございます。
GalateaTalkというフリーの音声合成エンジンがあって
ttp://mahoro-ba.net/e1105.html
これを利用する場合、コマンドで

cd "gtalk.exeのあるフォルダ"
gtalk.exe -C ssm-win.conf //Ggtalk起動
set Text = こんにちは //読み上げ文字の入力
set Speak = NOW //で読み上げ

というコマンド処理が必要だったので。
ttp://mahoro-ba.net/e1206.html
の#Cのサンプルを見たらProcessStartInfoを作ってからいろいろしていたので
Delphiにも同様の処理ができないものかと質問した次第です。
こういった別プロセスを操作する方法は、あまりよい作法ではないんですね。
dllとかあれば使いたいところですが無くて。

>>404
ありがとうございます。
WriteFile検索してみます。
406デフォルトの名無しさん:2012/04/30(月) 21:31:45.30
どう見てもパイプです本当にありがとうございました
407デフォルトの名無しさん:2012/04/30(月) 21:45:41.63
別プロセスといっても、子プロセスに限っては例外ってことで。
408デフォルトの名無しさん:2012/04/30(月) 23:13:26.15
パイプつなげてdirした結果を受け取ればいいんでしょ
「anonymous pipe」でググって勉強せぇ
409デフォルトの名無しさん:2012/04/30(月) 23:28:03.86
JCLあたりでそんなのがあったような
410397:2012/05/01(火) 07:22:01.82
みなさん、ヒントいろいろ、ありがとうございます。
411デフォルトの名無しさん:2012/05/01(火) 07:53:33.57
動かしてみた感じだと結果は同じなんですが
Memo1.Lines.Clear; と Memo1.text :=''; の違いって厳密には
どう違うんでしょうか?
412デフォルトの名無しさん:2012/05/01(火) 08:02:06.04
>>411
ソースみなよ
413デフォルトの名無しさん:2012/05/01(火) 09:05:22.89
そんなレスする暇があったら自分で調べて教えてくれればいいのでは?
414デフォルトの名無しさん:2012/05/01(火) 10:09:48.48
厳密にはっつうことなら自分でソースを追ってみたほうがいいのでは?
デバッグ版DCU使う設定にしてF7(ステップイン)で。
415デフォルトの名無しさん:2012/05/01(火) 11:37:28.86
>>413
ここにソース上げろってかwwwwwwwwwwwwwwwwwwwwwww
非常識すぎるだろwwwwwwwwwwwwwwwwwwwwwwwwwwww
嫌なら完成したバイナリの比較でもしろw
416デフォルトの名無しさん:2012/05/01(火) 12:06:05.19
>>412 ソース
Memo1.Lines.Clear;
Memo1.text :='';
同じなんですね
417デフォルトの名無しさん:2012/05/01(火) 12:26:46.55
初心者的にはどっちでも結果は同じだからそれでいい
TMemoを行ごとに扱うならLines.Clearを勧める
418デフォルトの名無しさん:2012/05/01(火) 14:50:25.57
>>417
初心者的にはって実際に同一のコードが呼ばれてるけど?
頭悪くない?
419デフォルトの名無しさん:2012/05/01(火) 15:25:17.22
学生でもない初心者がDelphiはじめようとすると最低いくらくらいお金かかるの?
420デフォルトの名無しさん:2012/05/01(火) 16:01:45.97
>>418
>同一のコードが呼ばれてるけど?
この違いわかる?
Memo1.Lines.Clear;
Memo1.Lines.text :='';
Memo1.text :='';

>頭悪くない?
自虐的自己紹介乙
421デフォルトの名無しさん:2012/05/01(火) 16:03:06.25
>>416
Memo1.text :='';の方がいろいろないみで速度が遅いかもね
正確にはバイナリ比較して見なければわからンけど
422デフォルトの名無しさん:2012/05/01(火) 16:09:41.36
>>419
Delphi XE2 Starter Edition という奴で、2万弱でしょう。

過去の資産がなくて、技術サポートも必要ないなら、
無償の FPC+Lazarus で間に合うかもしれません。

かつては無償版の Delphi もあり、僕も最近まで常用していたのですが、
開発環境の OS を Windows7 に移したところ使えなくなったので、
仕方なしに恐る恐る FPC+Lazarus に移行してみましたが、
不足に感じるところはありませんでした。
423デフォルトの名無しさん:2012/05/01(火) 16:24:51.13
初心者相手にコード検証までしてニヤニヤしてる
>>418 がキモイ
424419:2012/05/01(火) 16:42:05.19
>>422
情報ありがdクス
425デフォルトの名無しさん:2012/05/01(火) 16:59:48.10
>>419
ttp://www.embarcadero.com/jp/products/delphi/starter-faq

> Delphi StarterおよびC++Builder Starterのアップグレード価格はだれが利用できるのですか?
> アップグレード価格は、Delphi、C++Builder、Turbo Delphi、Turbo C++、あるいは他の有償
> または無償の任意のIDEやソフトウェア開発ツールを持っているユーザーが対象です。

ってことで14700円でOK。MSのC# Express Editionでもダウンロードしとけばいい。
426デフォルトの名無しさん:2012/05/01(火) 17:14:14.87
>>425
MSのC# Express EditionにDelphi付いてるんですか?
427デフォルトの名無しさん:2012/05/01(火) 17:22:10.12
>>426
ちゃうちゃう、アップグレードの適用対象になるために、何らかの開発ツールがいるから、
一番お手軽なC#EEでも用意しとけってこと。過去のDelphi/C++BuilderでもVSでも、
多分Eclipseでもいい。ちなみに何を持っているかのチェックはない。
428デフォルトの名無しさん:2012/05/01(火) 17:48:15.86
>>427
Lazarusでもいいっすかねw?
429デフォルトの名無しさん:2012/05/01(火) 17:56:35.75
こんなんあったのか
まだ5を使ってるオレ
最近C#ばっかだけど買ってしまうか
430デフォルトの名無しさん:2012/05/01(火) 18:08:54.24
>>528
ROM版N88-BASICでもかまわないと思います。
431デフォルトの名無しさん:2012/05/01(火) 18:59:07.22
基本機能すらそぎ落としてあるからStarterはやめとけ
あんなイライラするもん使うならC#でもDelphi7Proでもなんでも他の使っておいたほうが良い
買うなら頑張ってPro買え
色々ツールついててかなり使いでがあるよ
安く買う方法も(以下自粛
432デフォルトの名無しさん:2012/05/01(火) 20:00:21.38
そぎ落とされた基本機能と便利なツールって具体的には何?
433デフォルトの名無しさん:2012/05/01(火) 23:20:43.31
ライセンス形態が違うだろ。 starterは非営利のみ。儲かったらその上にしろという縛りがある。
434411:2012/05/02(水) 05:26:31.09
Memo1.text :=''; よりは Memo1.Lines.Clear; を使うべきということを覚えました。
ありがとうございました。
435デフォルトの名無しさん:2012/05/02(水) 10:07:40.50
どちらも最終的にはウィンドウメッセージを介すので
どちらかを使うべきということはないです。文脈に合った方で。
ただMemo1.Lines.ClearよりはMemo1.Clearの方がいいです。
436デフォルトの名無しさん:2012/05/02(水) 11:57:20.20
>>435
「べき」ではなく「ベター」が問題なんですけど
437デフォルトの名無しさん:2012/05/02(水) 12:44:11.65
>>435
短い文章に2つも嘘を入れるな。
438デフォルトの名無しさん:2012/05/02(水) 14:17:11.00
最新マシンなら、心配するような動作速度の低下や実行ファイルの肥大化はないので
どっちでもいい
というのが正解だろうね。それでは納得できないというのならバイナリ比較したり実験したりするしかない。
439デフォルトの名無しさん:2012/05/02(水) 22:05:38.72
>>437
どこが?
440デフォルトの名無しさん:2012/05/02(水) 22:48:46.11
>>436
質問者自身がそういう言い方してんだけど
>>434が読めない文盲ですか?哀れだね
他人の批判ばかりで直接回答しない馬鹿は黙ってたら?
441デフォルトの名無しさん:2012/05/02(水) 23:19:25.32
お前ら喧嘩好きだなぁw
442デフォルトの名無しさん:2012/05/03(木) 01:43:54.66
Delphi7PROでまだ生きていけそうだ
443デフォルトの名無しさん:2012/05/03(木) 08:34:02.74
それ即死だろ
444デフォルトの名無しさん:2012/05/03(木) 09:20:48.70
ゾンビ
死んでいると気づいていない。

某 ML に多数生息中
445デフォルトの名無しさん:2012/05/03(木) 11:40:12.24
そもそもDelphi自体息をしてない件について
446デフォルトの名無しさん:2012/05/03(木) 11:49:23.68
また倒産?
447デフォルトの名無しさん:2012/05/03(木) 20:05:13.01
日本では息してないようでも
ヨーロッパなどでは
大量に作られた業務用VB6製ソフトの代替えとして
Delphiの採用例が多いって本当?
448デフォルトの名無しさん:2012/05/03(木) 21:22:40.20
Delphiの対応言語は英語版、ドイツ語版、日本語版、フランス語版で
このうち日本語版以外はヨーロッパの言語だから、それなりに使われているのでは?

ロシアやブラジルとかでも比較的使われていると聞くけど対応言語がないのを見ると
使われているけど売れていないのか?(海賊版や不正使用?)

しかし2バイト文字の対応がいまいちの場合もあるが、こうして対応言語を見ると
2バイト文字は日本語だけで、それに対応しているだけでも有難いと思う。
449デフォルトの名無しさん:2012/05/03(木) 22:20:53.72
前から日本語版出してたらから、惰性かね。
日本語で情報出してる人なんてほんの少しだから、日本は全滅宣言だしても
いいっぽいよね。
450デフォルトの名無しさん:2012/05/03(木) 23:40:12.06
日本じゃ4〜5辺りがピークで6からは下降線だろ。
単にGUI的な意味で生産効率が高いのがいいなんて理由で開発されるソフト自体がないからなぁ。
今の状況ならスクリプトに毛が生えた程度の認識しかないだろ。
趣味でやるには投資金額とか大仰だし仕事でやるなら移植性考えるし。せめてバイナリの最適化できれば考えるけどな。

451デフォルトの名無しさん:2012/05/03(木) 23:55:11.50
趣味でバイナリの最適化求めるなんてすげぇな。俺は速度はそこまで気にしちゃいねぇけど。
まぁ、趣味だからこそアセンブラで高速化とかしてみたいとか人いるけど。
FMはどうでもいいけど、XE3に期待するか。2009でUnicode,ジェネリックス,2010で
新RTTI,匿名メソッド、XEが正規表現くらいのしょぼーん、XE2で64bitとLiveBindings
452デフォルトの名無しさん:2012/05/03(木) 23:58:22.51
つか、XE3よりXE4の方がいいかもね。XE4辺りで、Metroアプリくるとしたら、
WinRTのDelphiバインディングのため、Nullableとか、非同期あたりもそこらへんで
入ってくるのかなと予想してる。
453デフォルトの名無しさん:2012/05/04(金) 00:43:41.36
超初心者にRTTIなんていってもわかるわけなかろうにw
454デフォルトの名無しさん:2012/05/04(金) 00:51:18.43
今7だけどジェネリックスだけは欲しい
実際どうなん?
455デフォルトの名無しさん:2012/05/04(金) 01:16:45.83
あんま複雑な事しなければいけるけど、複雑な事するとコンパイル時に
内部エラーが出始めたり、で、IDE再起動するとなくなったりなくならなかったり。
後、IDEのエディタが追いついてなくて、いらいらしたり。
456デフォルトの名無しさん:2012/05/04(金) 01:24:04.58
なんだそりゃー
そのあたりのクオリティは相変わらずなのか
457デフォルトの名無しさん:2012/05/04(金) 02:09:00.84
次のXE3で、AndroidがサポートされFree Pascalがなくても
iOSアプリが作成出来るから(Macを買わなくてすむ)
久しぶりにDelphiを買ってみるかな。
458デフォルトの名無しさん:2012/05/04(金) 06:43:54.14
Lazarusでいいやん
459デフォルトの名無しさん:2012/05/04(金) 09:06:20.38
>>457
コンパイラがWin上で動いてもMacは必須
460デフォルトの名無しさん:2012/05/04(金) 09:24:04.66
var sl: TStringList;
begin
sl := TStringList.Create;
with using(sl) do;
...
end;

で自動解放に成功。tryf不要になるからまあまあ使いやすいな。
実装は簡単に思いつくだろう。
461デフォルトの名無しさん:2012/05/04(金) 14:04:44.42
with using(TStringList.Create) do
...
end;
の方が変数宣言も不要だし実装も楽
実装は簡単に思いつくけど460には思いつかなかったみたい
462デフォルトの名無しさん:2012/05/04(金) 14:35:09.39
IDisposableインターフェース使うってのは無しね
OSが変わると使えないから
463デフォルトの名無しさん:2012/05/04(金) 14:37:32.21
Delphiのインターフェース実装にOS依存あったか?
464デフォルトの名無しさん:2012/05/04(金) 15:03:56.19
Lazarusでは -gh オプションでメモリリーク見つけてくれるよ!
465デフォルトの名無しさん:2012/05/04(金) 15:09:04.95
>>464
ほう今はこんな物がフリーであるのか
これDelphiと比べて互換性と生成する実行ファイルサイズはどんな感じ?
466デフォルトの名無しさん:2012/05/04(金) 20:35:52.16
フリーに互換性は求めなさんな
467デフォルトの名無しさん:2012/05/04(金) 23:51:53.47
ご本家 Delphi もバージョン間互換性がひくいからなぁ
468デフォルトの名無しさん:2012/05/05(土) 00:40:24.05
そうか?他の環境に比べたらかなり高めだと思うが
469デフォルトの名無しさん:2012/05/05(土) 06:34:39.39
プッ
470デフォルトの名無しさん:2012/05/05(土) 10:12:11.16
上手に放屁できましたね^^
471デフォルトの名無しさん:2012/05/05(土) 13:05:22.15
>>469
くせえw
472デフォルトの名無しさん:2012/05/06(日) 19:42:56.99
GCないと戦えません
473デフォルトの名無しさん:2012/05/06(日) 20:09:37.33
GCうぜえとおもうときもある
勝手なもんである
474デフォルトの名無しさん:2012/05/07(月) 00:34:46.48
>>472
>GCないと戦えません
自分で作ったら。

昔作ったときはレスポンスが気になって使うのやめたけど
大きくないアプリなら大丈夫じゃないかな?
475デフォルトの名無しさん:2012/05/07(月) 00:37:43.56
GCって何?
476デフォルトの名無しさん:2012/05/07(月) 00:50:05.52
グランドチャンピオン
477デフォルトの名無しさん:2012/05/07(月) 01:01:12.60
継続企業の前提
478デフォルトの名無しさん:2012/05/07(月) 05:04:36.57
ガーベジ・コレクション
479デフォルトの名無しさん:2012/05/07(月) 06:29:39.84
GC やったら既存のコードは全滅だろ?
だから政治的にできない
480デフォルトの名無しさん:2012/05/07(月) 06:54:42.01
というか自分で実装すればいいだけじゃんw
GCの仕組み知らないへぼプログラマってだけだろw
481デフォルトの名無しさん:2012/05/07(月) 07:27:14.35
>自分で実装すればいいだけ
すべてのコードが自分のコードならな。共同作業にそんなの持ち込まないでくれよな。
俺がお前の同僚なら、そんな危険なコードを持ち込むな。自慰行為は自分の家でやれ。っていうよ。
482デフォルトの名無しさん:2012/05/07(月) 07:44:47.00
>>481
危険てw
どんだけ無知なんだよw
プログラマやめたほうがいいよw
483デフォルトの名無しさん:2012/05/07(月) 07:46:41.06
>>481
馬鹿しかいないチームなんだな
484デフォルトの名無しさん:2012/05/07(月) 08:59:53.80
GCがなければメモリリーク起こす糞ソース書くやつってw
485デフォルトの名無しさん:2012/05/07(月) 09:11:53.34
Lazarusでは -gh オプションでメモリリーク見つけてくれるよ!
486デフォルトの名無しさん:2012/05/07(月) 09:21:15.21
もう、無駄な討論やめようぜ。エンバカの前スレあたりであった流れと同じ展開だな。
487デフォルトの名無しさん:2012/05/07(月) 09:57:35.96
エンバカの前スレの連中が逃げ込んできたんでしょ

GC があると中間メモリ消費量爆発問題とか考えないトンデモコードが増えるので正直やめてほしい
とりあえず ReportMemoryLeaksOnShutdown := True にしてみるんだな。
Lazarus というか FPC のコンパイルオプションだ。 FastMM のデバッグバージョンのパチもの。
488デフォルトの名無しさん:2012/05/07(月) 10:44:22.92
シングルスレッドアプリならいいけど、マルチスレッドアプリしか最近作ってない俺には
GCないとだるすぎるんだよね。GCあっても同時実行される部分は保護しなきゃいけないのはこれはGCとは
関係ないからやるのはいいんだけど、GCないとオブジェクトの解放タイミング合わせなきゃ
いけなくて、やってらんないんだよな。とりあえず、ユーザー定義のオブジェクトは今はInterfaceベースにして
逃げてるけど。
489デフォルトの名無しさん:2012/05/07(月) 10:44:54.25
とりあえずGCをろくに知らずにGC欲しいとか叫んでも無駄w
490デフォルトの名無しさん:2012/05/07(月) 10:45:51.54
>>488
だから自分で実装しろよ。多くて20行ぐらいだろ
491デフォルトの名無しさん:2012/05/07(月) 10:47:27.93
>>487
禿同。定期的スイープで動作も重くなる品。
492デフォルトの名無しさん:2012/05/07(月) 10:48:25.64
20行程度のコードでは自動解放が関の山。それも既存コードと衝突しまくりでバグだらけ。
コンパクションできるようになってから議論に戻ってね。
493デフォルトの名無しさん:2012/05/07(月) 10:51:42.45
ロートルの馬鹿議論は馬鹿スレでやってくれ
494デフォルトの名無しさん:2012/05/07(月) 11:17:46.32
だから、エンバカウオッチャスレの前スレ読めっておまえら。メモリモネージャとっかえて
できる・できないの話はどうだっていいんだよ。>>481が言うみたくオナニーは
家でやれよ。おまえらに欠けてるのはすぐにできる・できないの話しかしなくて
生産性とか信頼性とか全く考えてない事。おまえらはオナニーを他人に見せつけようと
必死すぎるんだよ。
495デフォルトの名無しさん:2012/05/07(月) 11:24:38.54
ロートルの馬鹿議論は馬鹿スレでやってくれ
496デフォルトの名無しさん:2012/05/07(月) 11:57:56.83
XE3出たか?
497デフォルトの名無しさん:2012/05/07(月) 13:19:21.41
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘  ! ヽ             …わかった この話は続けよう
                /イ       ', l  ’
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l            ハイ!! もっとやれ
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
498デフォルトの名無しさん:2012/05/07(月) 13:54:21.25
文末にwをつける彼が問題なんだって。彼の性格を表す典型的なやりとりが>>447から>>457
平和にレスが進んで他の人は自分の意見・考えや質問がメインで発言してるのに、
453 :デフォルトの名無しさん:2012/05/04(金) 00:43:41.36
超初心者にRTTIなんていってもわかるわけなかろうにw
彼だけは、自分のすごさをアピールするしか、頭にない。
誰もそんな事興味ねぇし、二の次だから基本彼は放置されてるが、遂に>>481が虎の尾を
踏んで、後は、>>482,>>484,>>489で彼がぶち切れる。
彼がこの違いに気づかなければ、また起こるだろう。
499デフォルトの名無しさん:2012/05/07(月) 14:04:17.84
長駄文乙w
500デフォルトの名無しさん:2012/05/07(月) 14:08:35.83
441 :デフォルトの名無しさん:2012/05/02(水) 23:19:25.32
  お前ら喧嘩好きだなぁw
自分が喧嘩してるじゃんw
501デフォルトの名無しさん:2012/05/07(月) 14:08:50.27
GC厨はそもそもスレ違い
502デフォルトの名無しさん:2012/05/07(月) 14:33:38.39
ガベージコレクションってそんなに簡単にできるものなん?
そんなに簡単なら、なんで標準装備してくれないの?
503デフォルトの名無しさん:2012/05/07(月) 14:39:53.29
この状況でその話を蒸し返すとはつわものめ。
504デフォルトの名無しさん:2012/05/07(月) 14:55:47.48
珍しく伸びてると思ったらGCGCって・・・
ウォシュレット付きの最新便器でもウンコしたら自分で手洗うだろ?
そこまで自分でやりたくないのか?
ウンコ着いたらしっかり洗えよ自分で
505デフォルトの名無しさん:2012/05/07(月) 15:48:54.92
>なんで標準装備してくれないの?
互換性。
506デフォルトの名無しさん:2012/05/07(月) 15:54:40.33
507デフォルトの名無しさん:2012/05/07(月) 15:59:19.01
>>502
簡単なものなら、多少のDelphi経験があれば作れるよ。

メモリーマネージャ(MM)との間にアダプターを噛ませて
メモリー確保と解放を記憶しておき、終了時に解放されていなければ解放するだけなら。

でも、メモリを使うたびに記憶するからレスポンスは遅くなるし終了時にしか解放されない。
それに、OSがWindowsならプロセス終了時に解放してくれるから有り難みは少ない。

PascalやC/C++みたいにスピード重視だと「標準装備」ちょっとって感じかな。
508デフォルトの名無しさん:2012/05/07(月) 18:55:59.65
徹頭徹尾無内容な長文書く才能は素直に認めるから
そろそろ隔離されてくれるとありがたい。
509デフォルトの名無しさん:2012/05/07(月) 19:00:33.35
3DCG製作にあんまり興味がないのに、Blenderの勉強から始めないといけなくて、
じゃあもっと簡単なアプリを作ろうかと思うとMACで何かやっているビデオを延々と見せられて、
ビジネスアプリのデモはピザとか家具とかで、そんなの作らないし。
FireMonkeyはハードルが高いな。
510デフォルトの名無しさん:2012/05/07(月) 19:14:18.25
>>507
なるほど、そうやって作るんだ。
511デフォルトの名無しさん:2012/05/07(月) 20:25:19.97
>>510
一般的なGCの作り方とは全然違うというか、そもそもGCですらないよ
簡単なメモリリーク検出機能の作り方と言った方が正しい
動作的には検出ついでに解放しているに過ぎないし
512デフォルトの名無しさん:2012/05/07(月) 21:10:40.10
>>511
お前には誰も聞いてない。
他の奴のケチだけ付けて、自分では何一つ生産的ことを言えない。

そろそろこんな奴、隔離されてくれるとありがたい。
513デフォルトの名無しさん:2012/05/07(月) 21:14:33.19
>動作的には検出ついでに解放しているに過ぎないし
検出して解放するのをGCというのだが、コイツはバカ?
514デフォルトの名無しさん:2012/05/07(月) 21:27:29.69
この惨めなおっちゃんにもうちょっとましな暇の潰し方が見つかりますように…
515デフォルトの名無しさん:2012/05/07(月) 21:48:20.26
なんか荒れてるけどスレタイに沿って超低レベル質問を・・・

Delphi6 Personalを使ってWindowsXP上で色々と試している最中なんですが
アプリケーションのFormの右上に出てくる×ボタンを押した時、
なんのイベントが発生するのでしょうか。

×ボタンを押したらonCloseに設定した正常終了の流れに
載せたいのに、無視されてそのまま終了してしまふ
516デフォルトの名無しさん:2012/05/07(月) 22:00:46.91
OnCloseQuery→OnClose→OnDestroy
517デフォルトの名無しさん:2012/05/07(月) 22:06:49.63
>>512,>>513,>>514
文末にwつけるの忘れてるぞ。
>>481でカチンときて一人で怒ってるのはおまえだけだろ。3連続投稿して
よほどくやしかったのかよ(笑)。
518515:2012/05/07(月) 22:42:54.54
>>516
ありがたふ
・・・OnClose通ってたんですね。俺は何を勘違いしたんだろう
519デフォルトの名無しさん:2012/05/08(火) 08:26:42.99
くだらないレベルの質問するなよ
答えるほうもどうかしてる
520デフォルトの名無しさん:2012/05/08(火) 08:28:55.93
>>519
スレタイ嫁
521デフォルトの名無しさん:2012/05/08(火) 09:22:42.97
最近本当にVBの方が優れてるよね
522デフォルトの名無しさん:2012/05/08(火) 09:27:14.91
VB はクソ。C# つかえ
523デフォルトの名無しさん:2012/05/08(火) 09:56:42.34
C#は中間言語なんでちょっと抵抗が。
524デフォルトの名無しさん:2012/05/08(火) 10:19:09.02
違いが判るようなやつは 2ch には来ない
525デフォルトの名無しさん:2012/05/08(火) 10:29:32.10
.NET Frameworkってwindows7なら最初っから入ってる?
C#ってアプリ配布がめんどくさい
526デフォルトの名無しさん:2012/05/08(火) 10:30:12.03
>>513
>>507は終了時に「未だに使われたまま」のメモリを解放するわけでしょ?
使われていないメモリを検出して解放するのとは全然違うじゃん
527デフォルトの名無しさん:2012/05/08(火) 10:33:44.37
>>525
バージョンによる
528デフォルトの名無しさん:2012/05/08(火) 11:01:50.19
>C#ってアプリ配布がめんどくさい
まともなインストーラー使え。
または .config ファイル書いて必要な Runtime 自動で落とすようにしなさい。
まぁたいていの環境では既にインストール済みだが。

デルは実行ファイルの大きさがでかすぎるのが致命的
529デフォルトの名無しさん:2012/05/08(火) 11:12:16.44
> デルは実行ファイルの大きさがでかすぎるのが致命的
昔から言われてるけどHDDとかの容量考えたら、そんなに気にすることでもないんじゃないの?
実際本格的なアプリ作ったらどれくらいになるの?
530デフォルトの名無しさん:2012/05/08(火) 11:27:13.47
実行時のワーキングセットが大きいと、キャシュからあふれて速度低下がおきるぜ
531デフォルトの名無しさん:2012/05/08(火) 11:26:33.73
うちの会社では入力系のプログラムが実行時パッケージを使わないで一番大き
くて約7.3メガ
532デフォルトの名無しさん:2012/05/08(火) 11:43:35.79
でかいね
社内配布だから大きくてよい
て理由なら、
社内使用だから .NET ランタイムのインストールは前提で良い
て理由も通るな。
533デフォルトの名無しさん:2012/05/08(火) 12:16:16.74
>>526
GCとは、”不要”になった領域を自動的に解放する機能。
534デフォルトの名無しさん:2012/05/08(火) 12:21:05.85
デルの実行ファイルが大きい理由って、使ってないVCLとかも含むから?
535デフォルトの名無しさん:2012/05/08(火) 12:51:47.72
デルはVCL使用しなければ小さくなる
536デフォルトの名無しさん:2012/05/08(火) 13:10:04.88
それなら FPC/らざるすでも良いな。
537デフォルトの名無しさん:2012/05/08(火) 19:35:50.02
>>533
そうだなんだよな。だから>>507はGCとは言えない。
どういう手法のGCも、ルートが生きてて参照も残ったままの領域は不要かどうか判断ができないからな。
不要になったメモリとリークしてるメモリは全然別物だという認識が無いんだろうね。

Wikipediaにもこういう記述がある。
>ただしガベージコレクションにおいても、今後使用することのないオブジェクトへのポインタを
>いつまでも保持しているようなコードでは、いつまでもオブジェクトが解放されず、メモリ不足を起こしてしまう。
>これは論理的な設計の問題であり、ガベージコレクションを持つ処理系においてもこの種のメモリリークは発生する。
GCがあっても発生するようなリークを、終了時にまとめて解放する処理がGCだなんて言えるわけがない。
まだゴチャゴチャ言うんだったら、まずこの記述を「正しい」記述に書き換えて欲しいね。
538デフォルトの名無しさん:2012/05/08(火) 19:41:14.99
>>536
あっちは何もしなくてもDelphiよりでかい
539デフォルトの名無しさん:2012/05/08(火) 20:21:13.11
>>537
>ただしガベージコレクションにおいても、今後使用することのないオブジェクトへのポインタをいつまでも保持しているようなコードでは、
>いつまでもオブジェクトが解放されず、メモリ不足を起こしてしまう。これは論理的な設計の問題であり、
>ガベージコレクションを持つ処理系においてもこの種のメモリリークは発生する。
Wikipediaの要約:GCにおいても論理的な設計の問題でメモリリークは発生する。

>GCがあっても発生するようなリークを、終了時にまとめて解放する処理がGCだなんて言えるわけがない。
上のWikipediaとまったく関係がない。上はGCでもメモリリークは発生すると書いてあるだけ。
それを「終了時にまとめて解放するのがGCではない」と、どうしたら読み取れるんだ?
そもそも前半の「GCがあっても発生するようなリークを」と後半の「終了時にまとめて解放する処理がGCだなんて言えるわけがない」が繋がっていない。
論理的思考が欠如している。

>まだゴチャゴチャ言うんだったら、まずこの記述を「正しい」記述に書き換えて欲しいね。
Wikipediaは正しく書いてある。読み手の問題。
540デフォルトの名無しさん:2012/05/08(火) 20:27:11.60
>>537
脳内変換が凄w
541デフォルトの名無しさん:2012/05/09(水) 05:24:08.88
>>538
付属のstrip.exeを使うとよいよ
542デフォルトの名無しさん:2012/05/09(水) 07:12:14.55
そろそろスレチだと気づいてくれ。
543デフォルトの名無しさん:2012/05/09(水) 11:51:15.08
delphi6 personalをインストールしたいのですがググってもリンクが切れてるページしか出てきません。
どなたかダウンロードできるページを張っていただけませんか?
544デフォルトの名無しさん:2012/05/09(水) 11:58:53.53
GC キチガイは RAN かな Fusa かな?
545デフォルトの名無しさん:2012/05/09(水) 12:01:43.52
あいつら以外にもバカはたくさんいるだろ?
546デフォルトの名無しさん:2012/05/09(水) 12:19:23.48
バカでも、日本語が読めないバカは少ないだろう?
547デフォルトの名無しさん:2012/05/09(水) 12:49:50.02
質問させてください。
TIdTelnetを使って開発しています。
例えばAとBというパソコンで開発していたとして、
IdTelnetのプロパティを適切に設定した後、

procedure TForm1.FormCreate(Sender: TObject);
begin
 IdTelnet1.Connect();
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 IdTelnet1.Disconnect;
end;

上のコードをAのパソコンで実行すると全く問題なく動くのですが、
Bのパソコンで実行すると、IdTelnet1.Disconnect;のところで以下のようなエラーが出ます。
---------------------------
プロジェクト Project1.exe が EAccessViolation クラスの例外を生成しました。
'モジュール 'Project1.exe' のアドレス 00459D8C でアドレス 0000006C に対する読み込み違反がおきました。'
---------------------------

これの原因としては、どのようなことが考えられるのでしょうか?
一方ではうまくいくのに、もう一方ではエラーが出るというのがよく分らなくて。
PC側の設定とかでしょうか。
548デフォルトの名無しさん:2012/05/09(水) 14:13:54.55
XE3 でたか?
549デフォルトの名無しさん:2012/05/09(水) 14:48:26.89
Disconnectするまでは動いてるってこと? その部分だけが問題ならトラップして無視すればいいだろ
550デフォルトの名無しさん:2012/05/09(水) 15:01:32.78
Cというパソコンで実行してみて、その結果がAと同じかBと同じかによって、
A&C と B&C との共通点と相違点を探る。
551デフォルトの名無しさん:2012/05/09(水) 18:04:13.89
>その部分だけが問題ならトラップして無視すればいいだろ
そんなヤツの作ったプログラムは使いたくないなぁ...
552デフォルトの名無しさん:2012/05/09(水) 18:04:29.82
ありがとうございます。
>>549
はい、Disconnectするまでは普通に動いてます。
自分でもいろいろ、原因を探ってみたのですが、そうするしかなさそうです。
>>550
いまんとこ2台しかPCがないのですが、今度別のPCで試さしてもらおうと思います。
553デフォルトの名無しさん:2012/05/09(水) 21:23:38.58
554デフォルトの名無しさん:2012/05/10(木) 13:16:03.93
D7でつくったDBアプリを数台のクライアントに入れてるんですが
アップデートするたびにいちいち全部に入れて回るの面倒なので
簡単に配布する方法ってないですか
更新するのはEXEファイル1つだけです
ネットワークの構成は2008サーバーとクライアントにwin7が5台です
555デフォルトの名無しさん:2012/05/10(木) 13:25:40.35
>>554
http://localserver/yourapp/latest.txt調べて
バージョンが食い違ってたらwget yourapp.exeでダウンロードして
taskkill /im yourapp.exeしてexe上書きして再起動
みたいなスクリプトをクライアント側で走らせておくしか
556デフォルトの名無しさん:2012/05/10(木) 14:32:47.91
XE3出たか?
557デフォルトの名無しさん:2012/05/10(木) 14:56:08.79
>>554
共有フォルダを作って毎回xcopyしてからexeを起動する
558デフォルトの名無しさん:2012/05/10(木) 15:15:44.97
もっと簡単に配布する方法ってないですか?
559デフォルトの名無しさん:2012/05/10(木) 15:23:49.22
>>558
自分でも少しはアイデア出せよ
560デフォルトの名無しさん:2012/05/10(木) 15:45:34.44
リモートデスクトップ
561デフォルトの名無しさん:2012/05/10(木) 15:52:56.43
クライアントにアップデートボタンをつける
押す→ランチャー起動→クライアント終了
WEBからコピーしてくる→クライアント上書き
クライアント再起動→ランチャー終了

これでおk
562デフォルトの名無しさん:2012/05/10(木) 16:01:31.97
コード書かないで、コンポ一発でできないものでしょうかねぇ
563デフォルトの名無しさん:2012/05/10(木) 16:35:09.36
だめだこりゃ
564デフォルトの名無しさん:2012/05/10(木) 16:45:16.39
XE3出たか?
565デフォルトの名無しさん:2012/05/10(木) 17:25:02.05
JavaWebStartで作り直せ
566デフォルトの名無しさん:2012/05/10(木) 19:31:10.43
>>554
クライアントPCでDBアプリを直接起動させるんじゃなくてさ

DBアプリのバージョンを確認してからDBアプリをShellExecute 起動させるか
上位バージョンがあったらコピーしてきてからShellExecute させる実行ファイルを作って使ってもらえばええがな
567デフォルトの名無しさん:2012/05/10(木) 20:22:16.54
AppWaveという手も
568デフォルトの名無しさん:2012/05/10(木) 23:11:42.92
.NET なら配布簡単だよ
569デフォルトの名無しさん:2012/05/11(金) 00:15:11.72
そーだね
570デフォルトの名無しさん:2012/05/11(金) 00:25:14.03
馬鹿には無理
571デフォルトの名無しさん:2012/05/11(金) 01:20:56.82
そーだね
572554:2012/05/11(金) 02:18:28.41
色々な意見ありがとうございました
これから試してみます
573デフォルトの名無しさん:2012/05/11(金) 02:58:41.63
XE3出たか?
574デフォルトの名無しさん:2012/05/11(金) 05:56:34.91
XE3出たか?
575デフォルトの名無しさん:2012/05/11(金) 06:59:43.39
XE3出たか?
576デフォルトの名無しさん:2012/05/11(金) 07:09:37.43
夜型ですね
577デフォルトの名無しさん:2012/05/11(金) 08:06:54.60
多い日の夜用薄型
578デフォルトの名無しさん:2012/05/11(金) 10:16:30.81
Tiobe で Ruby にも抜かれきったか
579デフォルトの名無しさん:2012/05/12(土) 12:33:59.91
さすがにPL/SQLには勝つだろ
580デフォルトの名無しさん:2012/05/12(土) 15:13:20.03
XE3出たか?
581デフォルトの名無しさん:2012/05/12(土) 19:14:22.58
>>579
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
いゃ〜、日本国内でもDelphiよりPL/SQLの方が案件は多い。
しかしVBとBasicが同じで、DelphiとPascalを分けてカウントしているのは納得出来ない。
582デフォルトの名無しさん:2012/05/12(土) 21:30:43.68
Delphi7を使用してます。
プロジェクト内にあるフォーム&ソースをコピーして新規フォームを
作りたいのですが、スマートに行う方法はないでしょうか。

今は、フォームAからフォームA'を作成する際
新規フォーム作成,A'に名称変更→フォームAのコンポーネントをA'にコピペ→
フォームAのPASをA'にコピペして名称置換 とやっているのですが、
もっとまともなやり方があるような・・・
583デフォルトの名無しさん:2012/05/12(土) 22:07:44.95
フォームの継承とか言ってくる奴がいると思うが
絶対に耳を貸すんじゃないぞ。
584デフォルトの名無しさん:2012/05/12(土) 22:39:27.96
フレームでやれ
585デフォルトの名無しさん:2012/05/12(土) 23:15:00.39
>>582
コピーであって継承ではない、というのは意味わかってやってんだよね?

フォームAの.pasと.dfmを別ファイルにコピーして新しいユニット名に合わせたファイル名にして、
この状態でエディタで.pasと.dfmを開いて、.pasの先頭のユニット名をファイル名に変更、
.pasにあるフォームクラス(TForm1とか)を新しいものに一括置換、その下にあるフォームの
変数(Form1)をフォームクラス名に合わせたものに変更、.dfmの先頭の
object フォーム変数名: フォームクラス名の部分を上に合わせて変更、これでエディタを終了、
IDEでプロジェクトにこのユニットを追加、という手順でいいはず。
586デフォルトの名無しさん:2012/05/12(土) 23:57:09.06
>>585
アホだな〜w、ファイル名とUnit名だけ変えればいいだよ。
カプセル化とかの概念を理解出来ている?
587デフォルトの名無しさん:2012/05/13(日) 00:00:05.87
>Delphi7
588デフォルトの名無しさん:2012/05/13(日) 00:20:03.83
>>586
まあそれもそうだな。ユニット名以外はあとでIDEで変えれば問題ないか。
カプセル化の概念とはあんまり関係ないけど。最近知った言葉だから使ってみたかったの?
589デフォルトの名無しさん:2012/05/13(日) 00:27:21.03
AをA'にリネームしてから名前を付けて保存
プロジェクトを保存せずに閉じる
再びプロジェクトを開いてA'をプロジェクトに追加
俺はいつもこうやってるけどなんか問題ある?
うっかりAを上書き保存しちゃうとかプロジェクトを保存しちゃうと涙目になるけど
590デフォルトの名無しさん:2012/05/13(日) 00:32:06.39
>>588
やっぱりアホだ〜w、Unit名だけが変わっていればいいんだよ。
Unit自体がカプセル化だと理解出来ていないだろうw
591デフォルトの名無しさん:2012/05/13(日) 01:55:46.00
>>585
似たようなプログラムを量産する時は、
フォルダにベースとなるプロジェクトを作っておいて
後は新規フォルダにコピーして作ってる(プロジェクト名だけ別にして保存)

Unit1.pas などの構成する名前は共通にしてるよ
TForm1.〜
そうすると関数の使いまわしが楽だから
WHD を使って相互にデータをやりとりするようなのは、TForm1.〜 も変更してるが
Form1.Caption なんかも const で書いてFormCreate で入れるようにしてる。
592582:2012/05/13(日) 10:07:11.98
>>583-591
ありがとうございます。

>>589氏のやり方をしていて、修正後うっかりF9押して自動保存→涙目
はやったことが・・・

今回はベースとなるものをある程度作ってあるので
>>585氏のやり方を使わせていただいて
今後同じようなことがある場合は
>>584,591氏の方法を合わせて使わせて頂きます。

ありがとうございました。
593デフォルトの名無しさん:2012/05/13(日) 12:22:26.85
つーかコピーしたいユニットをIDEから名前付けて別名で保存→元の名前のユニットをプロジェクトに追加でよくね?
594デフォルトの名無しさん:2012/05/13(日) 20:55:44.11
それが普通じゃないのかw
595デフォルトの名無しさん:2012/05/13(日) 21:41:17.24
アホだ〜とか言いながら普通のことを難しくやる人がこのスレにはいるからなw
596デフォルトの名無しさん:2012/05/13(日) 21:42:36.77
インスタントラーメンを作るのにいちいち講釈たれるようなもんだな
597デフォルトの名無しさん:2012/05/13(日) 22:36:37.26
アホだな〜w、カップヌードルにお湯入れたらセロハンテープ貼ればいいだよ。
蓋を閉じるって概念を理解出来ている?

つーかシール付いてんじゃん

こうですか?分かりません><
598デフォルトの名無しさん:2012/05/13(日) 23:11:21.16
漏れはシール捨てて蓋の端に箸乗せてるだけだわ
599デフォルトの名無しさん:2012/05/14(月) 00:15:54.35
>>594-598
惨めにアホの上塗りか〜w、お前は、本当に可哀想だなw。

結果が「ファイル名とUnit名だけ変えればいい」で
その為の手段が「名前付けて保存」なんだよ。

結果と手段も分からんバカとはw
600デフォルトの名無しさん:2012/05/14(月) 09:41:33.21
delphi6 personalのインストーラをダウンロードしたけど、
インストール番号とキーがわからないからインストールできないです。

誰か助けて。
601デフォルトの名無しさん:2012/05/14(月) 10:28:47.52
馬鹿には無理
602デフォルトの名無しさん:2012/05/14(月) 11:07:44.18
C#でもやればいいんじゃないですか?(笑)
603デフォルトの名無しさん:2012/05/14(月) 11:09:11.43
>>601

うるせぇ。平日のこんな時間から暇なことしてんな。
早く、勉強か仕事に戻るんだ。
604デフォルトの名無しさん:2012/05/14(月) 11:26:06.58
605デフォルトの名無しさん:2012/05/14(月) 13:24:46.80
>>599
ファイル名だけ変えればUnit名も変わるから、
「ファイル名とUnit名だけ変えればいい」って書くのはおかしいね
馬鹿なんだね
606デフォルトの名無しさん:2012/05/14(月) 13:37:59.47
>>599みたいに後から「実は知ってたけど」って書くのが一番恥ずかしいわ。
必死に煽って自分の惨めさを誤魔化してるようだけど。
この後も必死に言い訳するんだろうけど頑張ってね。
607デフォルトの名無しさん:2012/05/14(月) 14:21:29.46
馬鹿には無理
608デフォルトの名無しさん:2012/05/14(月) 16:54:15.51
>>605-607
今日もアホだな〜w

>>582への回答じゃなく>>585への
突っ込みで書いたんだから>>586でいいんだよ。

>>585みたいなアホの事を書いたからって必死になるなよw
609デフォルトの名無しさん:2012/05/14(月) 18:47:23.61
自分以外の全員が敵に見えるのは病気だから気をつけなさいよ
すくなくとも>>585以降は一人じゃない
610デフォルトの名無しさん:2012/05/14(月) 20:19:13.72
611デフォルトの名無しさん:2012/05/15(火) 12:36:48.45
組込用のスクリプトでDelphi側で個別のアクセス用関数を定義することなく自由に
application.title = "hello"
form1.listbox.items.add("world")
と書けるものあったら教えて下さい。
612デフォルトの名無しさん:2012/05/15(火) 13:57:43.80
つまりは出来合いのものはないかという質問だと思うが、
RTTIさえ理解してれば簡単に作れるよ
613デフォルトの名無しさん:2012/05/15(火) 18:32:17.62
>>609
相変わらずのアホ〜ぷりw、逆も一人じゃないと思わないのかw
お前は、なんでもかんでも考えが浅はかなんだよw

結局、技術や知識でまけると人間性しか批判出来ない負け犬根性がw
614デフォルトの名無しさん:2012/05/15(火) 20:07:44.66
:::::::::::::::::::::::::::::::>-、,     /
::::::::::::::::::::::::::::,::::::::::::::ヘ    /    . 自  母  半  こ  実  で
::::::::::::::::::::::::/   .∨ヘ:ヽ  |       演 . ち  数  の . は  も
:::::::::::::::::::::/      ',:',  人    . な   ゃ  以  ス    . ね
:::::::::::::::/       ヽヘ  \    ん . ん  上  レ     . ・
::::::::ィ-、、,        ',.}  /    よ . の  は  の  .     ・
:::ノ  _``ヽ‐ィ  、____ lリ /      ・                  ・
:ハ =イ、__〇、   ./__´| 人     . . ・
.l | ´`ー─‐'   /<´〇    \.  .   ・
 |        ヘ ̄` /  .   \
../ |        ヘ . '     /イ、_____________,,,/
  .|      __ ,,,〉. '        ,,、、─-、、_
  .|l     _、´  /       /──-、__ \
  .J  ,'イ─-> /       /‐、_  、___,,,、\ ヘ        ____
        ̄ /       |イnヽ) ィn.ヾ,,.〈 .ハ      ∠´   .>、
>、      /         | ̄(´`   ̄  |ィヽ'    ./'´ ̄`'´ ̄`ヽ ヽ
、  > _,/          /  ,二、    .リ6/    〈 '>、、 `-<.ヽ l
ヘヘ  |||ヽ___          ヽ 〈三三〉 レ  _ノ     (.} b__<  b_) リハ
ヽヽヽ..||| ヽ `ヽ、     _,,、--\ ‐    ,, |ヽ      Y  ,--、.   /ノ
 ヽヽ、|||  .ヽ  ヘ    / 二二:{ )ゝ--イ ∠ ヘ__   \ -=-`  /´
  .ヽヽ,'.|   ',   \  / ──ヽ /, == イ   /  / ヘ   〉、__,,,イ,,ハ
   .∨/   l    ヘ .|  r- ///〇 \  |  /  ヽ  / \ /  .ヘ
615デフォルトの名無しさん:2012/05/15(火) 23:37:25.14
ってか恥ずかしいやつが居るな。思わず読んでて赤面しちまったよ。
616デフォルトの名無しさん:2012/05/16(水) 12:27:16.01
>>613
>結局、技術や知識でまけると人間性しか批判出来ない負け犬根性がw
お前自己紹介うまいな!
617デフォルトの名無しさん:2012/05/16(水) 12:29:16.89
>>612
簡単なら作って
618デフォルトの名無しさん:2012/05/16(水) 14:04:52.13
馬鹿には無理
619デフォルトの名無しさん:2012/05/16(水) 15:05:00.65
言うだけならタダだしな
620デフォルトの名無しさん:2012/05/16(水) 15:06:14.60
簡単詐欺
621デフォルトの名無しさん:2012/05/16(水) 20:57:15.70
>>616
今日も誹謗中傷だけとはアホ過ぎるw

>>588
>まあそれもそうだな。ユニット名以外はあとでIDEで変えれば問題ないか。
自分で間違いを認めといて、お前って本当に女々しいぞw
知識もないくせに、超初心者向けだからってアホなことばかり書くな、アホがw
622デフォルトの名無しさん:2012/05/16(水) 22:23:55.31
アホ以外に知ってる言葉無いのかなこの人
623デフォルトの名無しさん:2012/05/16(水) 22:25:42.63
スルーしろ
624デフォルトの名無しさん:2012/05/16(水) 22:34:43.23
質問です。
DelphiのUnitはカプセル化だと主張している人がいたのですが、
これまでそういう主張をした本やサイトを見たことがありません。
公式のヘルプでUnitについて調べてもそのような記述はありませんでした。
具体的にどういうことなのか分かる方はいないでしょうか?
もしくはそれを説明した本やサイトを紹介して頂けるとありがたいです。
625デフォルトの名無しさん:2012/05/16(水) 23:51:12.08
確かにDelphiのユニットは事実上のネームスペースとして機能するので、
カプセル化だといえばその通りの側面はある。

ttp://docwiki.embarcadero.com/RADStudio/XE2/ja/Delphi_%E3%81%A7%E3%81%AE%E5%90%8D%E5%89%8D%E7%A9%BA%E9%96%93%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9

XE2では公式に名前空間としてユニットが位置付けられた。
626デフォルトの名無しさん:2012/05/17(木) 01:06:10.90
>>624
初心者は、難しいことを考えず
Unitの使い方を覚えれば大丈夫
627デフォルトの名無しさん:2012/05/17(木) 08:01:59.02
>>624
interface=public=c言語の.h部分
implementation=private=c言語の.c部分
という意図でそう言っているのだろう。
delphiをpascalに変えて検索してみればoop以前の情報が色々引っかかるかも。
628デフォルトの名無しさん:2012/05/17(木) 12:12:26.90
>という意図でそう言っているのだろう。
違います
629デフォルトの名無しさん:2012/05/17(木) 13:36:46.56
>>624
>具体的にどういうことなのか分かる方はいないでしょうか?
つまり、カプセル化やUnitの意味が分からないということ?
630デフォルトの名無しさん:2012/05/17(木) 17:19:12.85
>>624
酷い質問だ。

>>588
>カプセル化の概念とはあんまり関係ないけど。最近知った言葉だから使ってみたかったの?
を真っ向から否定するような、質問をしなくても...

いくら相手がトンチンカンなことを書いていても
もう少し相手の身になって質問しないと、スレが荒れるから。
631デフォルトの名無しさん:2012/05/18(金) 10:50:27.34
>>617
3桁ぐらい貰えれば作るよ
632デフォルトの名無しさん:2012/05/18(金) 11:36:02.43
100円?
633デフォルトの名無しさん:2012/05/18(金) 13:17:54.46
>>632
馬鹿、500円だよ
634デフォルトの名無しさん:2012/05/18(金) 13:20:40.17
>>630
相変わらずアホだな〜w
Unitがカプセル化だと理解出来ていないだろうw
結局、技術や知識でまけると人間性しか批判出来ない負け犬根性がw
635デフォルトの名無しさん:2012/05/18(金) 18:24:58.09
( ´_ゝ`)フーン
636デフォルトの名無しさん:2012/05/20(日) 19:01:31.20
質問です。
TBottun1を押した時に、TMemoに直前に打ち込まれた1文字(1byteか2byte)を削除するにはどうしたらよいですか?
また、複数回押した時には複数文字削除したいのですが、よろしくお願い致します。
637デフォルトの名無しさん:2012/05/20(日) 19:20:26.96
何が分かんないの?
TMemoの文字列を取得/設定する方法?
文字列を削除する方法?
ボタンを押した時に処理する方法?
638デフォルトの名無しさん:2012/05/20(日) 19:31:37.51
>>637

・TMemoの文字列を取得/設定する方法
・文字列を削除する方法
取得する方法もわからなかったので、できれば両方教えていただきたいです。
639デフォルトの名無しさん:2012/05/20(日) 19:34:44.22
>>636

procedure TForm1.Button1Click(Sender: TObject);
var
WorkStr: string;
WorkInt: Smallint;
begin
WorkStr := Memo1.Lines[Memo1.Lines.Count - 1];
WorkInt := Length(Memo1.Lines[Memo1.Lines.Count - 1]);
Delete(WorkStr, WorkInt, 1);
Memo1.Lines[Memo1.Lines.Count - 1] := WorkStr;
end;
640デフォルトの名無しさん:2012/05/20(日) 19:39:44.72
Backspace送った方が楽じゃね?
641デフォルトの名無しさん:2012/05/20(日) 19:47:52.79
>>639

ありがとうございます!
とりあえず動作できました。

>>640

送るとはどういうことでしょうか(汗
642デフォルトの名無しさん:2012/05/21(月) 01:00:48.67
>>639
質問者が納得してるんならいいんだけど、このコード厳密には一番下の行の右端を削ってるだけで
最後に書かれた文字とは限らないよね。
643デフォルトの名無しさん:2012/05/21(月) 01:57:11.36
>>639
いろいろバグっている。
644デフォルトの名無しさん:2012/05/21(月) 02:20:56.88
>>642

先ほどそれに気づいて今悪戦苦闘していますが…
無理です。どうしたらいいのでしょうか。
645デフォルトの名無しさん:2012/05/21(月) 03:37:36.60
なぜそういう動作を実現したいの?
あとDelphiのバージョン書いた方がいいんじゃない
646デフォルトの名無しさん:2012/05/21(月) 09:06:26.00
>>641
PostMessageでWM_CHAR,使ってキーコードをメモに送りつける。
まぁWM_CHARでググれ。
647デフォルトの名無しさん:2012/05/21(月) 09:54:38.79
>>644
ググったらすぐ出てきたぞ。

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Undo;
end;
648デフォルトの名無しさん:2012/05/21(月) 10:24:17.13
>>647
ま〜たアホが一人w
649デフォルトの名無しさん:2012/05/21(月) 16:23:56.28
直前に打ち込まれた文字が最終行の最終文字とは限らないんだったら、結構めんどくさい気がするんだが
650デフォルトの名無しさん:2012/05/21(月) 16:31:14.44
最後コピペで貼り付けられたら
どういう動作をする仕様かまだわかってないもんな
651デフォルトの名無しさん:2012/05/21(月) 16:34:25.12
別にキャレットの位置だけ把握してりゃBSだけで済むってのに
652デフォルトの名無しさん:2012/05/21(月) 20:08:13.50
>>649
俺もそう思う。
単純にバックスペース送るのも違うし。
入力される直前の状態を記憶しておいて、ボタンがクリックされたら
無条件に最後に記憶しているものに置き換えるのはどうだろう。
同じなら同じで問題ないと思うし。
653デフォルトの名無しさん:2012/05/21(月) 20:15:40.34
>>636
こんな感じで仕様を出してくるSEがいるが、
本当に駄目SEの典型だよ。

この仕様でいくと、まずTABや改行も一文字と考えるのかが疑問で、実装方法として
BSで実装するのは、カーソルが移動可能だから前が直前の文字とは限らない。

Undoで実装は、1文字だけならいいが
>また、複数回押した時には複数文字削除したいのです
という仕様もあるから駄目。しかし>>648が言うようなアホじゃない。逆に考えの浅いコイツの方がアホだと思うが。

エディターの「元に戻す」みたいな機能を実装したいなら? 
TMomoじゃなく無限Undoを備えたエディターコンポーネントを使うのが楽。
654デフォルトの名無しさん:2012/05/21(月) 21:50:41.77
Tea桃
655デフォルトの名無しさん:2012/05/21(月) 22:31:06.93
なんかすごく品の良いフレーバーティーを想像した
656デフォルトの名無しさん:2012/05/21(月) 23:04:54.70
TMomoとかTOppaiとかの話か
657デフォルトの名無しさん:2012/05/21(月) 23:51:35.14
>>654-656
ま〜たアホが三人w
658デフォルトの名無しさん:2012/05/22(火) 01:10:38.02
TSumomo = class(TSumomomomomomomomonouchi);
TMomo = class(TSumomomomomomomomonouchi);
659デフォルトの名無しさん:2012/05/22(火) 01:41:12.00
ずいぶんと、フラストレーションが溜まっている人がいるな。
660デフォルトの名無しさん:2012/05/22(火) 08:15:46.59
打ち直したいってことなら、前回の入力を記憶しておいて、書き戻せばいい
661デフォルトの名無しさん:2012/05/22(火) 09:43:32.81
本多さんのエディターを使いたいために、未だ7を使ってるんだけど、
新しいデルファイでなんか良さげなコンポある?
662デフォルトの名無しさん:2012/05/22(火) 10:24:50.76
>>661
LazarusのSynEditとか
663デフォルトの名無しさん:2012/05/22(火) 11:16:10.80
>>661
Unicode対応版出てるよ
664デフォルトの名無しさん:2012/05/23(水) 11:57:41.75
Unicode対応版っていってもまともにUnicodeを扱ってないSynEditとか、ホンダさんエディタ
にもう意味はねぇよーな。そもそも固定フォント専用だし。
665デフォルトの名無しさん:2012/05/23(水) 12:28:59.78
俺みたいに固定フォントで不満がない人間にはホンダさんエディタ便利なんだよ。
あんな凄いの作れるホンダさんでもUnicode対応は大変なんだろうか。
たぶん、円馬鹿の迷走ぶりにやんなったんだろうけど。
666デフォルトの名無しさん:2012/05/23(水) 12:54:48.78
Unicodeって言っても日本語だけじゃないんだって。日本語メインだと、1コードポイント=1文字みたいな
イメージあるけど、カーソル配置にしたって、書記素という境界におかなきゃいけないし、RTLとLTRの切り替えとか
まともにやると死ぬというか無理。WinではDirectWrite使えば、えらい楽になるけど、Uniscribe使うと
幾分楽になるがそれでもUniscribe自体がLowlevelだし。UniSynEditのUniscribe版の使い方は
はっきりいって無意味でハンドリングまったくできてない。というか、DirectWrite使えば、
エディタ作成で、テキストのレイアウトやカーソル配置やヒットテスト全部やってくれるから
前に比べれば結構楽だぞ。
667デフォルトの名無しさん:2012/05/23(水) 13:14:45.96
というかエディタメインのプログラム作るならみんなのために作ってよ。今、ホンダさんソースをさらりと
みたけど、メインのHEditor.pasは1万2千行くらいで、色々、文字の操作や折り返しやキャレット配置・レイアウト
などでごみごみしてやってるけど、DirectWrite使えば、それら全部ごっそり削除して
3千行くらいに圧縮できると思うから。まぁ、他のコントロール同様、基本的なキーボード、マウス、スクロールメッセージの
処理とかは他と一緒でやらなきゃいけんけど、
後、Highlighterをプラグインできるようにするならそこらへも必要だけど。
DirectWriteは最強だよ。XPで使えんけど・・
668デフォルトの名無しさん:2012/05/23(水) 13:55:00.73
今のデルファイ用コンポーネントでホンダさんエディタくらい、インパクトのあるものって何?
669デフォルトの名無しさん:2012/05/23(水) 14:40:41.78
エディタはビュジュアルコンポーネントだし、それだけで、インパクトあるからね・・
他の分野のコンポと比較しするのはちょっとあれだけど。俺は信頼性に重きおいてるから、
外部コンポ使うのはよほどの事ないと。HTTPなら、Indyより、WinInet,WinHTTPとかちょっと
したマルチフォーマットのテキスト表示するならWindowsのRichEditや今回のDirectWrite使うし。
外部コンポ探すより最初はWinAPIの方優先するからよくわからんということで
他の人頼む。スクリプト絡みで、作者がずっと頑張ってるDWScriptなら使ってもいいかなと。
670デフォルトの名無しさん:2012/05/23(水) 14:53:21.05
後、Delphiで今のところ、クロスプラットフォームのアプリ作る予定なんて全くないから
ブラウザ埋め込む場合は標準のTWebBrowserでいいけど、Delphi Chromium Embedded
の作者は応援してる。
671デフォルトの名無しさん:2012/05/23(水) 16:18:47.78
>>667
3桁ぐらいもらえればいつでも作るよ
672デフォルトの名無しさん:2012/05/23(水) 16:36:49.51
>>671
頼む、お願いします。
673デフォルトの名無しさん:2012/05/23(水) 17:16:40.04
>>672
じゃあtorcoloor467あっとyahoo.co.jpまで連絡を。
674デフォルトの名無しさん:2012/05/23(水) 17:56:18.14
3桁なら、どっか自販機あされば、100円くらいはみつかるだろうから、
それでお願い。
675デフォルトの名無しさん:2012/05/23(水) 19:04:03.51
>>673
999円って言われるぞw
676デフォルトの名無しさん:2012/05/23(水) 22:17:25.58
馬鹿野郎、3桁つったら001円だよ
677デフォルトの名無しさん:2012/05/23(水) 22:29:59.54
111(2進)円で
678デフォルトの名無しさん:2012/05/23(水) 23:09:07.47
小数点以下3桁かもしれない
679デフォルトの名無しさん:2012/05/23(水) 23:17:12.00
Delphiで使えるx86とx64用のディスアセンブルライブラリってありますか?
680デフォルトの名無しさん:2012/05/23(水) 23:21:35.66
俺のおしっこ100ccで。
681デフォルトの名無しさん:2012/05/24(木) 09:34:43.24
>>673
作れるなら金とっていいからぜひ作って公開し下さい。
682デフォルトの名無しさん:2012/05/24(木) 12:57:31.47
>>673じゃないけど有料ライブラリとして公開した場合リアルな話いくらまで出す?
683デフォルトの名無しさん:2012/05/24(木) 19:15:25.46
個人的には2500円位出しても良いかな。
たくさんの人に払ってもらうとなると、1000とかじゃなかろか。
684デフォルトの名無しさん:2012/05/24(木) 21:05:59.85
有料なら、こんな物もある。
http://www.tmssoftware.com/site/advmemo.asp
685デフォルトの名無しさん:2012/05/24(木) 21:50:45.16
>>682
ソース付きなら TEditor と同額出す
686デフォルトの名無しさん:2012/05/24(木) 22:06:12.25
>>684
昔、使ったことあるな。
これもいいよね。
687デフォルトの名無しさん:2012/05/25(金) 16:54:50.48
へぇ結構金出すもんなんだ
688デフォルトの名無しさん:2012/05/25(金) 18:29:14.31
技量がない分は金でカバー
689デフォルトの名無しさん:2012/05/25(金) 20:15:56.75
金がない分はごまかしでカバー
690デフォルトの名無しさん:2012/05/25(金) 21:26:26.11
偉い方教えてください。よろしくお願いします。

DELPHI2005を使って、SQLSERVER2000へアクセスしてきました。
このほど、SQLSERVER2008にアップしましたがDELPHI2005から
ADO(dbGO)またはODBCで可能かどうか知りたいです。

ADOだと接続テストは成功するのですが、
実際にコンポーネントを配置して、アクセスすると。
ログインのダイアログはでるのですが、ログインできませんでした。
私のミスかしれないです。
ODBCはまだ試していません。
691デフォルトの名無しさん:2012/05/26(土) 11:48:39.08
普通は接続できるぞ。
692デフォルトの名無しさん:2012/05/27(日) 22:50:12.87
訳あってDelphi5を使ってるんだけど、
ビットマップの上に重ねたビットマップを半透明表示したい。

上のbitmapのPixelFormatをpf32bitにする
Scanlineしてalphaをいじって再描画

ってのが浮かんだんだけど、このバージョンって32bitのbmpって扱えなかった筈
何か良い方法は無いかな・・・。
693デフォルトの名無しさん:2012/05/27(日) 23:30:04.59
自分でアルファ処理をするんだよ。scanline つかって。
694デフォルトの名無しさん:2012/05/28(月) 14:32:28.29
RGB値の半分だけ足せばいいんじゃないかな それで半透明っぽくなるはず
695デフォルトの名無しさん:2012/05/28(月) 14:38:30.28
>>689
ごまかせるのなら技量があるってことだぜ
696デフォルトの名無しさん:2012/05/28(月) 14:45:03.27
つかアルファチャンネルが必要な意味がわからない
2枚をただ合成すればいいんでしょ 足し算するだけだから楽勝だ

32bit BMP って R G B A の4つの情報か アルファチャンネルいらねーしw
24bitで十分いける
697デフォルトの名無しさん:2012/05/28(月) 17:37:05.38
>>692
32bitのビットマップ自体は扱えるよ。透過処理がされないだけ
半透明ってのが50:50で合成するって意味なら>>696の言う通り24bitでいけるが、
足しただけじゃなくて2で割らないといけない(単純に足すだけの方法は加算合成)
古いOSで実行しないのならWin32APIにAlphaBlendというそのままのAPIもある
こいつは計算方法がちょっと特殊だけど、半透明ぽく見せたいだけなら全然問題ない
698692:2012/05/28(月) 21:27:48.98
ありがとう。
やりたいことは、フォームに複数のビットマップが貼られてて、全部の明度を一度に下げたいんだ。
なら黒いビットマップを上からかぶせて、透明度を変えればいいんじゃねピコーンってなったんだけど、
やっぱり全部列挙してRGBをいじるか、Windows.AlphaBlendになるか。
699デフォルトの名無しさん:2012/05/28(月) 22:13:14.69
それならAlphaBlendプロパティを弄ったフォームを上から被せるだけでもいいんじゃね?
700デフォルトの名無しさん:2012/05/28(月) 22:45:23.55
>>699
TFormのAlphaBlendプロパティはDelphi6からですよ。
701デフォルトの名無しさん:2012/05/29(火) 00:24:54.56
690です。
恥ずかしいことに、プログラムのミスでした。すません。
レスをサンクスです>691
702デフォルトの名無しさん:2012/05/29(火) 01:44:25.49
>>700
そっか
なら普通にAPIでレイヤード化で
703デフォルトの名無しさん:2012/05/29(火) 17:36:59.85
ちょっと初歩的な質問で恐縮ですが


いつのまにか、デバッグ時にエラーが発生しても
デバッグ画面の対応行で止まってくれなくなりました。

どこの設定を変更すると、本来の状態に戻るんでしょうか?

よろしくお願いします。
704デフォルトの名無しさん:2012/05/29(火) 20:09:39.01
バージョンも書かずに質問とな

オプションのデバッグ関係のところに例外で停止とかなんとかいう項目があってoffに
なっているはずなのでこれをonにする、でどうよ
705703:2012/05/29(火) 20:33:53.16
>>704
済みませんでした

なんか突然"runtime error 216"が出始めて
706703:2012/05/29(火) 20:34:46.17
って、またバージョン書くのを忘れました

XEです
707デフォルトの名無しさん:2012/05/29(火) 20:59:14.60
最適化のチェックを外して、「再構築」を行う。これでデバッグモードでビルドできる
708デフォルトの名無しさん:2012/05/29(火) 22:10:20.06
>>707
ありがとうございます。

ただ、Debugの「最適化」はfalseになっています。
709デフォルトの名無しさん:2012/05/29(火) 23:29:39.74
後出し細切れいくない
ちゃんと全部まとめて書け
710デフォルトの名無しさん:2012/05/31(木) 17:34:49.19
プロジェクトのdcuが古くなって再構築されない状態になってんのかね

デバッグの位置がずれるソースmysource.pasに対応する
myproject\win32\debug\mysource.dcu(または*.dcu全部)を消してみるとか
711デフォルトの名無しさん:2012/05/31(木) 21:37:54.76
>>708
再構築に最適化は関係ないので大丈夫。
逆に変えると動作が違ってくる可能性もあるから。

>なんか突然"runtime error 216"が出始めて
ウィルスでは?
712デフォルトの名無しさん:2012/05/31(木) 21:42:59.65
"runtime error 216"で検索すると
確かにウイルス関係がヒットするな
713 ◆XcB18Bks.Y :2012/06/01(金) 00:52:35.65
今回の原因かどうか分かりませんが、
また最近のバージョンは分かりませんが
Delphiのランタイムエラー216は一般保護例外です。

ユニットファイルの初期化部(initiailzation)や終了処理部(finalization)で
まだ実体を生成していないオブジェクトのプロパティを読み書きしようとしたりすると
デフォルトの例外処理は行われず、Runtime error 216のメッセージボックスが表示されます。

もしプログラムの起動直後に起きるのならこの可能性がありますので
F7キーでトレースしていくと良いと思います。

------------------------
○おまけ Runtime error 216を起こすサンプル

メインフォームForm1を持つUnit1と以下のようなUnit2があるプロジェクトを実行すると
※のところでエラーが発生、Runtime error 216ダイアログが表示されます。

unit Unit2;

interface

implementation

uses Unit1;

initialization // ここはフォームが生成される前に呼び出される
 Form1.Left := Form1.Left + 1; // ※まだForm1 = nilなのでここで発生!
end;
714デフォルトの名無しさん:2012/06/01(金) 10:38:11.41
ヌルポってことか
715デフォルトの名無しさん:2012/06/01(金) 21:25:34.99
ナマポか
716デフォルトの名無しさん:2012/06/01(金) 23:07:30.71
Delphi7です
新規アプリでXPManをUsesしてボタン3個設置でコンパイルします
出来上がったExeをWindows7で実行し、おもむろにAltキーを押すと
フォーカスが無いボタンは消えてしまいます

誰か直し方知らない?
717デフォルトの名無しさん:2012/06/01(金) 23:37:29.68
消えたように見えるだけってことだろ 再描画せぇ
718デフォルトの名無しさん:2012/06/01(金) 23:38:51.46
ものっそい基本的なこと聞いてごめん。

Timageを配置して、
image.picture.loadfromfile('なんとかbmp')をすると、image.picture.bitmapにbmpが入る。
image.pictureがnilでなければ画像が保持されてるってことで、image.picture:=nil ってやると画像がクリアされる。

ここまで理解した後、Tbitmapをcreateして、
bitmap.loadfromfile('なんとかbmp')ってやった後、初期化しようとしてbitmap:=nilってやったら、
インスタンス自体がどっか行ってしまった。
初期化したければbitmap.assign(nil)で、画像がassignされてるかはbitmap.emptyで判定、が正解?
719デフォルトの名無しさん:2012/06/02(土) 00:09:48.21
>>717
たしかに再描画すれば出てくるんだけど、Altキー押されるたびに
フォームの全コントロール再描画するのってスマートじゃないなーと
720デフォルトの名無しさん:2012/06/02(土) 01:08:24.51
VistaAltFixUnitってのを使えばいいと聞いた事があるぞ。
721デフォルトの名無しさん:2012/06/02(土) 01:22:41.94
Vista騒動の時にさんざん見たなあw
722デフォルトの名無しさん:2012/06/02(土) 07:16:07.52
TBitmapをCreateしてから、何度も使いまわす意味がわからない Freeしときゃいいのに
nilを代入するのはただヌルポにするだけで、初期化処理をしているとは言えない
厳密に初期化したいならばCreateしなおすべきだ
723デフォルトの名無しさん:2012/06/02(土) 10:17:59.41
VistaAltFixUnitでぐぐったら色々出てきた
再描画するのは同じやったけど参考になったわ
724デフォルトの名無しさん:2012/06/02(土) 12:27:58.09
Formを doublebuffered := true すればいいってわけじゃないのか
725デフォルトの名無しさん:2012/06/02(土) 15:07:19.67
>>724
やってみたら酷いことになったじゃないか
726デフォルトの名無しさん:2012/06/02(土) 22:41:01.99
TImage.Pictureにnilを代入するとクリアされるという仕様を作った馬鹿は
>>718みたいな勘違い馬鹿を大量に生み出したことを反省すべき
727デフォルトの名無しさん:2012/06/03(日) 15:24:56.41
こんなこと書いてる人がいるんだけど、本当?

この検索で出てくる、「天 徳 院」とかいう人のブログ記事。
http://www.google.co.jp/search?q=Delphi+%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88+%E3%83%96%E3%83%AD%E3%82%B0
728デフォルトの名無しさん:2012/06/03(日) 17:09:43.35
なわけねーだろw
729デフォルトの名無しさん:2012/06/03(日) 17:09:57.14
すみません、質問です。
C/Sで2層のWin32アプリを.NET Frameworkのアプリに変更したい場合
何か注意点ありますか? やはり最低でも3層にしないと
.NETでは、クライアントから直にDBをみにいけないんでしょうか?
環境的にはVPNやイントラも可能です

またEXEの配布はサーバー上のhttp://www.xxx.com/xxxx.exeを
直に実行しいつでも最新が実行されるように考えています。
730デフォルトの名無しさん:2012/06/03(日) 17:22:48.12
何でそれをこのスレで聞こうと思ったのか、私気になります!
731デフォルトの名無しさん:2012/06/03(日) 18:33:44.37
>>727
PCharへのキャストは文字列が空ならnil、そうでなければ先頭文字のアドレス。
732デフォルトの名無しさん:2012/06/03(日) 18:33:59.31
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘  ! ヽ             …わかった この話はやめよう
                /イ       ', l  ’
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l            ハイ!! やめやめ
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
733デフォルトの名無しさん:2012/06/03(日) 19:03:08.41
>>728>>731
ですよね。
DelphiのStringは賢いのでヌル文字入りになってるから、余計なことはしなくて良いはず、
しかしこの人はStringから作ったポインタの有効期間について思い違いをしたので迷走…
そういうことでしょうかね?
734デフォルトの名無しさん:2012/06/03(日) 20:06:07.05
何でそれをこのスレで聞こうと思ったのか、私気になります! > 733

つか、本人に聞いたら?
735デフォルトの名無しさん:2012/06/03(日) 20:33:45.59
>>731,733
本当にそんな初心者レベルの話なのか?
文字の最後に2バイトヌルを追加しないと
相手が正しく文字を判断してくれないケースとか考えると
例えば、64bitOSとかUTF-8のBOMの影響とか?

まっ理由が書いてないから、なんともいえないけど。
736デフォルトの名無しさん:2012/06/03(日) 20:36:58.70
間違えた
>相手が正しく文字を判断してくれないケースとか考えると
>PCharが正しく文字を判断してくれないケースとか考えると
737デフォルトの名無しさん:2012/06/03(日) 20:40:18.46
>>735,736
また間違えた。
よく見たら別に文字列に#0#0を加えているわけじゃなかった。
738デフォルトの名無しさん:2012/06/03(日) 21:13:21.68
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘  ! ヽ             
                /イ       ', l  ’
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l           
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
739デフォルトの名無しさん:2012/06/03(日) 21:20:26.71
>>734
すでに聞いているのですか、返答がないのです。

>>738
あの、何か言ってください。
740デフォルトの名無しさん:2012/06/03(日) 22:13:55.01
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘  ! ヽ             いないいない…
                /イ       ', l  ’
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l           バァ!
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
741デフォルトの名無しさん:2012/06/03(日) 22:15:43.70
>>735
ダブルヌルターミネートが必要なShell系のAPIとか?
742デフォルトの名無しさん:2012/06/04(月) 02:31:21.22
>>731
違うんじゃ?
文字列Sが空の時、
PChar(S)は空文字列へのポインタ(#0へのポインタ),
Pointer(S)はnil.
というか、型システムとしてstring型はnilと空文字列区別してほしかった・・
743デフォルトの名無しさん:2012/06/04(月) 02:42:53.37
と、俺はWinAPIに渡すとき、文字列が空の時を踏まえて
PCharにキャストすべきかPointerにキャストすべきか
使い分けてるけど。
744 ◆XcB18Bks.Y :2012/06/04(月) 03:50:51.27
>>742
なるほど、文字列(長い文字列)がカラの時は変数の中身はnilポインターになるが
PCharでキャストするとわざわざカラのブロックを作って
そこを指すようになっているのですね。
745デフォルトの名無しさん:2012/06/04(月) 12:44:04.26
まぁ、そんな感じ。実際はソース見ると、グローバル定数の#0へのポインタが返されるようになってけど。
string型はnilと空文字列区別して2012 Surveyであった、.NETと同じようなRooted Type Systemお願い・・
746デフォルトの名無しさん:2012/06/04(月) 12:53:11.13
どちらにせよ「○○に渡す場合は」等の限定が無く、
一般的な話として書かれている時点で完全に間違い
747デフォルトの名無しさん:2012/06/04(月) 22:12:42.34
文字列型なのにnil値と空文字列を区別する言語の方が変。
748デフォルトの名無しさん:2012/06/04(月) 22:23:54.85
ポインタの話だが?
749デフォルトの名無しさん:2012/06/04(月) 22:35:34.68
みんな普通にスルーしてたとこみると、勘違いしてたっぽさそうだけど。
文字列が空の時PCharへのキャストがnilになると勘違いして、実際違うのを知った時は
おいら小便ちびったけどね。
750デフォルトの名無しさん:2012/06/04(月) 22:58:22.08
値型/参照型とNull許容性はhejiも別にすべきだったといってるらしいが、
ttp://ufcpp.wordpress.com/2012/04/10/null%E9%9D%9E%E8%A8%B1%E5%AE%B9/
まぁ、ここまではやらんでもいいが。
751デフォルトの名無しさん:2012/06/04(月) 23:04:17.50
GCネタといい10年遅れの議論が好きだねここw
752デフォルトの名無しさん:2012/06/05(火) 00:00:21.75
GCといや、WinRTもC++/CXで参照カウントによる自動解放が標準で実装されるね。
ttp://msdn.microsoft.com/en-us/library/windows/apps/hh699870%28v=vs.110%29.aspx
非同期前提の時代はそういう流れ。
753デフォルトの名無しさん:2012/06/05(火) 04:08:54.08
Boost の Smart pointer が実装されたの何年前だとおもってる? > 752

754デフォルトの名無しさん:2012/06/05(火) 08:07:36.31
>>752
イラネ
755デフォルトの名無しさん:2012/06/05(火) 10:59:16.10
ARC は所詮 GC ではないので、Free を呼ばなくてもよい。くらいのものだぞ
xocde 並みにコンパイラ/IDE がソースコードを変換してくれるなら良いけど
756デフォルトの名無しさん:2012/06/05(火) 11:19:40.95
くだすれDelphi(超初心者用)その54
757デフォルトの名無しさん:2012/06/05(火) 11:25:30.13
初心者向けの機能は初心者向けの言語に任せとけばよい。
何でもかんでも取り込もうとするのは間違い。
758デフォルトの名無しさん:2012/06/05(火) 13:31:06.09
と初心者が申しております
759デフォルトの名無しさん:2012/06/05(火) 15:16:12.40
いつもの「標準ライブラリ以外使わない」君、乙
760デフォルトの名無しさん:2012/06/05(火) 22:59:41.82
本物は標準ライブラリの代替物から自作
761デフォルトの名無しさん:2012/06/05(火) 23:10:35.55
かっこいい
762デフォルトの名無しさん:2012/06/23(土) 22:42:13.42
C言語のプログラムをDelphiに移植しようとしています。

long s0[1024], s1[1024], s2[1024], s3[1024];
static long *sa[4] = {s0, s1, s2, s3};

このように宣言されていて、sa[i][j]=〜; とか s0〜s3として使われています。
Delphiだと2次元配列にして、変数名を s0→sa[0] に置換するしかないでしょうか?


C言語の知識がほぼゼロなので、演算子とか確認しながら手探り状態で進めています。

不思議に思ったのは、定数も変数もただ static long〜 と書いてあるだけなのですが、
なぜconstしないのでしょうか?
Delphiと違って、初期値の設定に制限が無いため、わざわざconstする文化が薄いから?
それとも、当該のプログラムが制作されたのが1990年代初頭だからでしょうか??
763デフォルトの名無しさん:2012/06/24(日) 01:28:10.93
まずはやったら?
そんなこと聞いて何の意味があるの?
764デフォルトの名無しさん:2012/06/24(日) 01:47:18.03
大半の人は、実は釣り質問。
単に馬鹿な回答者がいればそれでいい。
765デフォルトの名無しさん:2012/06/24(日) 02:03:57.48
Delphiとは全く関係ない質問だな
766デフォルトの名無しさん:2012/06/24(日) 04:09:27.36
答える気がない人は書き込まないでください
767デフォルトの名無しさん:2012/06/24(日) 09:49:44.81
断る
768デフォルトの名無しさん:2012/06/24(日) 09:51:16.96
>>766
お前が教えてやれ
769デフォルトの名無しさん:2012/06/24(日) 12:32:46.29
:type
: Long = LongInt;
: TLongArray1024 = array [0..1023] of Long;
: PLongArray1024 = ^TLongArray1024;
:var
: s0, s1, s2, s3: TLongArray1024;
: sa: array[0..3] of PLongArray1024 = ( @s0, @s1, @s2, @s3 );
:var
: I, J: Integer;
:begin
: for I := Low(sa) to High(sa) do
: for J := Low(sa) to High(sa) do
: sa[I][J] := 0;
:end.
770デフォルトの名無しさん:2012/06/24(日) 12:58:42.33
>>769
質問には答えていただけないんでしょうか?
771デフォルトの名無しさん:2012/06/24(日) 13:25:47.41
>>762
その意味について論文でも書くの?
772デフォルトの名無しさん:2012/06/24(日) 13:31:43.50
大半の人は、実は釣り質問。
単に馬鹿な回答者がいればそれでいい。
773デフォルトの名無しさん:2012/06/24(日) 19:02:09.77
よろしくお願いします。
TCalendarで複数のクリックした日の色を変えるにはどのようにしたらいいのでしょうか?
normal色を青などに変えたいです。

delphi7のpersonal、windows7を使用。
774デフォルトの名無しさん:2012/06/24(日) 23:26:40.31
Gridなので、派生クラスを作ってDrawCellメソッドをoverrideする
775デフォルトの名無しさん:2012/06/26(火) 10:43:12.92
大半の人は、実は釣り回答。
単に馬鹿な質問者がいればそれでいい。
776デフォルトの名無しさん:2012/06/30(土) 23:45:17.78
delphi6、win7の環境ですが、コンポーネントが古臭く見えます。
実害はないのですが改善できないものですか?
777デフォルトの名無しさん:2012/07/01(日) 05:26:29.01
眼科に行ったら
778デフォルトの名無しさん:2012/07/01(日) 06:00:49.73
779デフォルトの名無しさん:2012/07/01(日) 11:01:08.23
>>778
ありがとうございました
試してみます
780デフォルトの名無しさん:2012/07/01(日) 11:28:21.24
781デフォルトの名無しさん:2012/07/01(日) 22:45:47.77
大半の人は、実は釣り回答。
単に馬鹿な質問者がいればそれでいい。
782デフォルトの名無しさん:2012/07/02(月) 01:07:50.60
TComboBoxの基本的な使い方が分かりません。
実行中、Edit部分に文字列を入力すれば、特に何もしなくてもItemsに追加されるのかと
思ってましたが、違うようです。
どのようにしたら追加できるでしょうか?
783デフォルトの名無しさん:2012/07/02(月) 09:35:28.49
>>782
AddItem
Items.Add
Items.AddObject
Items.AddStrings
Items.Append
Items.Assign
Items.Insert
Items.InsertObject
Items.LoadFromFile
Items.LoadFromStream
Items.SetText
Items.SetTextStr
Items.CommaText
Items.DelimitedText
Items.Text

好きなのを使いたまえ
784デフォルトの名無しさん:2012/07/02(月) 18:19:21.28
>>782
ComboBox内に入力した文字列をそのままItemsに追加したいのであれば

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
 // Enterキーで追加する場合
 if Ord(Key)=VK_RETURN then ComboBox1.Items.Add(ComboBox1.Text);
end;
785782:2012/07/02(月) 20:06:39.17
釣りでした
786デフォルトの名無しさん:2012/07/03(火) 07:38:17.15
>>783
列挙していただき、ありがとうございます。
個々のメソッドやプロパティは理解できるのですが、知りたいことは、入力したものを
とりあえずItemsに保管しておいてくれるようにするにはどうすればよいかということなんです。
787デフォルトの名無しさん:2012/07/03(火) 07:39:49.01
>>784
できました。ありがとうございます!
そのままItemsに追加だと同じものがたくさん入ってしまうので、それは防止しました。

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
var
  T: String;
begin
  if Ord(Key)<>VK_RETURN then Exit;      // Enterキー以外なら何もしないで帰る

  T:=Trim(ComboBox1.Text);                   // 空白除去
  if T='' then Exit;                                 // 空文字なら何もしないで帰る

  if ComboBox1.Items.IndexOf(T)=-1 then // もしComboBox内に存在しなければ
    ComboBox1.Items.Append(T);             // 追加する
end;


TComboBox自体にこういう機能があるはずで、きっと何か見落としているんじゃないかと疑って
質問させてもらいましたが、結局自分でやる必要があったんですね。

こういう勘違いをするのは自分の考え方がおかしいのかな、とも思ったんですが…
D6ヘルプの「TComboBox の使い方」をよく見ると、このような記述がありました。
>CLX では,コンボボックスの編集フィールドにテキストを入力して〔Enter〕を押すと,
>ドロップダウンリストに項目を追加できます(VCL のコンボボックスではできません)。

これに早く気付くべきでした。
788デフォルトの名無しさん:2012/07/03(火) 09:14:48.51
大半の人は、実は釣り回答。
単に馬鹿な質問者がいればそれでいい。
789デフォルトの名無しさん:2012/07/03(火) 10:42:17.05
XE2でDataModuleにActionList置こうとすると
コンポーネントパレットから消えちゃうんだけどどうやって置けばいいですか?

ビジュアルコンポーネントのタブが消えるのはいいとして
System, Dialogsといった非ビジュアルコンポーネントまで消えてしまう…
790デフォルトの名無しさん:2012/07/03(火) 10:48:57.44
TDataModuleのClassGroupプロパティをVcl.Controls.TControlに変えてF12を2回押しなさい
791デフォルトの名無しさん:2012/07/03(火) 15:50:58.72
うまくいきました。ありがとうございます。
792784:2012/07/04(水) 19:06:39.21
>>787
>if ComboBox1.Items.IndexOf(T)=-1 then // もしComboBox内に存在しなければ
これ(IndexOf)知らなかったw便利ですね
今までItemsやらLinesやら全部時前でCount分検索してた><
793776:2012/07/04(水) 23:57:30.22
>>780の方法は反映されないコンポーネントもあってちょっと残念でした
結局Delphi7で難なく解決しました

せっかくなのでいろいろなバージョンで試してみたけど、
同じソースでもバージョンを上げるごとに、作成されるファイルサイズが大きくなっていくので
困っています
794デフォルトの名無しさん:2012/07/05(木) 01:11:39.91
ということは、D6以前でXPテーマを適用させた場合に出る表示の不都合は、
D7ならすっかり直ってるのね。
XPに対応してないD6と対応してるD7だから、当たり前なのか。

>>793
何か特別にファイルサイズを小さくしたい事情でもあるの?
UPXとか結構みんな使ってるよね。
私は使ったことないけど。
795デフォルトの名無しさん:2012/07/05(木) 02:04:12.68
>>793
そんなので困ってるって…
ファイルサイズが大きくなると具体的にどう困るの??
796デフォルトの名無しさん:2012/07/05(木) 02:33:15.40
>>794
D6はThemeManagerを使えばほぼ問題ナッシング
D7はそれをVCLに組み込んだだけ
797デフォルトの名無しさん:2012/07/05(木) 08:27:54.16
>>795
メモリ占有量が増える
798デフォルトの名無しさん:2012/07/05(木) 18:45:36.55
>>795
技術力を疑う
799デフォルトの名無しさん:2012/07/05(木) 19:38:06.67
そんなので技術力を疑う奴は頭の弱い奴だけだから大丈夫
800デフォルトの名無しさん:2012/07/05(木) 19:46:16.35
昔からメモリ(ファイルサイズ)と速度はトレードオフの関係にあるけど、
最近はメモリもディスクスペースも余り気味だから、
速度を優先してメモリやサイズが増えるケースの方がほとんどだよ。
そもそもバージョンアップしたら普通は機能が増加してサイズが増えるのは当たり前だしね。
ファイルサイズを減らすだけの最適化しかしてない新しい環境をわざわざ買う人なんていないし。

だからもしメモリやサイズが増えただけで技術力を疑う人がいたら、
その人の技術センスは10年以上前で止まってるんだろうね。そんな人はいないと思うけど。
あ、いたかw > 798
801デフォルトの名無しさん:2012/07/05(木) 20:02:43.29
ちょっとしたアプリ作って、EXEサイズが100MBいくなら死ぬけど、10MBぐらいまでなら
全く気にならん。
802デフォルトの名無しさん:2012/07/05(木) 20:17:06.75
最近のDelphiでメモリリークってどうやって検出するの?
メモリマネージャの性能がよくなったからか、解放済みの領域アクセスしてもすぐにエラー吐かなくて
どこがエラーか分からん
803デフォルトの名無しさん:2012/07/05(木) 20:17:37.68
間違えたメモリリークじゃなくてアクセスバイオレーション
804デフォルトの名無しさん:2012/07/05(木) 20:20:25.88
>>800
それをいかに抑えるかって話なんだけど・・・
805803:2012/07/05(木) 20:33:26.52
俺バカだった。忘れてね
806804:2012/07/06(金) 00:31:43.48
俺もバカだった。忘れてね…
807806:2012/07/06(金) 05:29:54.46
俺はホモ
808デフォルトの名無しさん:2012/07/06(金) 09:37:14.30
だが firefox のメモリリークは今だに酷い
技術力を疑わざるを得ない
809808:2012/07/06(金) 09:55:08.85
俺もバカだった。忘れてね…
810デフォルトの名無しさん:2012/07/06(金) 15:26:35.93
玄人の俺が質問すっけど、Windowsのヘッダとか移植するとき、おまえら
どういうルールで移植してる?varつかうかoutパラメータ使うかそれともポインタ型使うかとか。
ポインタ型はいちいちtypeで宣言しなきゃいけんのがうざいし・・死ねよ。
Delphiの前方宣言も何げに制限が厳しすぎてウンコなんだよなぁ・・
811デフォルトの名無しさん:2012/07/06(金) 15:29:13.60
DelphiってPASCALだろ
PASCALを改善したのがCだからな
Cにかなう訳ないよ
812デフォルトの名無しさん:2012/07/06(金) 15:48:46.98
やっぱ、深く考えないって事が正解か。毎回ヘッダ移植するたびに
悩むんだよな。気にしないということで、移植の続きでもやるか。ありがとう。
813デフォルトの名無しさん:2012/07/06(金) 16:09:37.21
NULL(nil)を渡すかどうかで決めてるな。あとは手抜きでJEDIのをもらってくる。
814デフォルトの名無しさん:2012/07/06(金) 17:03:01.21
JEDIになかったらとりあえず移植してる。
>>813
それも悩むよね。前まではnil渡しても問答無用でout,varで宣言して、nil渡す時、
PMyRecord(nil)^とかで無理やり渡す方針でいたけど、今回はnil渡せるメソッドが
多くて、再び悩みだした。
815デフォルトの名無しさん:2012/07/06(金) 17:26:43.70
そういうときは両方とも定義するという手も。
816デフォルトの名無しさん:2012/07/07(土) 10:07:14.93
移植する時は手間だけど、nilが渡せるのはvarとポインタ版両方作って
ポインタの方はnilをデフォルト引数にしておくと使う時は楽だな
RTLでもそうやって書いてある関数あるし
817デフォルトの名無しさん:2012/07/07(土) 10:08:33.26
あとそういうのを用意しておくと、nil渡してもいいパラメータだったかどうか確認する手間が省けるし
818デフォルトの名無しさん:2012/07/08(日) 16:41:25.45
移植だいたい終わったけど、移植前のCソースが3万行近くあって、移植後が1万数千行だから、
両方用意するのメンドイな。まぁ、もうちょっとどうするか考えるわ。
819デフォルトの名無しさん:2012/07/08(日) 18:16:16.59
多くて面倒な時は一方だけ書いておいて、
その時に対象の引数の後ろ等に決まったコメントを埋め込んで
あとでそれを読み取って一括変換かけてるな
自分で形式さえ決めておけば、専用ツールこさえなくてもその辺のテキストエディタの正規表現でいけるし
820デフォルトの名無しさん:2012/07/09(月) 10:13:58.08
Interfaceの定義だと両方書いておけないんだよなあ
ぜんぶせっせこnil渡せるかチェックしてるわ
821デフォルトの名無しさん:2012/07/09(月) 16:24:55.49
GUIDが同じでインターフェース名を変えて定義すればいいだけじゃ?
822デフォルトの名無しさん:2012/07/09(月) 22:13:50.03
質問です。よろしくお願い致します。
文字列'abc123'をasciiで数値に直すことはできたのですが、
この逆ができません。
どのようにしたら数値を元の文字列に直せるのでしょうか?

delphi7使用です。
823デフォルトの名無しさん:2012/07/09(月) 22:18:50.93
824デフォルトの名無しさん:2012/07/11(水) 13:54:54.98
D7で作ったFirebirdDBアプリはwin8で動きますか
825デフォルトの名無しさん:2012/07/11(水) 17:37:54.77
何をもって動くとするかが分からないので、実際にWin8上で試してください
826デフォルトの名無しさん:2012/07/18(水) 14:21:38.77
継承したフォームで、派生元でのプロパティ値(ClientHeightとか)を取得する方法はありますか?
827デフォルトの名無しさん:2012/07/18(水) 19:50:24.93
はぁぁぁぁぁ?? 継承したプロパティは全部見れるだろ じゃあなんのための継承だ?
オブジェクト指向をイチから勉強し直せ
828デフォルトの名無しさん:2012/07/18(水) 22:45:18.40
TForm1からTForm2を派生しておいて、それぞれ違うClientHeightを指定したときに
TForm2でTForm1に指定してあったClientHeightを知る方法があるか、って意味だろ。
継承元(TForm1)のLoadedをoverrideして値を取っておくくらいかなぁ。
829デフォルトの名無しさん:2012/07/19(木) 00:05:14.41
じゃあ最初からそう書いたらいいんじゃないですかぁ???
830826:2012/07/19(木) 00:46:40.40
派生元での値って書いてあるんですが…
>>828
Loadedだと、inherited実行前とかで見てみましたが、新しい値しか取れませんでした。
831デフォルトの名無しさん:2012/07/19(木) 02:46:02.21
同名のプロパティやらを追加したってことなら T親クラス(Self).Hoge で取れなかったっけ
>>827はバカだが>>826も分かりにくい
832デフォルトの名無しさん:2012/07/19(木) 07:40:57.12
>>826,828,831
アホ、>>827の言うようにOOを一から勉強しろ。
833826:2012/07/19(木) 09:02:24.55
>>831
828氏の指摘の通りです。
オブジェクトインスペクタでの「敬称元の値に戻す」のように、元の値を取得したいんです。
834826:2012/07/19(木) 09:31:37.40
自己解決しました。
835826:2012/07/19(木) 12:34:52.53
自己解決したんだ。よかったね。
アホは>>832だったというわけだ。
836デフォルトの名無しさん:2012/07/19(木) 12:41:02.74
継承した値とか言ってるけど、TForm1に指定してあったClientHeightってことはオブジェクトインスペクタ等で指定したもの(dfmの値)だろ?
あれはOO的に言えばクラスの初期値じゃなくてインスタンスに代入される値だから、継承はそこまで関係ないと思うんだが
OOの仕組みが分かってないというより、VCLの仕組みが分かってないと言った方が正しい
837デフォルトの名無しさん:2012/07/19(木) 13:11:39.28
>>836
じゃあ親クラスのClientHeightってどうやって知るのかコード書いてよ。
838828:2012/07/19(木) 13:37:09.34
ちょっろっと追ってみたけど、一般論的にはうまくやる方法はない。
ユニットローカルな関数とかその内部関数とかで処理されているので。
あとはそのプロパティのSetメソッドをoverrideして書き込みを捕捉する、という手は考えられるかなぁ。
839デフォルトの名無しさん:2012/07/19(木) 17:56:01.41
>>837
リソースからTForm1のClientHeightにセットされている値を読み出せば良い
840826:2012/07/19(木) 17:59:28.03
まだできてない人いるんですね(笑)
841デフォルトの名無しさん:2012/07/19(木) 19:19:56.02
             __、、 , ___
             ,≠=ミYムェ、`
             ,r'ァ'x='く彡'ハミ}
           / '//,イl!lハ.ヽノハヘ}
             i|イik!川l|!|| !|〃,!`l!  夏だねぇ・・・・
          }i!l't、  _ヽ!l!|'ィi |
          |liヽ '._ `’川<ヽj
.            |!|!  ー 1イ!リ, ニヽ
                  /:'/イ:::::.:. :.:ヽ
                j:l:.i:.:l:j:::::.:. :.:}ハ,rァ-、
.        _    ,∠ン‐、:.〉:::::.:, :.:.i:_;マハ/
      , ‐ ´ ,、`ア´__{:.:. :.:.:\::::{: 〈:.l/〉心、
    r,iヒ.ィf´ Y .ィ´   ̄T:ー-: ニヽ_:.:!./. V 〉}
      l! `   〈,リ'!   丶|:、:.. : :.`ニ_:.:!-イl下ヽ
   `、ッ|,hィ /l!: 丶.   |:.:ヽ:..:_:ィ:/.:.:ノ:::Yヽ 〉
  ”_'En,i:.l! : :i::.::\ |:.:;:i:.:` ̄::.::/:::::.:.i ̄
   ,*'jlゞ` |:ll: : :l::.::::i:.:|::.i:.|:l:.:.:.:,∠_:::::.:.:ノ
.         |:ll: : :.l:;r' ¬__,rL: ィ ヽヽ ̄
         ヽ-- '        _〉 ; ヽ}
                  ,rf,‐,-ュ-イ」
                ゞ== " ̄
842デフォルトの名無しさん:2012/07/19(木) 19:28:15.43
>>834,835
アホすぎる、自作自演がばれているw
843デフォルトの名無しさん:2012/07/29(日) 12:48:28.53
HTML+JavaScriptでよく半透明のDIVを画面全体に広げて、
その上に別の要素を置くことでモーダルダイアログ的な操作を実現していますが、
Delphiで似たようなこと(他のコントロールを半透明のコントロールで覆う)はできますか?
844デフォルトの名無しさん:2012/07/29(日) 13:13:21.38
できません。
845デフォルトの名無しさん:2012/07/29(日) 13:29:21.10
alphaを128とかにした真っ黒フォームを表示して、さらにその上にフォーム
846デフォルトの名無しさん:2012/07/29(日) 17:18:45.35
そのモーダルダイアログ風のインターフェース嫌い
847デフォルトの名無しさん:2012/07/29(日) 23:31:45.57
質問に回答ではなく好き嫌いで返す頭の湧いた人がいると聞いて
848デフォルトの名無しさん:2012/07/30(月) 08:11:18.60
845で十分だろw
849デフォルトの名無しさん:2012/07/31(火) 11:32:25.65
誰も十分じゃないとは言ってないけど
850デフォルトの名無しさん:2012/07/31(火) 14:32:55.99
Delphi XE starterで勉強し始めたものですが
ちょっと教えてください。

訳あってプロジェクトを保存したフォルダを
リネームしたいんですが、単にリネームする
だけじゃダメですよね。

プロジェクトの一部の設定ファイルに絶対パスが
書き込まれてるみたいですが、リネームした後、
どうすれば、新しいフォルダでDelphiの開発を継続できますか?
851デフォルトの名無しさん:2012/07/31(火) 18:16:46.71
>>850
できません。
852デフォルトの名無しさん:2012/07/31(火) 19:02:24.61
>>850
*.localと*.identcacheを消せばそれ以外は問題ないと思うが。モデリングとかは別だろうけど。
853デフォルトの名無しさん:2012/07/31(火) 20:38:45.36
>>852
ありがとうございます。
試してみます。

サンプルなんかにプロジェクト単位のがあるから
可能だと思っていたんですが、何を消していいのか
分からなくて...
854デフォルトの名無しさん:2012/08/01(水) 13:33:20.05
主に設定ファイル用の、テキストエディタでも手書きしやすい
listとhashの複合データ構造のフォーマットで何か良さ気なのってないですか。
今のところJSON,YAML,luaのテーブルコンストラクタあたりを候補に考えているんですが。
855デフォルトの名無しさん:2012/08/01(水) 13:43:47.12
じゃあその中から用途にあったものを選べばいいんじゃね?
856デフォルトの名無しさん:2012/08/01(水) 16:14:25.32
YAML
857デフォルトの名無しさん:2012/08/01(水) 20:26:45.25
YMCA
858デフォルトの名無しさん:2012/08/01(水) 20:31:40.06
YAMEL
859デフォルトの名無しさん:2012/08/01(水) 20:33:39.34
                                 ,.へ
  ___                             ム  i
 「 ヒ_i〉                            ゝ 〈
 ト ノ                           iニ(()
 i  {              ____           |  ヽ
 i  i           /__,  , ‐-\           i   }
 |   i         /(●)   ( ● )\       {、  λ
 ト−┤.      /    (__人__)    \    ,ノ  ̄ ,!
 i   ゝ、_     |     ´ ̄`       | ,. '´ハ   ,!
. ヽ、    `` 、,__\              /" \  ヽ/
   \ノ ノ   ハ ̄r/:::r―--―/::7   ノ    /
       ヽ.      ヽ::〈; . '::. :' |::/   /   ,. "
        `ー 、    \ヽ::. ;:::|/     r'"
     / ̄二二二二二二二二二二二二二二二二ヽ
     | 答 |     YAMEL        │|
     \_二二二二二二二二二二二二二二二二ノ
860デフォルトの名無しさん:2012/08/01(水) 20:34:18.39
>>210
                                             ,r'^''=ァ-
                                        , -、  , -''´_,,r ''"
                      _______.. 、、-ァr|   i´_ ,r'_´__ _ _
                               ̄¨``…=''|-─ヒ!--−… '' "゛´
            il「~lii                        r亠、  |
            ''rへ,、                        |・._    |
 __.. 、、---‐─…!  ├^ー‐_: =====━…         , -| `´   |
  ̄  ̄ ̄  ̄二ニ! ̄ |`¨ ̄                 _,. -1  |¨¨i   |        _
            | 。  ⌒L、         _ , 、-_''´‐''" _,ゝ._|    /7        / `l
          | rz─=,ニ=-─===z二 ̄ _< _,. - ''"   _」  = 「´        /  .|
   .        | ( ' ̄//  ̄`l¨`i  ``T'F ̄    ̄丶. -<´  l凹   |        /   |
            | /´ ̄rュ`'ー┘ ° L0!_    r‐、 ` ''┴==-┴−-、__/   |
        …==i=(_  o  。 °    ロ      ̄ ‐┴-⊥., -‐- 、     _≦'、_   |
             |┘゙コド"−-、- -         _   /F、-、    )イ ̄        ̄´
           ̄ (O  ̄ ̄"``ー- 二 _    ̄  __王ニ-‐ ´ ̄´
                          r !!、 ̄ ¨¨ ̄(.○゙
                          ゙‐'-'
                      //Λ_Λ  | |
                      | |( ´Д`)// <うるせぇ、オスプレイぶつけんぞ
                      \      |
861デフォルトの名無しさん:2012/08/03(金) 18:03:32.37
D6です。
動画合成用の素材動画データを作りたく
数値データから文字を avi ファイル(1 〜10 fps)に出力するプログラムを組みたいのです
どういう手順がベストでしょうか?

作業目的の全体像は
(1)テキストの計測文字データを時間軸で動画にして
 〜.txt(例)
 09:59:58 計測値1
 09:59:59 計測値2
 10:00:00 計測値3
 10:00:01 計測値4
  ↓出力
 〜.avi
 ┌────────┐
 │09:59:59 計測値2
 └────────┘
(2)同時間実写ビデオ映像 と 時間+数値などの(1)を合成する。← これはフリーの動画合成を探します。
862861:2012/08/03(金) 18:04:30.28
procedure TForm1.〜 (.txt は読み込んであるとして)
 Var Bmp : TBitmap;
begin
 BMP :=TBitmap.Create;

 { Bitmap の範囲を決めて文字情報を描画
 { avi データに Bitmap バイナリを書き足す
 { 繰り返し

 BMP.Free;
end;

このような流れですか?
863デフォルトの名無しさん:2012/08/03(金) 18:36:41.16
864デフォルトの名無しさん:2012/08/03(金) 21:49:33.04
>>861-862
聞く必要あるんですか、それ?
865デフォルトの名無しさん:2012/08/03(金) 22:02:21.50
866861:2012/08/04(土) 17:48:22.23
>>865
テキスト加工出力の方が楽なので、ソレを調べてみます。
ありがとう
他のツールや方法があればご指摘ください。
867デフォルトの名無しさん:2012/08/19(日) 21:01:01.31
868デフォルトの名無しさん:2012/08/22(水) 03:44:59.63
オートパイロット・自動操作ツールを作っています
対象ウィンドウにWM_LBUTTONDOWN/UPを送ることでクリックの再現には成功したのですが
その際に、そのウィンドウがアクティブになってしまい、フォーカスが奪われます。
フォーカスさせないでクリックさせることは可能ですか?

フォアグラウンドにしない方法というのはググったら見つかって
Get/SetForegroundWindowで直前のウィンドウを呼び戻したり
hPMHandle := FindWindow(null, PChar('Program Manager')); SetParent(hTargetHandle,hPMHandle);
というようにProgram Managerの養子にするという方法で実現できました。

が、フォーカスは相変わらず奪われます。特に文字入力中にはにゅうりょくがちゅ
うだんされこのようになります。
869868:2012/08/22(水) 03:57:03.46
すみません。自己解決したかもしれません。(たまたま今うまくいっているだけかも)
>>868の非フォアグラウンド化とあわせて
Get/SetWindowLongで拡張スタイルのWS_EX_NOACTIVATEを追加指定してやるとうまく?いきます。
それと
fore := GetForegroundWindow();
SendMessage(hoge);
SetForegroundWindow(fore);
SetActiveWindow(fore); <- New!
するといいかも。とりあえず思いつく限りいろいろやったらうまく動いたっぽいです。
 □←明日になると(なぜか)動かなくなるスイッチ

どれがキモ、無駄か判明してないけど、もうねるぽ…
870デフォルトの名無しさん:2012/08/22(水) 05:16:44.76
ここは ぼくの にっきちょう です
871デフォルトの名無しさん:2012/08/22(水) 07:44:50.86
キモ、い。 >870
872デフォルトの名無しさん:2012/08/22(水) 10:06:14.40
ここ は ぼく の にっきちょう です。
873デフォルトの名無しさん:2012/08/24(金) 22:07:45.05
D4でのフォームの継承について教えてください。

あるフォーム(このフォーム自体も多重継承しています)を継承して
新しくフォームを作ろうとしているのですが、
この継承元フォームのコンポーネントを継承先フォーム設計時に
表示するにはどうすれば良いのでしょう。

実行時はコンポが表示されますが、設計時には表示されないので
レイアウトが決めにくく悩んでいます。

<やってみたこと>
継承元のdfmがあるので、それを流用すれば何とかなるのではと
思ってdfmの先頭行を
inherited oldForm:ToldForm → inherited newForm:TnewForm
のように書き換えて新規フォームのdfmと入れ替えてみたのですが
フォーム読み込み中のエラー(中略)読み込み違反がおきました 
とメッセージが出て上手くいきませんでした。

874デフォルトの名無しさん:2012/08/24(金) 22:10:31.88
>>873
 _i^i__i^i_                  i^i ._i^i_ __, -―- 、___
 |*||*| ∩___∩    i^i _i^i_  | | |@ll|(_/,,,,   ,,,,   ヽ_)  山で出会った時は
 |≡||≡|| ノ       ヽ  ([])|;□;|.(≡)|_| |●  ●   |    とりあえず「こんにちわ」が基本だよな
 . 二二/       ● |二二( (二二二二 彡(_●_ )   ミ   
     |          ミ    ) )       / ` ''∪''  / ヽ
    彡、      _ノ Gノ'フ=  ___  / /i  ` ー '"  iヽ |
     /        ヽ / /     | ! / / |       | | .l.
 ..──|ヽ         ヽ/─==i─Y-(_ノ──i二i───(⌒)
 ___ヽ       /ヽノ   └-┘ ┴     ..└┘    . ̄
      | ___ i ̄ そうだよな。 いきなり銃向けられるって、どこのスラム街だよって話だよな
875デフォルトの名無しさん:2012/08/24(金) 23:58:31.70
>>873
D4より新しいバージョンを使って下さい
876873:2012/08/25(土) 07:36:12.38
>>875
ありがとうございます。
個人的にももっと新しいバージョンを使いたいのですが
業務関係でD4しか使用出来ない状況です。
D4では無理なのでしょうか。
877デフォルトの名無しさん:2012/08/25(土) 09:52:14.97
>>873
1.継承元フォーム上で右クリックして「リポジトリに追加」を選択
2.「リポジトリに追加」ダイアログで「タイトル」に「Hoge」と入力して「OK」クリック
3.メニュー「ツール」「リポジトリ」を選択
4.「オブジェクトリポジトリ」ダイアログで「ページ」リストから「オブジェクトリポジトリ」を選択
5.「オブジェクト」リストから「Hoge」を「ページ」リスト内の「フォーム」へドラッグ
6.「ページ」リストから「フォーム」を選択し「Hoge」が追加されているのを確認して「OK」クリック
--- ここまでが準備 ---
1.適当なプロジェクトでメニュー「ファイル」「新規作成」を選択
2.「新規作成」ダイアログで「フォーム」タブを開く
3.「Hoge」を選択し「継承」を選択したら「OK」をクリック
878873:2012/08/25(土) 16:18:44.69
>>877
週明けに記載の通り実行してみます。
詳細な手順まで書いていただいて
本当にありがとうございます。
879874:2012/08/25(土) 22:14:43.48
いえいえ、どういたしまして
880デフォルトの名無しさん:2012/09/13(木) 08:41:46.15
881デフォルトの名無しさん:2012/09/19(水) 15:25:38.27
Delphi XE で、Bluetooth のデバイス名を列挙して、
選択して、接続、切断するサンプル無いですか?
「WCL_Developer_Demo_VCL.zip」は、見つけたのですが、
最終的に200ドル程必要なので、無料のを探しているんですけど。
882デフォルトの名無しさん:2012/09/19(水) 20:58:25.00
>>881
そうですか。
883デフォルトの名無しさん:2012/09/24(月) 00:42:49.53
>>882
はい、そうです。
884デフォルトの名無しさん:2012/09/24(月) 09:48:41.00
はいさおじさん
885デフォルトの名無しさん:2012/09/27(木) 16:12:48.53
Acrobat Readerが入っている(Acrobatは入っていない)環境で、閲覧パスワードがかかっているPDFに対し、
PDFのパスワード入力画面をすっ飛ばして(パスワードはあらかじめわかっている)、PDFを単語検索しながら
表示する手段って何かあるでしょうか?
(特定場所にジャンプできれば、単語検索でなくても構いません)

一応3つほど試してみましたが、どれもだめな感じで、手詰りな状況です…。

1. コマンドライン引数でReader起動 → 単語検索しつつ開くことはできるが、パスワードを指定する方法がない
AcroRd32 /a "search=ABCDEFG" "d:\a.pdf"
2. タイプライブラリ(Acrobat 7.0 Browser Control)の取り込み → 検索しつつ開くことも、パスワード指定するメソッドもない
3. Acrobat SDKを使用する → 動作前提にAcrobatが必要?
ttp://mrxray.on.coocan.jp/Delphi/plSamples/724_Acrobat_TAcroApp.htmを参考にさせて頂きつつ
AAcroApp := CreateOleObject('AcroExch.App') as CAcroApp;で落ちることを確認
(そもそも冒頭にAcrobatが必要って書いていますが…)
886デフォルトの名無しさん:2012/09/28(金) 02:25:55.08
>>885
その手のはSendMessageないしはSendInput,keybd_eventで操作するのが王道かなぁ?
887デフォルトの名無しさん:2012/09/28(金) 03:17:28.49
>>885
pdftk等で暗号解除済みPDFを一時的に生成してそれを表示ってのは?
888885:2012/09/28(金) 08:59:50.95
>>886
なるほど、やっぱメッセージを使用するしかないんですかね…
どうもありがとうございます

>>887
なるほど。一時的とはいえ、生PDFがローカルに存在してしまいますよね。それを避けたいのです
889デフォルトの名無しさん:2012/09/28(金) 09:55:02.15
えっ
890デフォルトの名無しさん:2012/10/06(土) 23:34:34.23
delphiの文法って、Cよりも優れてるといってもよい?
ポインタの宣言や参照する演算子の使い方を見てもそういう気がするんだけど
891デフォルトの名無しさん:2012/10/07(日) 02:34:12.72
コンパイラの視点から言えば優れてると言ってもいいかもしれませんが、
単に一言語として見た場合の評価は個人の好みでしかないと思います
892デフォルトの名無しさん:2012/10/07(日) 09:06:03.09
コンパイラの最適化が1段階しかないのが不満 Cみたいに /O2 で徹底的な最適化ができない
893デフォルトの名無しさん:2012/10/07(日) 10:02:08.64
イラネ
894デフォルトの名無しさん:2012/10/07(日) 10:11:34.08
objectpascal
895デフォルトの名無しさん:2012/10/07(日) 15:16:21.39
Cの機能が欲しいならC使えばいいだけじゃん
896デフォルトの名無しさん:2012/10/07(日) 17:43:52.29
だよね
頭おかしいわ
897デフォルトの名無しさん:2012/10/23(火) 15:32:36.72
低レベルのキーフックで入力を改変したいのですが出来ません

http://mrxray.on.coocan.jp/Delphi/plSamples/250_SystemKeyHook.htm#03

CallNextHookExのwpar値を改変すれば入力されるキーが改変されるというのを見かけたのですが、どう改変すればいいのでしょうか?
wparが仮想キーコードだからそこを改変すれば入力も改変できる、というのも見かけたのでwparをいじってみたのですが変わりませんでした

898デフォルトの名無しさん:2012/10/23(火) 15:52:32.18
ウィルスはだめです
899デフォルトの名無しさん:2012/10/23(火) 16:32:58.60
lParamじゃねーの?
900デフォルトの名無しさん:2012/10/31(水) 00:23:13.85
D6 です
Integer を 2進数文字列に変換するのに

http://delfusa.main.jp/delfusafloor/technic/technic/099_IntToBin.html
function IntToBin(x:Integer) : String;
var
i : Integer;
const
nbyte: Integer = 4;
{上:Integerは符号付き32bitなので4byte}
begin
Result := StringOfChar(' ', (nbyte*10-1)); {←長さ10の文字列がnbyte個}
for i:=nbyte*8 downto 1 do begin
if ((x And 1) = 1) then Result[i+((i-1) shr 2)] := '1'
else Result[i+((i-1) shr 2)] := '0';
x := x shr 1;
end;
end;

を参照しているのですが、戻り値をスペース無しで行うにはどう変更すれば良いのでしょうか?
0000 0000 0000 0000 0000 0000 0000 0001
 ↓単純にこういう余分なスペースが入らないのが希望
00000000000000000000000000000001
StringOfChar(' ', (nbyte*10-1)); char($20) を39個並べて0 1 を埋めているのだろうとは感じるのですが
なぜ4ビット分ごとにスペースで間が開くのかわかりません orz
今は for 文でスペースを抜いています
901デフォルトの名無しさん:2012/10/31(水) 00:33:59.03
((i-1) shr 2)
902デフォルトの名無しさん:2012/10/31(水) 01:52:19.68
>>901
原理はまだ分からないけど
Result := StringOfChar(chr($20), (nbyte*8)); ← 32-bit 幅にして
if ((x And 1) = 1) then Result[ia] := '1' else Result[ia] := '0';

で余分なスペースが消えました。
ありがとう
903デフォルトの名無しさん:2012/11/05(月) 20:49:41.77
Delphi 7 で、指定したフォルダの容量を調べるには
ファイルを全て列挙して足していかないとダメ?

フォルダに容量上限を設定して一杯になると設定容量内まで
古いタイムスタンプのログファイルを自動で消す
というのを作ろうとしてるんですが
904デフォルトの名無しさん:2012/11/05(月) 23:07:42.55
やったことないけどWin32 API関数のGetDiskFreeSpaceをDelphiから使えないかな?
905デフォルトの名無しさん:2012/11/05(月) 23:33:13.27
>>904
それだとドライブ(ディスク)全体の空き容量が反ってくるんです
906デフォルトの名無しさん:2012/11/05(月) 23:53:44.19
ああそうか。適当な事書いてスマン。ルートディレクトリしか指定できないのか。
となるとSearchRecでrepeatして列挙するしか思いつかん。
907デフォルトの名無しさん:2012/11/07(水) 07:51:28.23
>>903
Windowsでフォルダ右クリックして容量見たときもファイルを列挙して
計算しているみたいだから、その方法しか無いんじゃない。
908デフォルトの名無しさん:2012/11/07(水) 11:12:32.38
ファイルシステムの設計ミスだな フォルダに使用量のプロパティを持つべきだ
909デフォルトの名無しさん:2012/11/07(水) 12:02:16.10
ディスククォータがそうじゃないの?
910デフォルトの名無しさん:2012/11/07(水) 20:53:30.48
親フォルダにサイズ報告するんでパフォーマンスが低下するんじゃないか
911デフォルトの名無しさん:2012/11/08(木) 00:52:44.18
>>908
素人の発想
912デフォルトの名無しさん:2012/11/08(木) 10:22:50.80
直下のサイズとサブフォルダ込みのサイズと2種類持つ サブフォルダのときだけ再計算
重くなるなんてありえない
913デフォルトの名無しさん:2012/11/08(木) 11:57:31.40
新しいファイルシステム作っていいよ。>912
914デフォルトの名無しさん:2012/11/08(木) 21:42:16.68
dir /sをリダイレクトすれば早いよ
Delphiでのリダイレクトの方法は誰かがどこかで書いてたと思う
915デフォルトの名無しさん:2012/11/08(木) 23:06:14.31
>>all
この辺りのを参考にして組んでみます

function GetDirSize(dir: string; subdir: Boolean): Longint;
http://www.swissdelphicenter.ch/torry/showcode.php?id=149

Find out total size of directory
http://www.delphitricks.com/source-code/files/find_out_total_size_of_directory.html

Reload this Page folder size including subfolders and all files in bytes
http://www.delphipages.com/forum/showthread.php?t=72285

これは .Net 用で無理かな
Directory class (Delphi for .NET example)
http://delphi.about.com/library/fcl/system/io/blfcldirectory.htm
916デフォルトの名無しさん:2012/11/09(金) 11:45:30.25
何で↓で、
「[警告] 変数'nVal'が初期化されない可能性があります」
になるんでしょうか?(D2010です)
for文の前にnValに何かを代入してやるとこの警告は消えますが…。

var
i : Integer;
nVal : Integer;
begin
for i := 0 to 10 do begin
if ( i = 0 ) then begin
nVal := 0;
end else if ( i = 5 ) then begin
nVal := 5;
end else begin
continue;
end;

ShowMessage( IntToStr( nVal ) );
end;
end;
917デフォルトの名無しさん:2012/11/09(金) 11:57:03.51
変数'nVal'が初期化されない可能性があるからだね
918デフォルトの名無しさん:2012/11/09(金) 11:58:05.02
iが0でも5でも無かったらどうなるのよ?
919デフォルトの名無しさん:2012/11/09(金) 12:39:38.53
実際問題としてfor文の0は必ず通るから初期化されないって事はありえないけど
コンパイラはif〜then〜elseの部分を機械的に見てて最後のelseだけ通ったら
初期化されないと判断してるんだと思う。
920デフォルトの名無しさん:2012/11/09(金) 12:44:08.65
こんな書き方は出来なかったっけ?

var
i : Integer;
nVal : Integer;
begin
for i := 0, nVal := 0 to 10 do begin
if ( i = 5 ) then begin
nVal := 5;
end else begin
continue;
end;

ShowMessage( IntToStr( nVal ) );
end;
end;
921デフォルトの名無しさん:2012/11/09(金) 13:05:30.66
>>920
2007では出来なかった。
922デフォルトの名無しさん:2012/11/09(金) 19:22:31.61
>>920
Cだと
int i , j ;
for( i = 0 , j = 0 ; i < count ; i++)
みたいな書き方はあったな。
大学でたまにそう書いている人がいたけど、メリットさっぱり分からん。
外で宣言してるからforスコープの中に入れるとかそういうことも無いし。

ところで誰も突っ込まないけど、do begin や then beginって書き方ってどうなの?
すごくきもく見えるんだが、今はこう言う書き方が主流なのか?
923デフォルトの名無しさん:2012/11/09(金) 19:46:39.98
個人的には階層が分かりづらいからbeginとendの頭は揃えたい。
でも上の書き方は実際のソースで見た事があるからむしろ古い書き方なんじゃね?
924デフォルトの名無しさん:2012/11/09(金) 19:48:22.07
  if ( i = 0 ) then
  begin
   nVal := 0;   ShowMessage( IntToStr( nVal ) );
  end else
  if ( i = 5 ) then
  begin
   nVal := 5;   ShowMessage( IntToStr( nVal ) );
  end;
↑かいっそ↓でいいんでないの?(#13#10が多すぎると言われたから ShowMessage は同行)
  if ( i = 0 )or( i = 5 ) then
  begin
   nVal := i;   ShowMessage( IntToStr( nVal ) );
  end;
925デフォルトの名無しさん:2012/11/09(金) 20:09:22.94
おまい頭良いな
926デフォルトの名無しさん:2012/11/09(金) 21:35:28.77
>>925
頭良いというか普通 >>924 を先に思いつくと思うんだが。
そもそも、処理の流れ上必ず初期化されるのにもかかわらず
コンパイラが警告はいてるよってことを言いたいために
わざわざcontinueつかってあんな風に書いてるんじゃ無いの?
927デフォルトの名無しさん:2012/11/09(金) 22:29:33.22
必要最小限の再現コードにするために削ったらそうなっただけで
もともとは ==0 と ==5 の中身は違うものだったと思われ候
928デフォルトの名無しさん:2012/11/09(金) 22:31:45.03
早漏でおじゃるお
929デフォルトの名無しさん:2012/11/10(土) 08:23:38.35
iと同じ値でいいならそもそもnValを用意する意味がない
メモリやレジスタの無駄使い
930デフォルトの名無しさん:2012/11/10(土) 10:58:48.40
へっ
931デフォルトの名無しさん:2012/11/10(土) 16:24:25.51
DELPHI STARTERでMY SQLをodbcでつなげる方法があると聞いたのですが、
よくわかりません。
どなたかお教え願います。
932デフォルトの名無しさん:2012/11/10(土) 17:19:33.29
しらねーよヴァーカ!!!
933デフォルトの名無しさん:2012/11/11(日) 00:16:04.08
>>931
まず銀行でお金を下ろします
934デフォルトの名無しさん:2012/11/11(日) 17:46:07.08
TActionのOnExecuteの呼び出し元ってどうやったらわかりますか?

procedure TForm.ActionExecute(Sender: TObject);
begin
 if ? then
  // ショートカットキーから呼ばれた場合
 else if ? then
  // TMenuItemから呼ばれた場合
 else if ? then
  // TToolButtonから呼ばれた場合
end;

って感じの処理がしたいのですが、?の部分はどうすればいいですか
935デフォルトの名無しさん:2012/11/11(日) 18:32:52.94
それぞれのtagに番号振っといて
case TObject(Sender).tag of
で判断出来なかったっけ?
今開発環境がないんで動作確認出来なくてスマン。
936デフォルトの名無しさん:2012/11/11(日) 20:08:35.82
>>935
あくまでSenderにはActionのインスタンスが入ってるから駄目でしょ。
そもそもそれが出来るなら、タグ付けしなくてもis演算子使えば良いし。

それに、SenderはもともとTObject型だからキャストする必要ないし、
そのキャストの仕方だと、想定していない型が渡された場合でも例外が発生すること無く
不正なキャストが行われるために、意図しない挙動をしていても気づきにくくデバッグに支障が出るよ。

>>934
前書のことがあるので、呼び出し元の区別の仕方は僕には答えられないが、
ただ、Senderが元々何の形であったかを判別するにはis演算子を使えば良い、

Actionを使うとSenderにはそのActionが代入されているためうまくいかないが
Actionを使わず同じイベントハンドラを共有するようにしておけば以下のようにして判別することが出来る。
if Sender is THoge then //THogeショーカットを登録したコンポーネント、たとえばTMenuItemやTActionなど
else if Sender is TMenuItem then
else if Sender is TToolButton then
937デフォルトの名無しさん:2012/11/11(日) 20:25:20.86
Actionを発生させたコンポーネントはActionComponentプロパティでわかる。
コンポーネントの種類を判定したかったらis演算子を使う。

c := (Sender as TAction).ActionComponent;
if c is TMenuItem then ...
else if c is TToolButton then ...

「ショートカットキーから呼ばれた場合」っていうのがよくわからないな。
アクションに対してショートカットキーを割り当てるものであって、
逆(ショートカットキーにアクションを割り当てる)はできない。
おそらくその場合は、アクションを割り当てたTMenuItemから呼ばれた扱いになると思う。
938デフォルトの名無しさん:2012/11/12(月) 19:07:41.56
どのトリガによってイベントが呼ばれたのかを知りたいんだから、
内部的にどう処理されるかはともかく、ショートカットキーからという表現は別におかしくないと思うが
939デフォルトの名無しさん:2012/11/12(月) 21:23:44.10
ショートカットキーはTMenuItem側、TAction側のどちらでも別々に設定して使える。
だから(ショートカットキーを設定したメニューアイテムにアクションを割り当てる)
というのは可能だね。

クリックなのかショートカットキー押下なのかという判定はできないみたいだねぇ…。
あとは>>936に加えてオブジェクトを特定するくらいか。言わずもがなだけど、このように。
c := (Sender as TAction).ActionComponent;
if c=N1 then ...
940デフォルトの名無しさん:2012/11/13(火) 15:00:14.31
DelphiでC++で作られたDLLを使うにはどのようにすればよいのでしょうか?
941デフォルトの名無しさん:2012/11/13(火) 15:14:36.49
Win7Pro64bit上でDelphXE2Proを使っています。
今日初めてiosアプリに挑戦しようと FireMonkey HD iOSアプリケーション 
を選択してもフォームが表示されません。(初期コードは表示されます。)
別のPCのDelphiでは表示されます。

表示されないほうのPCはCドライブがSSDで64GBしかないので、
アプリ類(Delphi含む)はDドライブにインストールして使っています。
表示されるほうはCドライブ上に全てインストールしていますので、
Dドライブにインストールしているのが原因と思うのですが、
対処の仕方がわかりません。

どう対処すればいいか教えてください。
宜しくお願いします。
942デフォルトの名無しさん:2012/11/13(火) 17:46:34.40
質問です
function ReturnInteger(適当な型): Integer;
begin
 Result := 15;
end;
で Result には Integer 型の結果数字を返すわけですが、
マウスの座標のように
 〜.X
 〜.Y
というような1回の戻りで複数の値を返す関数はどういうふうに組むのでしょうか?
943デフォルトの名無しさん:2012/11/13(火) 18:19:44.86
そういう型を自分で作るか、TPoint型を使う
944デフォルトの名無しさん:2012/11/13(火) 18:21:23.01
>>942
function ReturnInteger(適当な型): TPoint;
begin
 Result.X := 15;
 Result.Y := 15;
end;

って感じでできるよ
945942:2012/11/13(火) 18:35:53.30
>>943-944
おー 知らなかった! マジありがと
これまでは戻り用の引数込みで送って複数回繰り返してたから楽になります
文字も同様にいけるのかな? やってみよ
946デフォルトの名無しさん:2012/11/13(火) 18:47:12.36
>>940
C++のクラスがエクスポートされていたりデータ(グローバル変数)がエクスポートされているのであれば
直接は使えない。そうでなければ普通のCでできたDLLと同じなので
procedure Foo(Bar: Integer): Integer; stdcall; external 'DLLFile.dll' name 'Foo';
のような定義を書いて静的にリンクするか、LoadLibrary/GetProcAddressやdelayedディレクティブを
使って動的にリンクするかお好きにどうぞ。
947942:2012/11/13(火) 18:59:01.95
TPoint型 は整数だけなんですね Extended の浮動小数点は桁をあげて整数化して返すようにするか
orz
948デフォルトの名無しさん:2012/11/13(火) 19:11:31.89
>>940
swig で wrapper を書く
949デフォルトの名無しさん:2012/11/13(火) 19:15:13.97
>>946,948

ありがとうございます!
950デフォルトの名無しさん:2012/11/13(火) 19:48:42.85
>>947
自分でrecord作れ
951デフォルトの名無しさん:2012/11/13(火) 20:40:07.98
>>947
☆Delphi リファレンス - Delphi 言語ガイド - データ型、変数、定数 - 構造化型(Delphi) - レコード型(従来型)
http://docwiki.embarcadero.com/RADStudio/XE3/ja/%E6%A7%8B%E9%80%A0%E5%8C%96%E5%9E%8B#.E3.83.AC.E3.82.B3.E3.83.BC.E3.83.89.E5.9E.8B.EF.BC.88.E5.BE.93.E6.9D.A5.E5.9E.8B.EF.BC.89

ついでに。
☆古いTPoint - 従来のレコード型
http://docwiki.embarcadero.com/VCL/2010/ja/Types.TPoint
☆新しいTPoint - 高度なレコード型
http://docwiki.embarcadero.com/Libraries/XE3/ja/System.Types.TPoint
952デフォルトの名無しさん:2012/11/13(火) 21:05:36.27
>>947
複数の値をやりとりする方法は、レコード型の他に変数パラメータとoutパラメータもあるよ。

procedure AddExtended(A: Extended; var X,Y: Extended);
begin
  X:=X+A;
  Y:=Y+A;
end;

procedure GetExtended(out X,Y: Extended);
begin
  X:=1.56789;
  Y:=0.1234;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  X,Y: Extended;
begin
  GetExtended(X,Y);
  Memo1.Lines.Add(Format('X=%g, Y=%g',[X,Y]));
  AddExtended(0.5,X,Y);
  Memo1.Lines.Add(Format('X=%g, Y=%g',[X,Y]));
end;
953942:2012/11/14(水) 01:46:57.69
>>952
おぉ高度な! 目からうろこが
954デフォルトの名無しさん:2012/11/14(水) 10:27:09.50
var渡しで直接書き換えればいい >>952と同じことだけど

procedure ReturnInteger(input: Integer; var outputX: Integer; var outputY: Integer);

これで1つの関数でまとまるんじゃないの
955デフォルトの名無しさん:2012/11/14(水) 13:49:24.78
ん? また自演が始まったのか。
956デフォルトの名無しさん:2012/11/14(水) 21:52:03.97
var
Form1: TForm1;
DATA : array[0..255] of Integer;
(略)

procedure TForm1.Button1Click(Sender: TObject);
var (略)
begin
(計算)
 Edit_0.Text := IntToStr(DATA[00]);
 Edit_1.Text := IntToStr(DATA[01]);
 Edit_2.Text := IntToStr(DATA[02]);
 Edit_3.Text := IntToStr(DATA[03]);
(略)
end;


for i:=0 to 255 do Edit_+IntToStr(i).Text := IntToStr(DATA[i]);
  や
for i:=0 to 255 do DATA[i] := StrToInt(Edit_+IntToStr(i).Text);
みたいにできる方法はありますか? そのさいの書き方と
957デフォルトの名無しさん:2012/11/14(水) 22:12:07.16
FindComponentってのを使えばいいと思う。
958デフォルトの名無しさん:2012/11/14(水) 22:29:51.00
objlist: Array 1..100 of TObject;
objlist[1] := Edit1;
TEdit(objlist[1]).Text := DATA[1];

配列に突っ込んでおけばループで回せる
959デフォルトの名無しさん:2012/11/14(水) 23:25:21.71
こうかな? どこに書くのか悩んだけど
270個までつくってたけど組みなおそう
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls,
(略);
type
 TForm1 = class(TForm)
  Edit0001_001: TEdit;
  Edit0001_002: TEdit;
  Edit0001_003: TEdit;
(略);
  procedure FormCreate(Sender: TObject);
  procedure Button1Click(Sender: TObject);
 private
  { Private 宣言 }
 public
  { Public 宣言 }
 end;
960デフォルトの名無しさん:2012/11/14(水) 23:28:41.23
var
 Form1: TForm1;
  DATA : array[0..1000] of Integer;
  objlist: Array[1..100] of array[1..10] of TObject;
implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
 objlist[1][1] := Edit0001_001;
(略);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 TEdit(objlist[1][1]).Text := DATA[1];
(略);
end;
961デフォルトの名無しさん:2012/11/15(木) 00:01:09.84
>>958
これは突っ込んで欲しいのか?
962デフォルトの名無しさん:2012/11/15(木) 00:11:49.31
あらかじめtagに数字入れておけwww

procedure DoSome(Sender:TObject);
var
 i:integer;
 e:TEdit;
begin
for i:= AContainer.ComponentCount-1 downto 0 do
 begin
  if AContainer.Components[i] is TEdit then
  begin
   e:=TEditor(AContainer.Components[i]);
   e.Text:=Data[e.Tag];
 end;
end;

でなきゃ動的生成したほうが早い。どうせ並べてるんだろw
963デフォルトの名無しさん:2012/11/15(木) 00:38:59.64
ここんとこ、最近はDelphiを触ってないのが明らかな先輩方がレスくれてますね(笑)
いや結構なことなんですけど、Typoとかいろいろ笑える。

>>959-960
そんなにたくさんのTEditなら動的生成して並べた方がいいに決まっているけど、その前に。

  objlist: Array[1..100] of array[1..10] of TObject;
TEdit専用の配列ならば、こうすれば
  Editlist: Array[1..100, 1..10] of TEdit;

 TEdit(objlist[1][1]).Text := DATA[1];
キャストは不要になる。
 Editlist[1][1].Text := DATA[1];

どんなものを作ろうとしてるのか言った方が的確なアドバイスをもらえると思うよ。
Delphiのバージョンは何かな?
964デフォルトの名無しさん:2012/11/15(木) 01:29:19.69
>>963
TStringGridで済む気もするんだがw
965デフォルトの名無しさん:2012/11/15(木) 04:45:17.45
>>963 D7
5等補償型自作クイックピック
ttp://www1.axfc.net/uploader/so/2676363.jpg?key=loto
これの自動算出に基数として126*6 〜 243*6など要るので
ソース行数が爆増する問題箇所は突破できました
966デフォルトの名無しさん:2012/11/15(木) 07:20:57.17
これで270個もTEditが増えるのがわからない。画面はサブフォームで量産すれば済むし
設計の根本的なところからいろいろまずいかもしれないね
オブジェクト指向的な作り方をすれば、もっとすっきりまとまるよ
90年代のVBソフトみたいな印象で、昔はこういう作り方が多かったかもしれない。
967デフォルトの名無しさん:2012/11/15(木) 08:18:23.25
具体案を示せない人は黙ってていただけ増すか
968デフォルトの名無しさん:2012/11/15(木) 10:17:33.13
TEditのParentが全部同じなら俺ならこうする。

procedure TForm1.Button1Click(Sender: TObject);
var
I: Smallint;
begin
for I := Low(DATA) to High(DATA) do
TEdit(FindComponent('Edit' + IntToStr(I + 1))).Text := IntToStr(DATA[I]);
end;
969デフォルトの名無しさん:2012/11/15(木) 10:41:38.45
画面にTEditが40個あるとして、それをいちいちFindComponentしていくのか・・・
前持って処理してグローバルに覚えて再利用したほうがいいな
970デフォルトの名無しさん:2012/11/15(木) 15:00:41.51
ttp://www.sm.rim.or.jp/~shishido/mp3dev1.html
ここのプログラムをダウンロードしてDelphi XE3で実行したところmp3ファイルをロードしても音が出ませんでした.
Delphi6で実行すると音がでます.
XE3でも音が出せるようになる方法を教えてください.
971デフォルトの名無しさん:2012/11/15(木) 15:31:55.02
まずXE3を捨てます
972デフォルトの名無しさん:2012/11/15(木) 17:18:54.54
続いて自分を解き放ちます
973デフォルトの名無しさん:2012/11/15(木) 19:30:31.94
>>970
UnicodeなDelphiを触ったことないですけど、たぶんこんな感じだと思います。

・ レコード型のcharをAnsiCharに。2箇所。

・ Wide文字列→PAnsiCharにキャスト。
vbmp3_open(PChar(OpenDialog1.FileName),@info);
vbmp3_open(PAnsiChar(AnsiString(OpenDialog1.FileName)),@info);

違ってたら誰かフォローよろしく。
974デフォルトの名無しさん:2012/11/15(木) 20:00:55.08
>>973
できました!!
とても助かりました.
本当にありがとうございます!
975デフォルトの名無しさん:2012/11/16(金) 07:08:12.95
質問です。
WinXP + delphi7(VCL)で開発します。

コンボボックスのコンポーネントで、なめらかな動きをしない
(スムーススクロールしない)ようなものはありませんか?
あるいは、作る方法はありませんか?

Windowsのパフォーマンスオプションで、
「リストボックスを滑らかにスクロールする」のチェックを外せば、
望み通りの動きなのですが。(マウスホイールによる動きが全然違います。)

Access2007のフォームにあるコンボボックスは、この設定に関わらず
滑らかな動きをしないようなので、このようなコンポーネントをdelphiでも
用意する方法があるのではないかな、と探しているところなのです。

方法があれば、ぜひ教えてください。お願いします。
976デフォルトの名無しさん:2012/11/16(金) 11:15:39.75
ttp://stackoverflow.com/questions/2968189/disable-mouse-scroll-wheel-in-combobox-vb-net

WM_MOUSEWHEEL をコンボボックスで握りつぶせばよろしいかと。
977デフォルトの名無しさん:2012/11/16(金) 11:21:17.52
しかしstackoverflowはなんであんなに役に立つのか
978デフォルトの名無しさん:2012/11/16(金) 14:23:58.43
ttp://hp.vector.co.jp/authors/VA015850/delphi/tips/etc01.html
このサイトでiniファイルの作り方を学んだのですがこのままだとプログラム名がそのままiniファイルの名前になってしまいます。
test.iniとしたいのですが
IniFile := TIniFile.Create('test.ini');
にすると
"test.iniに書き込めません"とエラーがでます
どうすればiniファイルの名前を変えられるのでしょうか
979デフォルトの名無しさん:2012/11/16(金) 14:39:12.56
フルパス名を与える。INIファイルをEXEと同じ場所に配置するのはお勧めしない。
980デフォルトの名無しさん:2012/11/16(金) 14:41:44.06
権限のないカレントドライブのルートに書こうとしたんだろ
981デフォルトの名無しさん:2012/11/16(金) 14:42:29.64
>>979
ありがとうございます
やってみます
982デフォルトの名無しさん:2012/11/16(金) 21:29:05.18
このスレにはお世話になっているので還元
>>978
procedure TForm1.FormCreate(Sender: TObject);
var
SaveDir : WideString;
SaveFileName : WideString;
begin
// SaveDir = アプリケーションのあるフォルダのフルパスが入る
SaveDir := ExtractFilePath(Application.ExeName);

// アプリケーションのあるフォルダに'Save'というフォルダが無ければ新規に作る
SaveDir := SaveDir + 'Save\';
ForceDirectories(SaveDir);

SaveFileName := SaveDir + 'test.ini'; // その同フォルダにtest.iniを指定できる。'file_0001.dat' など任意名称

// if FileExists(ExtractFilePath(Application.ExeName) + 'test.ini') then
if FileExists(SaveFileName) then
begin
// ファイルが存在していたら行う処理を書く
end;
end;
983982:2012/11/16(金) 21:38:40.62
セーブフォルダをビジュアルに選択したいときはココの方法など
フォルダ選択ダイアログを出す
ttp://www.wwlnk.com/boheme/delphi/tips/tec0530.htm
984デフォルトの名無しさん:2012/11/16(金) 22:02:06.21
>>982
おおお…
まさにこのような答えを待っていました
とても助かりました!
ありがとうございます
985デフォルトの名無しさん:2012/11/16(金) 22:10:27.61
いやだからそんなとこに書いちゃだめだって。Program Filesの下は書き込めないという前提。
SHGetFolderPathでCSIDL_APPDATAとかCSIDL_PERSONALの場所を取得して
その下に適当なフォルダを作って配置しないと。
986982:2012/11/16(金) 22:28:47.04
>>985
なぜ? Program Files にコダワルのか判らないです。
OS 依存のシステムディレクトリなんかにプログラムのセットを置かずに
ユーザーが任意の作業フォルダから実行すれば良いだけで
取り外しメディアに入れておけばパソコン環境を変えてもインストール作業なんて不要で
そのまま他機で使用可能ですよ。

俺はインストで勝手に Program Files 固定で鎮座しやがるアプリ以外は別の自分で作ったフォルダに指定してる。
変なアプリ動作でゴミデータが増殖されるのをチェックするうえでも
987デフォルトの名無しさん:2012/11/16(金) 23:05:09.43
お行儀が悪いというレベルの話ではないのかw
本来XPならDocument and Settingの所定ユーザフォルダに置くのが望ましいという話で。
988デフォルトの名無しさん:2012/11/16(金) 23:31:30.42
まっとうな売り物でもなければ
エンドユーザーが把握できないプログラムとデータ群をProgram Filesやレジストリに書き加えて肥大させ
システムを不安定化させていく方がお行儀が悪い気がする
989975:2012/11/17(土) 00:59:00.68
>>976
ありがとうございます。
参考にして、WM_MOUSEWHEELを握りつぶすことはできました。
(ホイールが利かなくなりました。)

ただ、ホイールを無効化するのでなく、
ドロップダウンリストにスクロールバーが出ている状態においては、
リストを1行ずつスクロールさせたく思っております。

その際、スムーススクロールさせると、リストのスクロールが
目で追えなくなってしまうような描画をするので、それを対策したいと思っております。

コンボボックスに、StringGridにおけるTopRowプロパティのようなものがあれば、
対策できそうではあるんですけど、方法ありませんでしょうか?
990デフォルトの名無しさん:2012/11/17(土) 01:23:27.33
>>985
初心者に解らない断片で書かずに
Documents and Settings のユーザー名 Dir を取得するコードを
>>982 のようにちゃんと書いてあげれば?
991デフォルトの名無しさん:2012/11/17(土) 03:28:59.50
一つのアカウントを共用してるPCが大半を占めていて、
アプリケーションの設定も一つでいいのに、
わざわざユーザーからは分かりづらい場所に設定置くような
>>985みたいな挙動はどっちかというと嫌われてる
992デフォルトの名無しさん:2012/11/17(土) 09:48:49.96
インストーラーが必要で、%ProgramFiles%にインストールされるようなプログラムは
きちんと%AppData%にフォルダ作ってやってほしい。

しかしインストーラーできちんと環境を整える必要が無いようなソフトの場合は
ポータブルアプリみたいな方がいいね。

>>990
どの関数と定数を使えば良いかはすでに書いてあるんだからアレで十分じゃね?
それでどうにか出来ないようであれば初心者以前の問題かと。
993デフォルトの名無しさん:2012/11/17(土) 13:03:49.00
次スレです。

くだすれDelphi(超初心者用)その55
http://toro.2ch.net/test/read.cgi/tech/1353119767/


未解決の事案を抱える方は、次スレで再度質問してみるといいかもしれません。
994デフォルトの名無しさん:2012/11/17(土) 13:35:51.89
>>993
乙です
埋め
995デフォルトの名無しさん:2012/11/17(土) 14:05:51.69
1年はかからなかったか
996デフォルトの名無しさん:2012/11/17(土) 14:21:01.03
最近質問が増えた気がする。業務でやる人が増えるとも思えんが…。
学校の課題とか趣味のプログラミングとかかね?
997デフォルトの名無しさん:2012/11/17(土) 14:41:21.04
>>996
言語としては学校で教えるのに割と適している気もしないでも無いが
開発環境の整えづらさから考えるとあり得ないだろ。
質問内容から言っても課題とは関係なさそう。
998デフォルトの名無しさん:2012/11/17(土) 14:43:30.14
自分は趣味ですね
delphiやBuilder使わないと未だにどうすればソフトが作れるか分からないもので・・・
999デフォルトの名無しさん:2012/11/17(土) 18:19:31.20
ううう
1000デフォルトの名無しさん:2012/11/17(土) 18:20:04.14
華麗に1000げとー
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。