くだすれDelphi(超初心者用)その54at TECH
くだすれDelphi(超初心者用)その54 - 暇つぶし2ch2: 忍法帖【Lv=40,xxxPT】
11/12/28 08:23:41.15
<関連スレ>
delphiで作った有名ソフトって何があるの?
スレリンク(tech板)
【Delphi互換!?】FreePascal/Lazarus その2【GPL】
スレリンク(tech板)

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

では質問どうぞ。


3:デフォルトの名無しさん
11/12/28 22:55:10.84
完走?落ちた?

4:デフォルトの名無しさん
11/12/28 23:42:01.00
984で落ちたような

5:デフォルトの名無しさん
11/12/30 09:44:55.79
もう人いなんだからスレ立てる必要ねぇよ

6:デフォルトの名無しさん
11/12/30 21:18:53.52
時代はLazarus

7:デフォルトの名無しさん
12/01/05 13:22:04.97
delphi7なんだけど、CombBoxって文字の右寄せって出来ない?
ググったらEditコントロールは出来るみたいだけど。

8:デフォルトの名無しさん
12/01/05 19:30:26.97
Delphiじゃなくて WindowsのCOMBOBOXには右寄せというのは無いからね

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

Editコントロールで入力して ListBoxを動的に表示させるとか

9:デフォルトの名無しさん
12/01/05 19:46:25.31
CreateWndした後だとprotectedなメンバのEditHandleにエディット部分のhwndが入っているようなので、
こいつを使ってStyleを書き換えればできそう。

10:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/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も入れたほうが
いいかも、ということくらいかな。

13:7
12/01/06 08:56:08.00
うおおおおおおお
皆さん、ありがとうございます。
10さん、まだ試してないですが使わせていただきます。

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


14:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/01/15 04:45:01.30
手間が少ないのは3だろ

16:デフォルトの名無しさん
12/01/16 09:19:10.54
>>15
最近の異言語間のマーシャリングとか得意じゃないんだけど
VB.NETとDEL7ってあんまり気を使わないで済むのかな


17:デフォルトの名無しさん
12/01/16 09:28:22.62
COMで呼べばいいじゃん

18:デフォルトの名無しさん
12/01/16 09:40:25.72
俺だったら全部Delphiでやるけどね。 既存設計の良い所真似してより便利にしてやれば喜んでくれるだろう。
下手に既存との両立とかしたらアレは向こうの問題だとか 問題の切り分けで面倒な事になる。

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


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

何かデータ加工してもらわないといけないのなら、VB.NET側で加工してファイル渡しで作ればいいじゃない。

19:デフォルトの名無しさん
12/01/16 11:41:20.91
Delphi1~4まで持ってたんだけど
今再開するとしたら有利なアップグレードパスはありますか?

フリー版ってもうないんですよね

20:デフォルトの名無しさん
12/01/16 16:42:17.14
>>15,17,18
ご意見ありがとうございます

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

VB通信サーバー -> FireBirdトランかきこ
-> Delphi監視サーバー -> 伝票自動発行
の流れで行こうと思います。(監視サーバーは定期監視か可能ならSocket通知)


21:デフォルトの名無しさん
12/01/16 21:40:30.78
>>19
とりあえずStarter SKU(Delphi XE2 Starter)でいいのでは?これで足りないようなら今年の9月頃にXE3が出ると思うんで、
そのときにジャンプアップキャンペーンがあればこれでPro以上のSKUにするのがオヌヌメ。

22:デフォルトの名無しさん
12/01/17 21:21:27.11
mainmenuを使って
メニューを作っています。
コンパイルすると
メニューの文字の左側に(アルファベット1文字)が追加されています。
例)ファイル(X)
開く(Y)
閉じる(Z)
カッコとアルファベットを消す方法を教えて下さい。

23:デフォルトの名無しさん
12/01/17 21:27:42.97
つAutoHotkeys

24:22
12/01/17 22:58:21.85
maManualにしたらできました。
ありがとうございます。

25:デフォルトの名無しさん
12/01/17 23:39:07.83
delphi3の頃から見かける質問だがいまだにこれが出るって事は新規がまだいるんだなぁ

26:デフォルトの名無しさん
12/01/17 23:45:03.28
ホットキーがついてないのって出来損ないのクロスプラットフォームアプリでしか見かけないな

27:デフォルトの名無しさん
12/01/18 18:18:04.32
ツールボタンしか用意してないものとかもあるもんな

28:デフォルトの名無しさん
12/01/18 21:56:03.23
Delphi6使ってるんですが、Indy9はHTTP1.1に対応していますか?
ヘルプには
IdHTTP1->ProtocolVersion のデフォルトは pv1_1 と書いてありますけど。
Transfer-Encoding: chunked だと途中でファイルが途切れることがあるみたいなのですが・・・


29:デフォルトの名無しさん
12/01/19 09:58:37.70
それはDelphiじゃなくてIndy側の問題。どうせオープンソースだから自分で直せ

30:デフォルトの名無しさん
12/01/20 00:24:41.00
>>28
chunkedなデータって元々サイズ指定がなかったりするから
途切れてるんじゃなくてそれで正常って可能性もあるんじゃね?

31:デフォルトの名無しさん
12/01/20 06:00:51.65
RFC嫁

32:28
12/01/20 06:55:44.94
ネットモニタで見てみたら、ちゃんとデータは鯖から送信されていました。
なので、Indyがchunkedに対応していない、あるいはバグのようです。
>>30 ちなみに、chunkedはブロックごとにサイズ指定して送信してくる方式ですよ。
いろいろ試行錯誤してみた結果、
ProtocolVersion:=pv1_0 にするとchunked形式ではなく普通の形式で送信される
ので、とりあえずはそれで回避しましたが、なんか鯖の反応が遅くなるみたいです。
Indyのソースは見てみましたが、膨大で挫折しました。
どこを見ればいいんでしょうか。


33:デフォルトの名無しさん
12/01/20 16:39:05.59
Delphi初心者です

34:デフォルトの名無しさん
12/01/20 16:41:04.77
Delphi初心者です
マルチクライアントなTCPサーバーを作ろうと思うのですが、
TTcpServerというのを使えばいいんでしょうか?
バグとか機能的に使えんとかいうご意見があれば教えてくさい
あと、それよりこっちがいいよっていうコンポーネントなんか
あったら教えてくさい

35:デフォルトの名無しさん
12/01/20 17:17:28.40
Ararat Synapse にマルチクライアントなTCPサーバーのサンプルがついてるよ

36:デフォルトの名無しさん
12/01/20 17:25:43.67
>>35
34です。ありがとうございます。調べてみます。
TTcpServerは使い物にならないってことですかね?

37:デフォルトの名無しさん
12/01/20 18:44:20.50
特に理由がなければC#とかの方がいいよ

38:デフォルトの名無しさん
12/01/20 18:51:21.57
ほんとだったら.Net Frameworkでやりたいんですが、今回はDelphi言語指定です

39:デフォルトの名無しさん
12/01/20 19:00:54.62
まぁ、TTcpServerぐらいなら元のWinSockラップしてるだけだし。
バグとか大丈夫なんじゃ。ソースも簡単に追える程度でしょ。

40:デフォルトの名無しさん
12/01/20 19:08:38.45
>>39
34です。とにかく情報が少なすぎて不安ですが、チャレンジしてみます
ありがとうございました

41:デフォルトの名無しさん
12/01/20 19:15:12.47
URLリンク(docwiki.embarcadero.com)

42:デフォルトの名無しさん
12/01/20 19:17:51.82
はい、そこは見てます。これぐらいしかないんですw

43:デフォルトの名無しさん
12/01/20 22:35:18.64
>>32
サイズって全体のサイズな
細切れ毎のサイズだけでは全体がいくつか分かんないでしょ

44:デフォルトの名無しさん
12/01/20 22:38:25.99
>>42
古いものだけど、TServerSocketの方が情報はあるかもしれない
簡単に言えばTTcpServerの旧世代版みたいなもの
標準ではインストールされてなかったと思うけど、一応最新のDelphiにも入ってたはず
導入方法はググれ

45:デフォルトの名無しさん
12/01/21 02:56:00.45
>>32
Content-LengthとTransfer-Encoding: chunked が同時に指定されている場合に
鯖によって問題出る事があって昔Janeでバグ修正してるけど関係あるかな?
TIdCustomHTTP.ReadResultの判定順序変えてるけど

46:デフォルトの名無しさん
12/01/21 07:56:32.97
>>37
C#でサーバーとな。気は確かか?

47:デフォルトの名無しさん
12/01/21 08:12:16.95
.NETはWinForm,WPFなどのクライアントよりASP.NETなどのサーバー分野の方が強いんだけど


48:デフォルトの名無しさん
12/01/21 08:27:18.57
いや、別に止めないけど

49:デフォルトの名無しさん
12/01/21 09:00:50.83
Delphi+Indyに比べれば何でもましだろ

50:デフォルトの名無しさん
12/01/21 10:39:32.91
だな

51:デフォルトの名無しさん
12/01/21 12:09:25.77
というかArarat Synapse のサンプルはマルチスレッドだから実用に耐えるよ。
Indyは確かに糞だよ。

52:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/01/24 11:22:57.74
私教授じゃないから教示はできても教授はできないわ

54:デフォルトの名無しさん
12/01/24 11:42:45.40
この際Lazarusに移行しちゃえば?

55:デフォルトの名無しさん
12/01/24 19:53:55.61
_alvPkgDXE2.bpl
にでもリネームしてみる

56:デフォルトの名無しさん
12/01/24 23:38:49.03
52です。
この件クローズです。
直接の原因はTAdvStringGridがインストールされているためでした。
そもそも、TAdvListViewと共存できるのかTMS Softwareに確認しています。
お騒がせしました。

57: ◆XcB18Bks.Y
12/01/28 02:48:08.05
Turbo Delphiのテキスト選択に関する質問です。

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

これはどうやったら元に戻る(切り替えられる)のでしょうか。
ヘルプを見たのですが分かりませんでした。


58:デフォルトの名無しさん
12/01/28 03:29:43.82
その質問をするためにはどうしてもトリップを付ける必要があったのでしょうか?

59:デフォルトの名無しさん
12/01/28 05:17:26.69
うぜえよ
答えられないならレスすんな、カス

60:デフォルトの名無しさん
12/01/28 08:55:36.81
キーボードにコーヒーこぼしてShiftキーが押しっばなし状態になったことはあった

61:デフォルトの名無しさん
12/01/28 21:48:25.50
今のデルファイで232c扱うコンポーネントある?

62:デフォルトの名無しさん
12/01/28 22:43:59.27
CommPortとかTurboPower Asyncあたり

63:デフォルトの名無しさん
12/01/29 16:39:11.89
ドラッグアンドドロップで、画像を配置して表示させるフォーム
をつくるには
どうすればいいでしょうか。

64:デフォルトの名無しさん
12/01/29 22:55:17.20
まずドラッグアンドドロップの処理をフォームに実装します

65:デフォルトの名無しさん
12/01/29 23:09:04.21
>>63
「フォームをつくる」の意味が曖昧だけど

usesにShellAPI

WM_DROPFILES

DragQueryPoint

を検索してみたらよろしいかと

66:デフォルトの名無しさん
12/01/30 18:31:05.62
ファイルをとは一言も言ってません

67:デフォルトの名無しさん
12/01/30 20:04:21.35
はい、次の方

68:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/01 10:57:07.37
>>68
この際だから Lazarus に移行しちゃえば?

70:デフォルトの名無しさん
12/02/02 10:45:46.55
>>68
IntToHexの引数の型を見たことはある?

71:デフォルトの名無しさん
12/02/02 11:56:14.72
こんにちは。
Delphi7でmdbをTADOQueryで読み込んでDBGridに表示しています。
そのADOQueryにはCalcFieldがあり、OnCalcFieldsイベントで
データをセットしています。
で、このクエリをDBGridに表示し終わった時に、そのCalcFieldの
値の全レコードの合計をTEditか何かに表示させたいと思って、
OnCalcFieldsイベントプロシジャの中で、
Ruikei := Ruikei + CalcFieldの値;
みたいに累計を求める式を書いてるのですが、
OnCalcFieldsイベントはDBGridに表示されているレコードしか
呼び出されないようで、全レコードの合計になってくれません。
CalcFieldの値の全レコード合計を出すにはどうすればよいでしょうか?


72:デフォルトの名無しさん
12/02/02 12:26:02.02
>>71
逆に mdb にクエリー投げたくない理由教えて。
なんでわざわざDBGrid 解して計算したいの?

73:デフォルトの名無しさん
12/02/02 12:31:34.73
>>72
DBGridには表示してるだけです。
TADOQueryでmdbにSQLを投げてます。

74:デフォルトの名無しさん
12/02/02 12:33:15.29
>>72
mdb - TADOConnection - TADOQuery - TDataSource - TDBGrid


75:68
12/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:デフォルトの名無しさん
12/02/02 13:31:28.53
>>75
逆アセして貼ってくれ

77:デフォルトの名無しさん
12/02/02 14:24:06.29
>>75
DXEで逆アセのコードを見てみたけど、まずshl 32はシフト命令を使用していない。64bitデータの
左32bitシフトは下位32bitを上位に移動して、下位32bitを0にする、という形に最適化されている。

その上でaがInt64なら範囲チェックなし、UInt64なら範囲チェックあり、というコードが生成されている。
逆じゃね?という指摘はまぁそのとおりのような気もする。

78:デフォルトの名無しさん
12/02/02 16:14:49.32
>>73
>>74
よくわからんがどうしてもDBGridを仲介させたいなら
DBGridを全スクロールさせるとかしかないわな。
俺なら別のクエリで計算させるけど。

79:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/03 11:53:48.51
そういうリストビューコンポーネントを作れば?

81:デフォルトの名無しさん
12/02/03 13:35:10.16
>>79
Checkboxes

82:デフォルトの名無しさん
12/02/03 14:32:57.41
ListViewでいいだろ。

83:デフォルトの名無しさん
12/02/03 14:38:09.78
>>79
すぐできるからやってみろ

84:デフォルトの名無しさん
12/02/04 03:04:32.39
ドモドモ
Checkboxes というコンポーネントかと思って探しまくってました orz
ListView の プロパティCheckboxes を True にするのですね。
これを探してました、ありがとう!

85:デフォルトの名無しさん
12/02/04 23:13:25.01
教えてください。
TProgressBarで、カウントする数字が未確定の場合などに
左右にバーが揺れながら移動するのを見かけたのですが
どのように実現するのでしょうか。
調べたら、TProgressBarには、pbstMarqueeという形式がありますが
pbstMarqueeだと、左から右にブロックが移動しますが
実現したいのは、左右に移動する形式です。


86:デフォルトの名無しさん
12/02/05 03:52:17.11
自前で描画

87:デフォルトの名無しさん
12/02/05 21:22:17.35
gifアニメでいいんじゃないの?

88:デフォルトの名無しさん
12/02/06 22:11:57.85
>>85
ProgressBar1.Position := 0; ~
を ProgressBar1.Max までの範囲で直接増減させたらダメなの?

89:デフォルトの名無しさん
12/02/06 23:21:27.87
読解力に少々問題があるようですね

90:デフォルトの名無しさん
12/02/08 12:59:02.85
脳も左右に揺れております

91:デフォルトの名無しさん
12/02/08 21:38:04.18
むかし、 Knight2000というコンポーネンがあってだな

92:デフォルトの名無しさん
12/02/11 08:56:08.55
XE2 Starterって買ってメリットある?
ジャンプアップで1万引きでproが買えるって話なら、結局払ってる金同じじゃん
それなら、VS2010のProを5万そこそこで買ってる方が得だと思うけど。
もっと安かったら飛びつくのだけどなdelphi。残念。

93:デフォルトの名無しさん
12/02/11 09:45:26.15
貧乏人は麦を食え

94:デフォルトの名無しさん
12/02/11 10:42:43.45
今は麦飯にすると高くつくけどな

95:デフォルトの名無しさん
12/02/11 18:20:08.08
XE/XE2で
tmyclass=class
published
procedure foo;
procedure bar;
procedure baz;
end;
でpublishedなメソッドfoo,bar,bazの一覧を得る方法あったら教えて下さい。
なるべくならRTTIを使った安全な方法でおねがいします。

96:デフォルトの名無しさん
12/02/11 19:02:09.38
Rtti.pas

97:デフォルトの名無しさん
12/02/11 19:54:42.75
TRRIContext.Create
GetTypes(tmyclass)
GetMethods
ToString

こんな流れ

98:デフォルトの名無しさん
12/02/11 20:48:51.65
うまくいきました。ありがとうございます。

publishedかどうかの判定はTRttiMethodのメソッド、プロパティに見当たらなかったので
TMyClass.MethodAddress(Method.Name) <> nil
で判定しました。

99:デフォルトの名無しさん
12/02/12 10:28:04.80
TRttiMemberにVisibilityプロパティあるじゃんかよ。

100:デフォルトの名無しさん
12/02/12 17:11:43.59
じゃあ最初からそう書いてもらえます?

101:97
12/02/12 18:27:05.82
>>99はおれじゃないし。
適切なフォローありがと>>99

102:デフォルトの名無しさん
12/02/13 01:03:13.19
うむ、苦しゅうない

103:デフォルトの名無しさん
12/02/14 18:36:47.26
Delphi6EnterPriseで、ApplicationEventsのOnMessageイベントの中で、
Msg.Message=WM_KeyDownだった場合に、
テンキーのどのボタンが押されたかを判断するにはどうしたらよいでしょうか?
半角入力時の判断は実装済みで、今回は全角入力時の判断を実装します。

104:デフォルトの名無しさん
12/02/14 20:41:53.35
IMEに取られちゃうからうまくいかないんじゃね?

105:デフォルトの名無しさん
12/02/15 00:21:02.67
IMEを自分で直接コントロールすれば、不可能ではないだろうな


106:103
12/02/15 01:09:40.88
AやS等のキーはMapVirtuaklKey(LOBYTE(HIWORD(Msg.lParam)))で判断できました。
ですが、問題はテンキーのどのキーが押されたかどうかが知りたいのです。

107:デフォルトの名無しさん
12/02/15 09:31:37.72
>>104-105を無視して何がしたいの?コード丸ごと書いて欲しいわけ?

108:デフォルトの名無しさん
12/02/15 10:09:32.17
Ex付きのを使うのか、VkKeyScanExあたりを使うのか、Imm系関数を使うのか、
あるいは低レベルフックか、可能性がありそうなのはこのあたりか。
本当はWin32APIスレで聞けっていいたいけど、あそこは既知外に粘着されてて
機能してないからな…。

109:103
12/02/15 11:03:12.67
ImmGetVirtualKey(Handle)で取得したコードで解決できました。
>>104-105 >>107
無視する様な発言をして、すみませんでした。

>>108
ApplicationEventsのOnMessageイベント内で解決したかったので、こちらに投稿してしまいました。
今度からWin32API用スレッドに先に行ってみます。

110:108
12/02/15 11:57:09.73
>>109
> 今度からWin32API用スレッドに先に行ってみます。
やめとけ。このあたりにいるアンチとは比べ物にならないのがもう1ヶ月以上も粘着してんだから。

111:デフォルトの名無しさん
12/02/17 11:25:49.03
コンボボックスのonkeypressに重めの処理書いて123って入力した場合、
321123って表示されてしまう。

これどうすればなおせる?

112:デフォルトの名無しさん
12/02/17 12:08:50.62
コード晒せよ禿

113:デフォルトの名無しさん
12/02/17 23:42:05.97
禿じゃないので諦めます

114:54
12/02/18 03:58:55.01
スカルプって毛生えないらしい、ショックだ
勝手に上書きして欲しいんだろうけど、やめた方がいいよ

115:デフォルトの名無しさん
12/02/20 23:40:39.00
XE2のヘルプの見方がさっぱりわからん

116:デフォルトの名無しさん
12/02/21 09:48:13.70
オンラインヘルプのほうがまだましかも

117:デフォルトの名無しさん
12/02/21 10:31:05.80
ヘルプに文句言う人は、何のことについて調べていたのか書かないよね。

118:デフォルトの名無しさん
12/02/21 13:17:09.07
youtubeでiosアプリの作り方見たんだけど、
macの上でdelphi使ってた見たいなんだけど、
BootCampじゃなくて、仮想なんチャラみたいなので
Windowsを使えばdelphiが使えて、プロジェクトもMacにドロップ
出来るの?

119:デフォルトの名無しさん
12/02/21 13:30:09.86
ヘルプでやたら

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

出てくるんだけど、プロパチィとかイベントのヘルプってほとんど無いじゃない?

120:デフォルトの名無しさん
12/02/21 13:45:56.49
結果はわかったが何を調べたんだ

121:デフォルトの名無しさん
12/02/21 14:19:33.20
>>118
Lazarusだよ。できるよ。

122:デフォルトの名無しさん
12/02/21 17:58:06.15
>>119
ものによる。最近新しく追加されたようなコンポーネントのヘルプは内容がないことが多いな。
ただ右下の"現在のwikiページを表示"で出てくるものもある。

123:デフォルトの名無しさん
12/02/21 20:08:57.07
>>120
何でお前にいちいち報告しないといけないの?

124:デフォルトの名無しさん
12/02/22 08:17:56.24
なおるかもしれないじゃん。

125:デフォルトの名無しさん
12/02/22 12:42:08.04
炎猿とかはヘルプ無いよね?
追加インスコとかするの?

126:デフォルトの名無しさん
12/02/22 12:49:52.23
URLリンク(docwiki.embarcadero.com)

127:デフォルトの名無しさん
12/02/22 21:46:50.31
ヘルプに、説明抜けが多量にあるわけだが。
マラメータの意味がわからんわ。


128:デフォルトの名無しさん
12/02/24 23:46:34.23
StepItすると左からチ○コが生えてくるProgressBarか

129:54
12/02/24 23:53:20.02
XE2持ってるのに、また買えって案内きた

130:デフォルトの名無しさん
12/02/25 00:41:45.77
>>129
この際Lazarusに移行しちゃえば?

131:デフォルトの名無しさん
12/02/25 00:53:40.20
TPanelの上にTImageを置いて
TImageがTPanelの大きさを超えたら(TPanelからはみ出したら)
スクロールバーを出す(スクロールバーではみ出した部分をスクロールできる)ように設計したいんだけど
TPanelのプロパティのどれを使えばいい?

もしかしたら滅茶苦茶なこと聞いてるかも…

132:131
12/02/25 01:21:07.64
追記

TScrollBoxの上にTImage置いて、
TScrollBoxのAutoSizeをTrueにしてもみたけどダメだった。

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

Applicationのメソッドの何かでループの中からソフトの動作を更新(?)すればいいのかとも思うんですが
どんなメソッドを使えばいいんでしょう?
支離滅裂ですが教えて下さい。

134:デフォルトの名無しさん
12/02/25 09:01:59.10
デルファイって、VBのように配列の要素数を超えて
値を入れようとすると、デバッカがエラー出してくれる?

135:デフォルトの名無しさん
12/02/25 09:09:12.03
そういうコンパイラオプションもあるよ

136:デフォルトの名無しさん
12/02/25 09:11:06.91
>>133
Application.ProcessMessages

137:デフォルトの名無しさん
12/02/25 09:12:48.00
>>131
そういう時はTPanelじゃなくてTScrollBoxを使う

138:デフォルトの名無しさん
12/02/25 09:20:07.43
>>135
そうなの。あまり気にせず書けて便利ですね。
ということは、兄弟であるCビルダーも同じってことなの?

139:デフォルトの名無しさん
12/02/25 13:30:35.06
Alt+F4が押されるた時、Formを閉じないようにしたいんです

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

Formのスタイルとかを変える…という方法でも結構ですので
Alt+F4を無効にする方法をお願いします

140:デフォルトの名無しさん
12/02/25 14:50:10.65
>>139

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

試してないが…

141:140
12/02/25 14:51:20.51
Key:=0 だった orz

142:デフォルトの名無しさん
12/02/26 10:09:18.74
>>133 こういうのってWindowsの仕組み自体を知らない人なんだろうな

143:デフォルトの名無しさん
12/02/26 12:19:00.14
これから覚えれば良いこと
所詮、プログラムは知識量

144:デフォルトの名無しさん
12/02/26 13:57:46.54
炎猿 FMX.TCanvasで、角度を持った文字を出力したんいんだが、
FillTextでは無理、CreateFontらしきものも見当たらない、
TBitMapに書いて、自分で座標変換して出力しないといけないのかなぁ

145:デフォルトの名無しさん
12/02/26 17:14:50.87
>>142
超初心者用スレで「この人は超初心者だ」と指摘することにどれだけの意味があるとお考えですか?

146:144
12/02/26 17:44:48.87
自己解決
炎猿 FMX.TCanvasではなく、
FMX.Formなんかで、 TLabelを書きたい位置に貼って(描画時に生成しても良い)
TLabel RotateAngleに角度を代入すれば桶だったわ。

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

炎猿で一瞬でできること、VCLで一瞬でできること、それを違うほうで
やるときに考え方をコロっと変えなければという現実を見て、orz...


147:デフォルトの名無しさん
12/02/27 20:51:12.94
>>145
確かにdelphiは初心者にとって扱いやすくていいのだけど、
やっぱりある程度のことをやろうと思うと、おとなしくCから
学ぶべきなんだろうなと、つい先日林はるひこの本買いました。
精進します。


148:デフォルトの名無しさん
12/02/28 17:41:17.89
精々頑張りたまえ

149:デフォルトの名無しさん
12/03/03 17:36:46.55
TreeViewにおいてツリー状にノードがある場合に
特定のノードからサブ含む子ノード全てにアクセスしたいのです。

再帰関数の書き方がわかりません。
サンプルいただけないでしょうか?

150:デフォルトの名無しさん
12/03/03 20:22:49.74
XE2のIDEでALTキーを押した時に初めて”ファイル”メニューが”ファイル(&F)”と表示されるようになりますが
常時"ファイル(&F)"と表示されるようには出来ませんか。

わかりづらい上にたまに一度ALTを離してからでないと
サブメニューのアクセラレータキーが表示されないことがあって困ってます。

151:149
12/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:デフォルトの名無しさん
12/03/04 16:55:36.85
えっ

153:デフォルトの名無しさん
12/03/05 05:12:05.37
びっ
まっ
よっ
ねーず

154:デフォルトの名無しさん
12/03/05 08:34:59.99
s := 'foo#'#13#10'bar'#1#2#3;
な文字列を
'foo###13#10bar#1#2#3'
のように相互にescape/unescapeしてくれる関数あったら教えて下さい。

155:デフォルトの名無しさん
12/03/05 13:05:28.87
すみません、教えてください。

C#(Visual studio2010 Windowsフォームアプリケーション)で作成したフォームを
DelphiでDLLファイルかTLBファイルから呼び出したいんですが、やり方がわかりません。
どなたか教えていただけませんでしょうか

156:デフォルトの名無しさん
12/03/06 23:25:13.21
本当に済まないと思っているのか。

157:デフォルトの名無しさん
12/03/07 04:24:03.31
痛い。

158:デフォルトの名無しさん
12/03/07 07:53:14.50


   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ     >155  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /


159:デフォルトの名無しさん
12/03/07 10:44:42.00
ぜんぜんDelphiのこと知らないんだけど
Delphi.netってどうなったの

160:デフォルトの名無しさん
12/03/07 11:02:08.20
win7のハンドル調べるツールは何を使っていますか?

161:デフォルトの名無しさん
12/03/07 22:25:43.45
自作

162:デフォルトの名無しさん
12/03/08 12:00:04.20
他作

163:デフォルトの名無しさん
12/03/08 13:31:01.81
与作

164:デフォルトの名無しさん
12/03/08 15:05:05.08
Delphi XE の 「コード」「履歴」「デザイン」タブの「デザイン」タブが
消えて、フォームが見れなくなったんですが、復活させるのは、どうすれば良いのでしょうか?

お願いします。お願いします。お願いします。

165:デフォルトの名無しさん
12/03/08 15:55:50.94
[F12]じゃだめなの?

166:デフォルトの名無しさん
12/03/08 16:08:45.29
環境オプション-VCLデザイナ-埋め込みデザインにチェックついてるとか

167:デフォルトの名無しさん
12/03/08 16:10:06.33
逆だ。チェック外すと昔のIDEようにフォームが独立したウィンドウで表示される。

168:164
12/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 の中身だけ貼り付けたら
「デザイン」タブが消えずに復活しました。

169:164
12/03/08 16:31:28.21
>>166,167
そのチェックは、関係無かったです。

現象としては、「デザイン」タブが、完全に無くなり、
編集画面の左上の3番目のボタン「フォーム/ユニットの切り替え(F12)」ボタンが
Enabled := false みたいに使用不可になって使えませんでした。

170:デフォルトの名無しさん
12/03/08 18:47:12.10
起動時に複数のフォームを表示させるにはどうすればいいですか?

171:デフォルトの名無しさん
12/03/08 20:16:06.54
{$R *.dfm}を消したんじゃね?

>170
メインフォームのOnShowで2つめのフォームを作って表示するか、メインフォームと同様に
2つめのフォームを自動生成にする。

172:デフォルトの名無しさん
12/03/09 01:38:09.26
>>171
ありがとう

173:164
12/03/09 11:06:26.37
>>171
消してないです。まあ、なんとか復活したので良かったです。

174:デフォルトの名無しさん
12/03/12 08:17:33.72
例えば
'dir c:\ /s /b'
という外部コマンドを実行して結果を取得するような
ライブラリって無いですか。

WinExecで'cmd.exe /c dir c:\ /s /b > temp/result.txt'
みたいなことをやってるんですがもうちょっとスマートに(出来ればリアルタイムに1行ずつ)取りたいです。

175:デフォルトの名無しさん
12/03/12 09:30:47.26
FindFirst/FindNext/FindCloseとかそういう話じゃなく?単にコンソールアプリを
起動してその出力を取りたいってこと?それならパイプを使うんだけど、
Delphi コンソール パイプとかで検索してみたら?

176:デフォルトの名無しさん
12/03/12 09:32:11.02
というかそんなのぐぐればすぐ見つかる

177:デフォルトの名無しさん
12/03/12 13:16:11.05
ggrks

178:デフォルトの名無しさん
12/03/12 17:02:58.73
これって毎度ググれとか言う割にまともな実装がひとつもないんだよなw

179:デフォルトの名無しさん
12/03/12 17:13:29.89
>>174
URLリンク(wiki.lazarus.freepascal.org)

180:デフォルトの名無しさん
12/03/13 00:03:34.25
JVCLのTJvCreateProcessとか

181:174
12/03/13 09:37:39.18
有難うございました。

182:デフォルトの名無しさん
12/03/13 13:37:07.10
>>178
ググる能力すらなかったんだね(ニッコリ

183:デフォルトの名無しさん
12/03/13 14:12:44.77
これってssl通信できますか?

184:デフォルトの名無しさん
12/03/13 17:41:33.10
Indy10ならOKでは?

185:デフォルトの名無しさん
12/03/15 21:23:41.09
delphiにプロトタイプ関数ってあるの?

186:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/03/15 23:19:25.62
やっぱりpascalはいいなあ

188:デフォルトの名無しさん
12/03/15 23:32:52.56
>>185
forward宣言ね。

189:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/03/17 05:36:28.34
値型制約はあるけど

191:デフォルトの名無しさん
12/03/17 06:26:37.39
Result := A = B; なんて書き方できたっけ これじゃ戻り値はどうなるの

192:デフォルトの名無しさん
12/03/17 09:09:53.10
>>191
Boolean

193:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/03/17 09:57:24.47
やっぱりpascalはいいなあ
ヘッダファイルいらないし。

195:デフォルトの名無しさん
12/03/17 10:06:49.23
ヘッダファイルがある言語の方が少ないだろ

196:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/03/18 01:29:01.44
refresh とか

198:デフォルトの名無しさん
12/03/18 01:42:58.77
>>197
ありがとうございます。
Invalidateのことでしょうか?
いろいろ置く場所を変えて試してみましたが状況変わらずでした

199:デフォルトの名無しさん
12/03/18 03:27:51.95
>>196
> このstringgridのイベントはプログラム起動時にしか自動で動いてくれないのかな
そんなわきゃない。

StringGrid.RepaintとかInvalidateRect(StringGrid.Handle,nil)とかをComboBoxの
OnChangeで呼び出せ。

200:デフォルトの名無しさん
12/03/18 11:50:50.30
>>199
きたあああああああああああああああああうおっしゃあああ
あざすあざす!

201:デフォルトの名無しさん
12/03/19 07:28:25.51
Windows7のコピーダイアログみたいに
見出し+説明がセットになった大きなボタンの配置されたダイアログって
どうやって作ればいいですか?

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

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

どっちか選んでください。

202:デフォルトの名無しさん
12/03/19 09:15:30.12
URLリンク(edn.embarcadero.com)


203:デフォルトの名無しさん
12/03/19 18:22:00.72
RepaintやRefreshは真っ先に思いついて試すだろ普通・・・

204:デフォルトの名無しさん
12/03/19 18:44:38.76
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。


205:デフォルトの名無しさん
12/03/19 20:28:28.54
>>202
ありがとうございます。これ良さそうです。

206:デフォルトの名無しさん
12/03/20 07:29:38.25
ウィキ作った。
書くの手伝って。
URLリンク(goo.gl)

207:デフォルトの名無しさん
12/03/20 08:22:43.87
>>206
なんかいろんな言語スレに張ってるな。広告収入目当てか?

208:デフォルトの名無しさん
12/03/20 15:39:54.21
>>206
ノートン先生大激怒

209:デフォルトの名無しさん
12/03/20 17:46:37.20
現在のところ
delphiを無料で手に入れることはできるのでしょうか?
入門っていうか、少し興味があり今やっているpythonと同じく勉強してみたいのですが…

210:デフォルトの名無しさん
12/03/20 18:40:54.60
>>209
つLazarus

211:デフォルトの名無しさん
12/03/20 18:57:53.18
>>210
こんなのがあるんですね
なるほどです
Lazarusについていろいろ調べてみます

212:デフォルトの名無しさん
12/03/20 19:44:55.08
>>209
trubo delphi exploreがあるよ。
vclソースももれなくついてくるよ。
フランスかどこかのミラーサイトがあるから入手可能よ。
736ファイルもそこにあるはずだよ。

213:デフォルトの名無しさん
12/03/20 19:58:53.73
>>212
Turbo Delphi 6 Explorerのやつですね
情報ありがとうございます

214:デフォルトの名無しさん
12/03/20 21:42:00.58
このスレで他ツール推めるのもアレだけど
今からはじめるならC# Express検討してみるのがいいと思う。
Win32APIなプラットフォームに拘りがあるならDelphiでもいいとは思うけど。

215:デフォルトの名無しさん
12/03/21 07:58:00.93
C#wwwwwwwwwwwwwwwwwwwwwwww

216:デフォルトの名無しさん
12/03/21 20:21:22.41
結果的に希望のアプリが作れるならC#でもいいじゃない
.NETの仕様に沿って完結できるならそんなに悪いものじゃないよ

217:デフォルトの名無しさん
12/03/21 23:46:06.46
こういうアプリが作りたいという質問じゃないのに
希望のアプリがどうとか言い出す神経がそもそも異常だということを自覚した方がいい

218:デフォルトの名無しさん
12/03/22 00:18:50.00
ちょっと分からないことがあるんですが、教えてください。

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

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



219:デフォルトの名無しさん
12/03/22 00:28:32.83
またエスパー待ちの質問か

220:デフォルトの名無しさん
12/03/22 06:21:47.05
CreateしてんのにFreeしてないとかそういうオチだろ

221:デフォルトの名無しさん
12/03/22 07:04:55.57
100個のpngファイルをロックするアプリケーションか……ゴクリ。。。

222:デフォルトの名無しさん
12/03/22 07:42:22.92
メモリは無限にあるわけじゃないだろ どんだけドカ食いしてるんだよ
メモリリークしてるはずだから確かめてみな

223:デフォルトの名無しさん
12/03/22 12:13:08.52
>>218
最近のなら
System.ReportMemoryLeaksOnShutdown := True;

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

そうじゃなく単に作り過ぎという事なら
自分もファイラーもどきのアプリ作った時Icon作りまくった時にリソース不足でエラーが出たことがあったな。
PNGインスタンスを管理してサイズか個数で制限かけて古いものから自動開放、
必要になったらまた読み込むというのを自動化してくれるキャッシュクラスを作ってみればいいかも知れない。

224:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/03/23 21:10:57.64
y^:=x^;

226:デフォルトの名無しさん
12/03/23 21:30:49.59
^-^

227:デフォルトの名無しさん
12/03/24 01:31:38.44
>>225
失礼。y^:=x^;のタイプミスでした。
しかし、procedureの中の^でエラーになるんです。

228:デフォルトの名無しさん
12/03/24 01:56:39.03
うまくいかないとかエラーになるとか具体的な情報を書こうとしないのは
プログラマに向いていないタイプだな。
どういう風にうまくいかないのかとかエラーはコンパイル時なのか実行時なのか
どういうエラーメッセージが出るとか具体的な情報を書かないと。

229:デフォルトの名無しさん
12/03/24 02:19:35.81
procedure Swap(a, b: PInteger);
var tmp: Integer;
begin
tmp := a^;
a^ := b^;
b^ := tmp;
end;

230:デフォルトの名無しさん
12/03/24 11:07:45.21
varでいいじゃんっていう

231:デフォルトの名無しさん
12/03/24 17:14:12.12
関数宣言の引数の型には、型名(と、いくつかの例外)しか
許さないので、^ は使えない。ポインタは型名で
使用できるようにするためにあらかじめ定義しておく。

232:デフォルトの名無しさん
12/03/24 21:03:51.39
>>231
そうなんですか。
varで充分ことは足りるのですが、
一度やってみます。有難うございます。

233:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/03/24 23:28:47.00
2010でコピペして動かすとリークはしないな

235:デフォルトの名無しさん
12/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.


236:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 04:10:33.28
D7でFireBird2.5とIBXでDBアプリを作っています
コード入力したマスターを参照項目で表示させているのですが
既にマスターに登録されているものについては表示されるのですが
レコードの入力の途中でマスター未登録のものを別画面を開いて登録しても
参照項目で表示されません
どうしたら表示されますか



237:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 22:48:22.80
キャンペーンで配ってる本を買ったんだけど、金をドブに捨てた。

238:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 01:27:27.20
>>236
そういうのはMLで質問するとDB大好きなおじさんたちが嬉々として教えてくれます

239:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 15:42:13.82
データセットを別のデータモジュールあたりに分離させて
両方からそこを見に行けばいいじゃない

240:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 17:05:18.39
参照を更新し直さないと駄目な仕組みだとサーバーに負担掛かるので
過去履歴とかを参照する場合などにしか使わなくなったな。

241:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 14:22:31.00
{$i}は使わないで
MyUtilsA.pas, MyUtilsB.pas, MyUtilsC.pasと複数ファイルに分かれているユニットを
uses MyUtils; だけで利用できるようにするやり方無いですか

242:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 16:28:59.46
// 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.


243: [―{}@{}@{}-] 営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 07:24:05.31
exeと同じフォルダにiniファイルが無いと初回起動とみなすようにしているけど、
デバッグするのにいちいちiniファイルを消すのが面倒なので良い方法を知りませんか?

244:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 09:36:19.10
デバッグ用のIFDEF使うとか
EXEの引数にそれ用のパラメータを用意するとか

245:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 10:43:43.94
[SHIFT]が押されていたら初回起動と見なす

246:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 11:55:26.55
それは嫌です

247:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 12:00:51.65
[CTRL]が押されていたら初回起動と見なす

248:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 12:51:22.88
Post BuildでINIファイルを削除する

249:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 13:28:55.82
例えばLabel1.text := inttostr(random(100));
としてLabel2にも同じテキストを挿入したい時
Label2.text := Label1.text;
よりもスタイリッシュな書き方ってありますか?
或いは1行で2つのラベルに同じテキストを入れる方法とか

250:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 14:23:19.73
>>249
変なとこで悩んでないで次に進め

251:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 14:38:14.98
>>249
ふつうはそれで良し。
繰り返しあるようなら自前で関数つくるべし。
procedure SetLabel(A,B:TLabel; S:String);

252:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 15:59:09.93
>>251
引数が初心者っぽいぞw

253:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:22:28.80
ありがとうございます
確かに掘り下げてもよしない疑問でした

254:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:28:07.80
今時iniファイルなんて使ってんのかよ

255:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 07:41:11.69
xmlってかw編集面倒じゃんw
まさかレジストリなうとかいわねーよなw

256:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 19:25:59.21
iniは標準でメモ帳で開いてくれるけど、xmlはブラウザで開いちまうからな
初心者はその程度でも詰まったりするから、iniの方が使う側も作る側も楽

257:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 19:48:42.92
jsonでいいんでねーの

258:デフォルトの名無しさん
12/04/11 21:54:53.14
ねーわ

259:デフォルトの名無しさん
12/04/11 23:16:17.45
sqliteでいいだろ

260:デフォルトの名無しさん
12/04/11 23:24:46.31
わざわざDLL用意すんのかよw本末転倒だろjk

261:デフォルトの名無しさん
12/04/12 00:08:15.27
Oracleあたりで落ち着こうぜみんな。

262:デフォルトの名無しさん
12/04/12 06:45:26.11
で結局ini以外って何よ

263:デフォルトの名無しさん
12/04/12 07:12:08.90
DOMストレージ

264:デフォルトの名無しさん
12/04/12 09:59:03.48
ini嫌うのってまさに>>249と同じなんじゃねーのw

265:デフォルトの名無しさん
12/04/12 10:31:09.21
スタイリッシュw

266:デフォルトの名無しさん
12/04/12 15:11:30.12
CSV

267:デフォルトの名無しさん
12/04/12 18:12:37.79
ちょっと教えてください。

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

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

よろしくお願いします。

268:デフォルトの名無しさん
12/04/12 18:41:11.15
キャッシュじゃない?
NavigateメソッドでnavNoWriteToCache使ってみるべし

269:デフォルトの名無しさん
12/04/12 19:08:40.44
>>268
ありがとうございます。

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

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



270:デフォルトの名無しさん
12/04/12 21:24:41.01
俺の厚い胸板を騒がしてくれる質問最近ねぇな

271:デフォルトの名無しさん
12/04/12 23:51:51.67
>>270
じゃあ質問。SSE2とかで最適化したいんですけど、どうしたらいいんでしょうか。

272:デフォルトの名無しさん
12/04/12 23:59:41.04
しらん

はい次

273:デフォルトの名無しさん
12/04/13 00:07:48.97
海の水はどうしてですか?

274:デフォルトの名無しさん
12/04/13 02:40:30.22
おとうさん か おかあさん と いっしょ に あたま の びょういん に いこうね

はい次

275:デフォルトの名無しさん
12/04/13 03:25:09.52
URLリンク(twitter.com)
なぜDelphiで作るとかそういう話になるのかな。いまどきDelphiで作ってる人ってほとんどいないだろ。
なぜ世の開発者たちはDelphiから離れていったか、その理由を考えたことあるのかな。単なる生産性の
低さ、開発情報のなさ、開発環境のサポートへの不安からだよ。

276:デフォルトの名無しさん
12/04/13 05:54:05.57
↑著作権違反

277:デフォルトの名無しさん
12/04/13 09:30:39.54
自分の書き込みを転載することも違反かね。すごいもんだね。

278:デフォルトの名無しさん
12/04/13 10:38:49.68
せっかくバカスレがあるんだからそっちでやれ

279:デフォルトの名無しさん
12/04/13 19:14:44.54
>>277
証明できないのに自分の書き込みだと言い張る馬鹿もいるんですね

280:デフォルトの名無しさん
12/04/13 19:35:27.29
サポートの不安wwww

281:デフォルトの名無しさん
12/04/14 01:19:52.57
自身の能力の低さは言うまでも無いから書いてないんだね

282: [―{}@{}@{}-] デフォルトの名無しさん
12/04/14 05:28:33.96
単なる生産性の低さ
開発情報のなさ
開発環境のサポートへの不安

283:デフォルトの名無しさん
12/04/14 07:51:47.51
生産性は抜群だけどねw

284:デフォルトの名無しさん
12/04/14 20:42:08.98
TBitmapってどうしたらコピーできますか?

285:デフォルトの名無しさん
12/04/14 21:00:30.42
新しく TBitmap Create して、Assign

286:デフォルトの名無しさん
12/04/15 21:21:48.69
生産性抜群とか言ってるやつは経験たりないだけ。
昔の自分を見てるようでおまえの立ち位置が見える。

287:デフォルトの名無しさん
12/04/16 07:49:31.34
スレチを繰り返すおまえをみてると
昔の自分を見てるようでおまえの立ち位置が見える。

288:デフォルトの名無しさん
12/04/16 10:18:07.81
Delphiの生産性を否定するやつってグーグルなしじゃ何もできなさそうだよな

289:デフォルトの名無しさん
12/04/16 10:29:39.50
.NET最高厨だろ。DLLヘルに落ちて氏ね

290:デフォルトの名無しさん
12/04/16 11:40:17.20
自分の生産性の低さを道具のせいにする奴は総じてクズ

291:デフォルトの名無しさん
12/04/16 12:47:35.26
まぁくだすれだからってそうくだをまくなよ。
初心者こなくなっちまうぞw

292:デフォルトの名無しさん
12/04/16 14:20:45.24
道具がすべて同じ能力持ってると思ってるのか?どんだけ馬鹿なんだよ。
10年前のPC使って、おまえの能力で最新のアプリを快適に使えるもんなら使ってみろ馬鹿。

293:デフォルトの名無しさん
12/04/16 15:47:17.58
いや、Delphi の能力は最低。

294:デフォルトの名無しさん
12/04/16 16:51:32.08
確かに。Lazarusは最高だけどな。

295:デフォルトの名無しさん
12/04/16 18:51:51.71
10年以上前のPCで流通系の電算室取りしきってるがダメなの?

296:デフォルトの名無しさん
12/04/17 02:46:29.10
>>292
人間としての使えなさと道具の性能は関係ないよ底辺さん^^
何か思い当たることでもあったのかな?^^;

297:デフォルトの名無しさん
12/04/17 09:10:54.36
10年前から何も変わってないような環境をいまだに生産性高いとか言ってるのは
自分が10年前から進歩してないことをアピールしてるだけなんだよ。
エンバカスレにも書いたように不満から新しいものが生まれてくるんだよ。
>>296
自分のレベルの低さアピールしておつかれ^^;

298:デフォルトの名無しさん
12/04/17 10:08:02.69
>不満から新しいものが
C# のことかね。

いやエンバカがわしらの不満を解決してくれると信じている人がまだいるとは噴飯ものでありますな

299:デフォルトの名無しさん
12/04/17 10:38:38.16
何百年たとうがいいものはいい。
ビル信者にはそれが分からんのですよ。
スレチはほっときましょうよ

300:デフォルトの名無しさん
12/04/17 10:40:28.57
         ,,-―--、
        |:::::::::::::;;;ノ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        |::::::::::( 」 <  不満から新しいものが生まれてくるんだよ。
        ノノノ ヽ_l   \______________
       ,,-┴―┴- 、    ∩_
     /,|┌-[]─┐| \  (  ノ
      / ヽ| |  バ  | '、/\ / /
     / `./| |  カ  |  |\   /
     \ ヽ| lゝ    |  |  \__/
     \ |  ̄ ̄ ̄   |
      ⊂|______|
       |l_l i l_l |
       |   ┬    |


301:デフォルトの名無しさん
12/04/18 00:36:46.33
なんか今の流れをブッちぎるようで申し訳ないけど

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

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

訳あって、機能の一部をまったく別アプリにしたいので
よろしくお願いします。


302:デフォルトの名無しさん
12/04/18 00:48:51.76
アプリBのウィンドウをアプリAのウィンドウの子供にする

303:デフォルトの名無しさん
12/04/18 01:04:55.99
>>302
さっそくありがとうございます

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

同じアプリ内だとParentプロパティを使ったことあるけど、
アプリ同士の親子って、何をどう操作するんですか?


304:301
12/04/18 01:33:12.49
いろいろ調べてみたけど、下で議論してるようなことかな...

URLリンク(www.delphipages.com)
URLリンク(forum.tuts4you.com)

自分にはちょっと難しいかも...

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

そのままだと多分[ALT]キーでシステムメニューは表示出来るので
移動・サイズ変更・終了など出来ないようにしないといけないですが。

306:デフォルトの名無しさん
12/04/18 02:28:13.56
>>305
ありがとうございます。


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

URLリンク(www.mombu.com)

これがうまく機能しなかったら、>>305さんの方法でと思ってます。


307:デフォルトの名無しさん
12/04/18 11:38:35.12
この手の質問良くあるけど、そいつらって
自分が作ってるものがどう使われるか知ってて開発してんの?

308:デフォルトの名無しさん
12/04/18 11:45:45.51
まだいたのかスレチ君

309:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/19 01:35:54.66
Unit2.pas を親側のプロジェクトに加えることを忘れずに

311:デフォルトの名無しさん
12/04/19 02:09:19.58
それアプリじゃなくてフォーム分けてるだけでしょ
アプリを分けるって書いてあるんだけど、日本語読めない?
それともアプリやフォームっていう基本的な用語の意味が理解できてない?

312:デフォルトの名無しさん
12/04/19 04:16:21.77
もっとはっきり目的を書けよ。
なにが訳あって別アプリにしたいだよ。
どうせネトゲの自動化とかだろw

313:デフォルトの名無しさん
12/04/19 12:20:35.16
くだすれと知ってて聞いてるなら答えは「無理」
本気ならMLかフォーラムに逝け

314:デフォルトの名無しさん
12/04/19 12:32:33.86
もう終わってるのにいつまで言ってんのお前ら

315:301
12/04/19 16:23:47.87
えーーっと

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

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

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

で結局、次スレのようにしました。


316:301
12/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:デフォルトの名無しさん
12/04/19 17:15:26.11
だからここは超初心者用
お前が来るところではない

318:デフォルトの名無しさん
12/04/19 19:28:47.53
というかゲームなんかやること自体が人生の無駄遣いなんだから
仮にゲームでの不正目的でももともと無駄なものを取得しただけだから二重に無駄だよ

319:デフォルトの名無しさん
12/04/19 23:14:07.34
Formのことをアプリと呼んでる人がいる(笑)

320:デフォルトの名無しさん
12/04/20 09:11:36.88
>>317
そうだな、お前みたいな馬鹿では>>316みたいなソース貼られても頭悪くて理解できないもんな

321:デフォルトの名無しさん
12/04/20 10:00:53.97
お前はなんで超初心者に絡んでるんだ?

322:デフォルトの名無しさん
12/04/20 10:28:45.87
超初心者だらけのスレなんてなんか意味あんの?

323:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/20 11:50:36.15
ウルトラマンセブンとは古いな

326:デフォルトの名無しさん
12/04/20 16:58:57.09
>>322
お前よりは意味あるんじゃねw

327:デフォルトの名無しさん
12/04/21 01:16:08.47
じゃあ俺が超初心者の質問するよ。
interface ってbuilderでいうヘッダファイル?
delphiはなぜヘッダファイルがないの

328:デフォルトの名無しさん
12/04/21 01:51:05.44
>>327
>delphiはなぜヘッダファイルがないの
あります。
命令文は {$INCLUDE filename}です。

329:デフォルトの名無しさん
12/04/21 13:55:58.39
それヘッダじゃないよね
馬鹿なのかな

330:デフォルトの名無しさん
12/04/21 14:51:12.24
>>329
>それヘッダじゃないよね
{$INCLUDE filename}はヘッダに書くことも可能です。

DelphiとC++ではヘッダファイル(インクルードファイル)の使用用途がまったく同じという訳ではないですが
だからといって、Delphiにヘッダファイル(インクルードファイル)が無いということにはならないでしょう。

331:デフォルトの名無しさん
12/04/21 16:03:12.02
DelphiにC/C++でいうヘッダファイルはない。ヘッダファイルがない理由はusesで他のユニットの
interface部の内容を取り込む仕様だから。
$I($INCLUDE)はそのファイルの内容をその行に置き換えるという、Cの#includeと全く同じ意味を
持つが、言語仕様の差から同じ効果をもたらすわけではない。

332:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/21 18:15:54.72
>>332
いろいろ教えて下さりありがとうごうざいます。
でも私327は331ではありませんので
そういうつもりはありません。

334:デフォルトの名無しさん
12/04/21 18:16:13.68
そもそもCもヘッダファイル必須じゃねーし。
質問自体がおかしい。

335:デフォルトの名無しさん
12/04/21 18:18:13.15
何度も同じこと書くの面倒だからまとめましょぐらいの意味しかないから
>328が正解

336:デフォルトの名無しさん
12/04/21 19:12:53.00
やめて~ わたしの美貌を巡って争わないでぇ

337:デフォルトの名無しさん
12/04/21 19:15:26.61
>>333
>でも私327は331ではありませんので
そうなんですか、すみませんでした。

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

DelphiはINCLUDEがあるのに何故Unitを使うのか?
Unitを使った場合のメリット・デメリットや特徴は何か?

338:デフォルトの名無しさん
12/04/21 19:34:10.10
いつのpascalから$include指令があったん?

339:331
12/04/21 20:28:13.46
多分1から

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

> 解答を用意しているということは、これは質問ではなく自分の知識を自慢したいのですか?
> それなら、ここは初心者のスレなので正確な質問と解答を書いた方がいいですよ。
自分以外がみんな敵に見えるのは病気だよ?ちなみに>>327-330は俺じゃないから。

340:デフォルトの名無しさん
12/04/21 21:13:35.87
このすれ超初心者しか閲覧禁止らしいから仕方ないよ

341:デフォルトの名無しさん
12/04/21 21:32:00.64
>>340
そんなこといわないで。
経験豊かなオジサンたちが、delphi初心者にやさしく教えるスレなんだから。
素晴らしい言語であるdelphiを若手に広めるのが目的じゃないか。

342:デフォルトの名無しさん
12/04/22 12:05:28.58
delphiもそうだったけれど大抵の言語のinclude文は単なるコピペなので、 ビルドスクリプトで
perl,pythonとかをサーバーから呼んで生成してからかますと結構手抜きができる。定数に日付
入れたり、クラス名にユニークな名前入れたり 特定条件でプロパティ変えたりとか

343:デフォルトの名無しさん
12/04/22 14:53:13.82
FM関係のドキュメントが一杯出たんだって。
少しずつでも読まないといけないなー。積読・宿題が山積みー



344:デフォルトの名無しさん
12/04/22 15:07:45.51
読む前に最初にやる事は、Delphi/FMに将来があるかを考えることだと思う。

345:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/22 16:09:36.16
馬鹿には無理

347:デフォルトの名無しさん
12/04/22 16:32:15.41
>>345
おかしい質問にはおかしい答えしか出ない。
もうやめとけ。

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

あなたの言っているのは、プログラムをUnit形式を使ってファイル分割したあと
またそれをINCLUDEを使ってファイル分解する場合の事です。

350:デフォルトの名無しさん
12/04/22 19:56:14.01
以後、放置でおながいします

351:デフォルトの名無しさん
12/04/23 03:49:48.83
馬鹿と馬鹿が争うほど醜いものはないな

352:デフォルトの名無しさん
12/04/23 07:38:34.18
一般の方はご存知無いやろうけど、青い銀行のATMの処理の結構な部分はDelphi6時代の
コードが今も利用されてて、ボーランド以降転々とする母屋のせいでライセンスとか保守とかが
極めて問題になっとる…らしいよ


353:デフォルトの名無しさん
12/04/23 08:51:40.58
おーい
くだすれに長文は不要
初心者を遠ざけるだけ

354:デフォルトの名無しさん
12/04/23 09:07:02.73
>>352
Lazarusで書き直せばいいやん

355:デフォルトの名無しさん
12/04/23 09:17:06.23
>>352
転々って…1回しか変わってへんがな
ライセンスは引き継がれてるし

356:デフォルトの名無しさん
12/04/23 10:06:24.03
ボーランドそのものが開発に参加していたのならともかく、Delphi は開発ツールでしかないしな。
どうすればライセンスとか保守に影響が出るのかがわからん。

だいたい Delphi6時代ってことは10年以上昔なわけで、逆に10年問題を先送りにしていた方が問題じゃないのか?

357:デフォルトの名無しさん
12/04/23 17:38:04.51
そんなのこの業界じゃ日常なんだけどw
10年ならむしろ緩いだろw

358:デフォルトの名無しさん
12/04/23 17:41:15.63
そりゃ未だにWin2k使ってるところもあるんだしな。
アプリなんかそれ以上に古いの使ってて当たり前だろう。
趣味じゃないから機能満たして安定してれば何も問題ない。

359:デフォルトの名無しさん
12/04/23 17:55:53.80
素人はそれでもいいんだろうけどね > 358
ハードウェア追加になった時に OS どうするの?買えるの?コピー?
ハードが追加にならないとしたら、安定して問題もないのなら、どうやって食っていくんだ???

360:デフォルトの名無しさん
12/04/23 17:58:59.63
という矛盾を普通に抱えているのがこの業界です

361:デフォルトの名無しさん
12/04/23 18:01:34.07
ですよねー

362:デフォルトの名無しさん
12/04/23 22:11:03.66
思考停止、乙。

363:デフォルトの名無しさん
12/04/23 22:50:50.86
>>362
素人はそれでもいいんだろうけどね

364:デフォルトの名無しさん
12/04/23 23:02:18.07
古いOSはダウングレードできないこともない。

365:デフォルトの名無しさん
12/04/24 00:22:17.35
まあ、いまだにPC98使ってるとこもあるぐらいだから。

366:デフォルトの名無しさん
12/04/24 02:48:23.98
XE1を使ってます。
フォルダの選択するためにはググったら SelectDirectory を使うと良いとありました。
SelectDirectory を使うには uses 節に Filectrl を記述すべきとあったのでコンパイルしてみると
 「[DCC 警告] Unit2.pas(7): W1005: ユニット 'FileCtrl' は特定のプラットフォームに固有のものです」
と出るのが気になります。この表示を消すにはどうすれば良いのでしょうか?

367:デフォルトの名無しさん
12/04/24 03:14:00.92
>>366
Windows固有機能を使って、機能が実装されているので、他OSでは動かないよという警告。
他OSに移植しないなら、気にする必要はない。

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

またはプロジェクトオプションで、Delphiコンパイラのヒントと警告から、ライブラリ依存のユニットの警告をFalseにする。

368:デフォルトの名無しさん
12/04/24 08:42:58.03
2007のIDEの環境設定に関して教えてください。

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

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

既存のVCLのコンポーネント郡の様に、エディタで自動検索はされるけどコンパイル対象には
ならないようにするにはどのように設定したら良いのでしょうか?


369:デフォルトの名無しさん
12/04/24 09:33:21.28
できません。
方法はあるのでしょうが未公開です。

370:デフォルトの名無しさん
12/04/24 15:26:06.97
dcpのパスは?

371:デフォルトの名無しさん
12/04/24 16:56:56.87
Delphi7でUINT64定義するのやっぱ無理?


372:デフォルトの名無しさん
12/04/24 18:26:25.72
どう定義するかによる

373:368
12/04/24 21:06:32.96
>>370
dcpの出力パスは意識してなかったのでデフォルトだったのですが、
[ライブラリパス]にコンパイルしてみましたが動作は変わりませんでした。


374:デフォルトの名無しさん
12/04/24 22:03:22.20
>>368
ReadOnly

375:デフォルトの名無しさん
12/04/25 00:44:03.93
シンボリックな情報は、.dcu にもあるが、パッケージにした場合、
.dcp を使う。というか、逆にアプリケーションからは
パッケージの .dcu を見えないようにしておく。

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

ところで、デバッグのトレースとかで、
パッケージの関数の中に入っていけるの?

376:デフォルトの名無しさん
12/04/25 03:35:31.14
>>368
>プロジェクトに組み込んであるのですが、
まず、プロジェクトから外したら?
まっ、それでも再構築したらdcuは更新されるけど。

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

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

それでも、どうしてもdcuを更新したくないのなら
Delphiインストール先のlibにdcuをいれ
ソース(pas)は\source\Win32\rtl\winとかに入れたら。

377:デフォルトの名無しさん
12/04/25 04:02:06.94
初心者には厳しいなぁ。

378:デフォルトの名無しさん
12/04/25 09:15:19.42
素人はそれでもいいんだろうけどね

379:デフォルトの名無しさん
12/04/25 16:02:30.93
手持ちのXE2だとおそらく期待通りの動作をしている。

380:デフォルトの名無しさん
12/04/25 18:35:29.40
素人はそれでもいいんだろうけどね

381:デフォルトの名無しさん
12/04/25 20:59:29.00
さすが玄人は違うな

382:デフォルトの名無しさん
12/04/25 21:54:33.64
delphiは玄人も使うのかい?
ぼくは初心者の言語だと思っていた。

383:デフォルトの名無しさん
12/04/25 22:49:23.07
初心者の言語って???
どの言語だろうが最初は初心者に決まってるだろ
訳わからんことおっしゃる

384:デフォルトの名無しさん
12/04/26 06:22:08.51
初心者に優しい言語って意味だろ

385:デフォルトの名無しさん
12/04/26 14:30:49.72
バブゥ語

386:デフォルトの名無しさん
12/04/26 14:48:45.12
言語は優しいがスレは厳しい

387:デフォルトの名無しさん
12/04/26 15:21:46.36
>>385
タラちゃんにしか分からない超難解言語じゃないか

388:デフォルトの名無しさん
12/04/26 19:52:57.82
どうやって食っていくんだ???

389:デフォルトの名無しさん
12/04/28 01:09:01.87
新スレ立ってるよ

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

Embarcadero RAD Studio/Delphi/C++Builder その2
スレリンク(tech板)

390:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/28 11:06:19.05
出てくるのおせーよw

392:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/29 21:11:44.95
XE2だとWASP周りのInterfaceは定義されてます?

394:デフォルトの名無しさん
12/04/29 21:12:32.61
WASAPIだった

395:デフォルトの名無しさん
12/04/29 21:31:00.70
なさそうですね

396:デフォルトの名無しさん
12/04/30 00:17:45.61
そうですか

シコシココンバートしますわ

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

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

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

何か他に良い方法がありましたら教えていただけないでしょうか。

398:デフォルトの名無しさん
12/04/30 14:11:47.51
>>397
URLリンク(wiki.freepascal.org)

399:デフォルトの名無しさん
12/04/30 17:36:12.42
>>398
ありがとうございます。
Lazarusというものを初めて使ってみました。

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

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

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

AProcess.CommandLine := 'cmd';

で起動させた後、dirコマンドを打つとかがしたいです。

400:デフォルトの名無しさん
12/04/30 17:55:45.33
> C#だと
> ProcessStartInfo g = new ProcessStartInfo();
> みたいなのを作って操作できるようなんですが、
これが思い違い。

401:デフォルトの名無しさん
12/04/30 17:58:53.97
分からないならレスしなくていいです

402:デフォルトの名無しさん
12/04/30 18:10:14.15
400が正解。ProcessStartInfoは関係ない。
他のウィンドウにキー入力を送るとかその辺の問題。
できなくはないがプログラムとしては三流でキモイ

403:デフォルトの名無しさん
12/04/30 18:38:58.17
(別プロセスの)アプリケーションを操作…
という時点でDelphi言語やVCLかどうかではなく
Windowsのセキュリティに関連する知識が必要と思われ
くだすれレベルではない。

404:デフォルトの名無しさん
12/04/30 19:13:17.80
>>399
ども、私も初心者ですが、検索してみたところ、パイプでの入出力に対応しているならば、
パイプというのとWriteFileというWIN32APIを使えば可能なようです。
パイプとかWriteFileで検索すれば、使用方法が見つかると思います。

405:397
12/04/30 20:05:21.96
みなさんありがとうございます。
GalateaTalkというフリーの音声合成エンジンがあって
URLリンク(mahoro-ba.net)
これを利用する場合、コマンドで

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

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

>>404
ありがとうございます。
WriteFile検索してみます。

406:デフォルトの名無しさん
12/04/30 21:31:45.30
どう見てもパイプです本当にありがとうございました

407:デフォルトの名無しさん
12/04/30 21:45:41.63
別プロセスといっても、子プロセスに限っては例外ってことで。


408:デフォルトの名無しさん
12/04/30 23:13:26.15
パイプつなげてdirした結果を受け取ればいいんでしょ
「anonymous pipe」でググって勉強せぇ

409:デフォルトの名無しさん
12/04/30 23:28:03.86
JCLあたりでそんなのがあったような

410:397
12/05/01 07:22:01.82
みなさん、ヒントいろいろ、ありがとうございます。

411:デフォルトの名無しさん
12/05/01 07:53:33.57
動かしてみた感じだと結果は同じなんですが
Memo1.Lines.Clear; と Memo1.text :=''; の違いって厳密には
どう違うんでしょうか?

412:デフォルトの名無しさん
12/05/01 08:02:06.04
>>411
ソースみなよ

413:デフォルトの名無しさん
12/05/01 09:05:22.89
そんなレスする暇があったら自分で調べて教えてくれればいいのでは?

414:デフォルトの名無しさん
12/05/01 10:09:48.48
厳密にはっつうことなら自分でソースを追ってみたほうがいいのでは?
デバッグ版DCU使う設定にしてF7(ステップイン)で。

415:デフォルトの名無しさん
12/05/01 11:37:28.86
>>413
ここにソース上げろってかwwwwwwwwwwwwwwwwwwwwwww
非常識すぎるだろwwwwwwwwwwwwwwwwwwwwwwwwwwww
嫌なら完成したバイナリの比較でもしろw

416:デフォルトの名無しさん
12/05/01 12:06:05.19
>>412 ソース
Memo1.Lines.Clear;
Memo1.text :='';
同じなんですね

417:デフォルトの名無しさん
12/05/01 12:26:46.55
初心者的にはどっちでも結果は同じだからそれでいい
TMemoを行ごとに扱うならLines.Clearを勧める

418:デフォルトの名無しさん
12/05/01 14:50:25.57
>>417
初心者的にはって実際に同一のコードが呼ばれてるけど?
頭悪くない?

419:デフォルトの名無しさん
12/05/01 15:25:17.22
学生でもない初心者がDelphiはじめようとすると最低いくらくらいお金かかるの?

420:デフォルトの名無しさん
12/05/01 16:01:45.97
>>418
>同一のコードが呼ばれてるけど?
この違いわかる?
Memo1.Lines.Clear;
Memo1.Lines.text :='';
Memo1.text :='';

>頭悪くない?
自虐的自己紹介乙

421:デフォルトの名無しさん
12/05/01 16:03:06.25
>>416
Memo1.text :='';の方がいろいろないみで速度が遅いかもね
正確にはバイナリ比較して見なければわからンけど

422:デフォルトの名無しさん
12/05/01 16:09:41.36
>>419
Delphi XE2 Starter Edition という奴で、2万弱でしょう。

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

かつては無償版の Delphi もあり、僕も最近まで常用していたのですが、
開発環境の OS を Windows7 に移したところ使えなくなったので、
仕方なしに恐る恐る FPC+Lazarus に移行してみましたが、
不足に感じるところはありませんでした。

423:デフォルトの名無しさん
12/05/01 16:24:51.13
初心者相手にコード検証までしてニヤニヤしてる
>>418 がキモイ


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