くだすれDelphi(超初心者用)その47at TECH
くだすれDelphi(超初心者用)その47 - 暇つぶし2ch2: ◆XcB18Bks.Y
08/06/24 16:25:01
<関連スレ>
【Delphi】 Indyコンポーネント 【C++Builder】
スレリンク(tech板)
Delphi初心者のための寺子屋
スレリンク(tech板)
delphiで作った有名ソフトって何があるの?
スレリンク(tech板)
Delphi持ってるならGLSceneを使え
スレリンク(tech板)
【Delphi互換!?】FreePascal【GPL】
スレリンク(tech板)

【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
スレリンク(gamedev板)
Delphiでアクションゲームが作りたい!! Part2
スレリンク(gamedev板)
ネットワークゲーム作成のお勉強(Delphi専用スレ)
スレリンク(gamedev板)
delphiでMMO
スレリンク(gamedev板)


3:デフォルトの名無しさん
08/06/24 17:17:38
前すれの
>>995さん~
さんくすです。
Formatというのがあったんですね。
printfとは書式が違うみたいですが、とりあえず無事に文字列に変換できました。


4:デフォルトの名無しさん
08/06/24 20:28:48
1乙ー

5:デフォルトの名無しさん
08/06/24 21:32:28
>>3
うるせ馬鹿
馴れ馴れしく話しかけんな

6:デフォルトの名無しさん
08/06/24 21:40:09
病んでるなぁ

7:デフォルトの名無しさん
08/06/24 23:21:12
Delユーザっておかしいのが多いよね

8:デフォルトの名無しさん
08/06/24 23:23:22
質問です
当方デルファイ7を使用しているのですが
やはり、WIN Vistaでは 動かないのでしょうか
.NETじゃないから ダメですかねぇ
実際 Vistaに、のせたら 「ザワールド!!」
・・・と言うかんじでした

9:デフォルトの名無しさん
08/06/25 00:13:14
あてずっぽだけど、互換モードで起動してみたら?

10:デフォルトの名無しさん
08/06/25 00:33:50
あるんすか?

11:デフォルトの名無しさん
08/06/25 00:36:54
やってみうます

12:デフォルトの名無しさん
08/06/25 00:51:01
ショートカットを右クリック→プロパティね。

13:デフォルトの名無しさん
08/06/25 08:24:15
>>8
馬鹿ジャネ

14:デフォルトの名無しさん
08/06/25 12:18:56
Delユーザっておかしいのが多いよね

15:デフォルトの名無しさん
08/06/25 13:47:59
VB や VC++ を選ばない時点で

16:デフォルトの名無しさん
08/06/25 17:27:16
賢い

17:デフォルトの名無しさん
08/06/25 17:40:41
>>8
Delphi7 Vistaで検索してみると
いくつか対応すれば基本的にはうごくっぽい。

18:8
08/06/25 19:31:47
BDE使ってるせいか?
ピクリとも動きませんでした・・・
プロパティからXp Sp2とか選んで
チャレンジしたんですけどねえ

ググッテきます

19:デフォルトの名無しさん
08/06/25 19:49:18
BDEならUAC

20:デフォルトの名無しさん
08/06/25 20:08:09
BDEか… 使ってないせいか、ガンガン動いてます。

21:デフォルトの名無しさん
08/06/25 20:10:42
>>19
ヒント アリース^^

22:デフォルトの名無しさん
08/06/25 22:02:32
>18
BDEか。忘れてたよ。
URLリンク(support.codegear.com)

23:デフォルトの名無しさん
08/06/25 22:39:31
>>22 もサンクス

24:デフォルトの名無しさん
08/06/26 00:12:31
>>18
お前がバカだからだよ

25:デフォルトの名無しさん
08/06/26 13:33:42
推奨NGEx:馬鹿|バカ

26:デフォルトの名無しさん
08/06/26 22:29:38
それじゃあエンバカデロの話題もNGになってしまうのでは?

27:デフォルトの名無しさん
08/06/28 00:55:39
フサー
delphiworld消えたんで祝祭日カレンダーコンポーネント 2000をどっかにうpしておくれ

28:デフォルトの名無しさん
08/06/28 01:16:23
そういうの作者に無断で配布してよいのだろうか?

29:デフォルトの名無しさん
08/06/28 08:55:06
以下のコードがありまして、Button1をクリックするとStringGridのセルが
両方とも00になります。なんででしょう?

procedure TForm1.Button1Click(Sender: TObject);
var
H : Byte;
S : string;
begin
H := $FF;
SetLength(S,2);
BinToHex(@H, PChar(S),1);
StringGrid1.Cells[1,1] := S;

H := $00;
BinToHex(@H, PChar(S),1);
StringGrid1.Cells[1,2] := S;
end;

30:デフォルトの名無しさん
08/06/28 09:01:21
BinToHexの方を晒してくれないと

31:デフォルトの名無しさん
08/06/28 09:43:02
Stringの参照カウンタが悪さしてるのか変なことになるな。

StringGrid1.Cells[1,1] := Format('%02X', [$FF]);
するか固定バッファで
var buf: array[0..2] of Char;
BinToHex(@H, @buf, 1);
buf[2] = #0;
StringGrid1.Cells[1,1] := buf;
にした方がよさげ

32:デフォルトの名無しさん
08/06/28 12:43:39
こうなのか?
procedure BinToHex(Buffer, Text: PChar; BufSize: Integer); assembler;
@Hでコンパイルエラーが出そうですけど。

33:デフォルトの名無しさん
08/06/28 17:42:34
環境書き忘れてた。BinToHexはDelphi7のClassesに実装されてる手続きです。
ちなみに2回目のBinToHexの前でSetLengthしたら正常な値になりました。
なんか変だけど、こんなもんなのかな。

34:デフォルトの名無しさん
08/06/28 18:17:29
IntToHexを使用しない理由は?StringではなくPCharを操作する関数は意味がわかるまで
使わないほうがいいと思うけど。

35:デフォルトの名無しさん
08/06/28 18:47:59
>>34
>>29のコードは具体的にどこが間違ってる?

36:デフォルトの名無しさん
08/06/28 20:43:33
BinToHex(@H, @S[1],1);

37:デフォルトの名無しさん
08/06/28 22:45:24
>35
や、だからそういう質問が出る間はPChar系の関数はやめとけって意味だ。

UniqueStringかなんかで文字列実体の参照カウントが1になるようにしとけ。

38:デフォルトの名無しさん
08/06/29 09:19:57
>>35
間違ってるというか、コンパイラは BinToHexで Sが変更されたのが判らないので
Cells への代入の後複製を作らないで、そのまま実体を次のBinToHexに渡してしまう

>長い文字列型の変数はポインタであるので,2 つ以上の変数が追加のメモリを
>使用することなく同じ値を参照することができます。

という特性の為、
StringGrid1.Cells[1,1] と StringGrid1.Cells[1,2] が結果として同じポインタを指してしまう。

>添字付けを使って文字列の中にある 1 文字の値を変更するときは,
>文字列値の参照カウンタが 1 より大きい場合にのみ,
>文字列値のコピーが作成されます。これは書き込み時コピーと呼ばれます。

39:デフォルトの名無しさん
08/06/29 09:55:35
>>35
お前あたま悪いな

40:デフォルトの名無しさん
08/06/29 10:15:10
みなさん、色々アドバイスありがとうございます。長い文字列の代入や変更は
参照カウンタを使って管理していること、PCharの型キャストの意味などを理解
していないまま使っていました。38さんの回答や以下のサイトを参考に
何となくですが分かりました。
URLリンク(kakinotane.s7.xrea.com)

41:デフォルトの名無しさん
08/06/29 12:54:31
ああ、そういうことか。
Cellsもstring型だから、同じsを指すわけね。

42:デフォルトの名無しさん
08/06/29 18:14:42
しかしDelphi布教といっても開発部門売却って...
しかも新Verは初心者には高い値段だし...
もう初心者お断りのプロ用のツールしかし企業には相手されていない
そんな言語に成り下がってしまった感じがするよ
思うに販売戦略を間違った方向にいっちゃったんだね
Del使いとしては悲しすぎる

43:デフォルトの名無しさん
08/06/29 18:57:25
スレ違い。をっちゃスレへどうぞ。

44:デフォルトの名無しさん
08/06/29 23:05:22
5Pro を使い続けている俺は勝ち組。

45:デフォルトの名無しさん
08/06/29 23:09:59
ちょっとまった新Verおいくら?
怖くて調べれないYo

46:デフォルトの名無しさん
08/06/29 23:17:09
Proは68000で据え置きじゃ?

47:デフォルトの名無しさん
08/06/29 23:27:54
ただで配っちゃえばいいのに

48:デフォルトの名無しさん
08/06/30 00:03:02
それだと儲からないということを6で学んだのだろう。


49:デフォルトの名無しさん
08/06/30 02:50:08
D8で儲かることを学んだのかよ? Turbo Explorer の意味は何?

50:デフォルトの名無しさん
08/06/30 05:13:27
必死だな

51:デフォルトの名無しさん
08/06/30 10:12:55
何でこのおっさんたちはスレタイが読めないの?

52:デフォルトの名無しさん
08/06/30 12:20:18
ガキばっかりだな

53:デフォルトの名無しさん
08/06/30 13:57:30
最初はPro高いかもしれんけど、バージョンアップは3万くらいだよな。
3万って、この業界じゃ日給程度かそれ以下だし、そこまで騒ぐほど高いもんでもないがなあ。

54:デフォルトの名無しさん
08/06/30 18:49:41
desktop databaseを使ってhoge.dbを作ったのですが、これに関連付けするために
tableのプロパティでtablenameにhoge.dbと入力してdbgridに表示させることはできました。

hoge.dbはc\programfiles\commonfiles\borlandshared\dataに置いておかないとダメなようで
tablenameのところにたとえば./hoge.dbと相対パスを書いてみてもだめでした。

配布をする際にexeファイルと同じ場所にdbがあっても読み込めるようにするにはどうしたらいいのでしょうか

55:デフォルトの名無しさん
08/06/30 20:32:40
enter押しても改行できなかったり、space押しても文字が消えてしまうのはどうにかなりませんか。

56:デフォルトの名無しさん
08/06/30 21:32:33
>>54
exeファイルのディレクトリを指定してみたら?

>>55
意味が分からん

57:デフォルトの名無しさん
08/06/30 21:39:39
自己解決しました
sry

58:デフォルトの名無しさん
08/06/30 22:24:46
誰だよお前w

59:デフォルトの名無しさん
08/06/30 23:51:55
Insertですね

60:デフォルトの名無しさん
08/07/01 00:24:37
>>56
プロジェクト→オプション→ディレクトリ/条件
ですかね;見てるんですがそれっぽいのがない希ガス

61:デフォルトの名無しさん
08/07/01 00:36:45
>>60
いやそうじゃなくてExtractFilePathにApplicationのExeNameを指定してそんでhoge.dbの先っちょにくっつける

62:デフォルトの名無しさん
08/07/02 09:38:15
質問したいんですけど
ShellListView を使うとフロッピードライブが必ずガガガって鳴るんで ShellCtrls.pas の中の
どの部分を変更すると鳴らなくなるか解かりますか?

63:62
08/07/02 10:27:52
すいません ShellTreeView の方でした

64:デフォルトの名無しさん
08/07/02 13:15:25
>>62
フロッピー殺すほうが楽だぞ。

65:デフォルトの名無しさん
08/07/02 20:35:02
FDDの電源抜きっぱなしだから知らなかった

66:デフォルトの名無しさん
08/07/02 23:02:33
>>64
そうですか、やっぱり難そうなのであきらめます
ありがとうございました

67:デフォルトの名無しさん
08/07/03 00:17:37
外部アプリを操作したいんですが
ShellExecute(Handle, 'OPEN', 'C:\Program Files\EmEditor\EmEditor.exe', nil, nil, SW_NORMAL);
Sleep(1000);
hndl :=FindWindow(nil,'無題 - EmEditor');
Edit4.SelectAll;
Edit4.CopyToClipboard;
Sleep(500);
SendMessage(hndl, WM_PASTE , 0, 0);
Sleep(500);
SendMessage(hndl, WM_KEYDOWN, 32, 0);
Sleep(100);
SendMessage(hndl, WM_KEYUP, 32, 0);
Sleep(500);
SendMessage(hndl, WM_PASTE , 0, 0);
WM_PASTE はできるのにWM_KEYDOWNができません

68:デフォルトの名無しさん
08/07/03 00:20:30
つ keybd_event

69:デフォルトの名無しさん
08/07/03 00:46:25
>>68
ありがとうございます
出来たのはいいのですが>>67ではいけないのでしょうか?

70:デフォルトの名無しさん
08/07/03 05:13:54
>>69
PostMessageならできるかも。

71:デフォルトの名無しさん
08/07/03 17:44:08
>>69
くれくれカスしんでいいよ

72:デフォルトの名無しさん
08/07/03 18:01:19
出来ない理由を知りたいと思うのはいいことだと思うが

73:デフォルトの名無しさん
08/07/03 18:16:37
俺もそう思う

74:デフォルトの名無しさん
08/07/03 18:33:30
じゃあ俺も

75:デフォルトの名無しさん
08/07/03 19:42:12
オレもそう思うが、ただ、じゃ何でSendMessageで出来ないか
少しは調べりよ 投稿の時間的に みたいなことじゃね? 言い方は幼いが

76:デフォルトの名無しさん
08/07/03 21:56:07
出来ない理由がわからないから聞きに来たんじゃね?

77:デフォルトの名無しさん
08/07/03 22:03:36
調べるためにここに来てるんだろうしな

78:デフォルトの名無しさん
08/07/04 00:56:51
あくまでも、EmEditor側の処理方法による。

79:デフォルトの名無しさん
08/07/04 02:20:47
何にしてもlParamの値くらいちゃんとしたの設定しろと
本題には関係ないと思うけどな、ボク調べる気ありません感まるだしだ

80:デフォルトの名無しさん
08/07/04 07:02:36
ここは超初心者用だお
自分で何やっているのかさえ分からずに質問している人もいるレベル


81:デフォルトの名無しさん
08/07/04 08:14:34
煽り、文句レスの方が訳わかんね。
答えれないならスルーして黙ってろと。

82:デフォルトの名無しさん
08/07/04 08:52:14
ageて暴言だけ吐くだけ奴くらいパターン検出してスルーしてくれよ

83:デフォルトの名無しさん
08/07/04 16:53:43
CPUのクロック数を出来るだけ正確に計測するにはどうすればいいのでしょうか?
Jane Styleのバグレポートは毎回同じ数値を出しますが、起動時に測った数値を表示しているだけでしょうか?

84:83
08/07/04 17:49:03
すみません、自己解決しました

85:デフォルトの名無しさん
08/07/04 20:44:56
いいけど
現象、原因、影響、対策、要因、作りこんだ理由、防げなかった理由、
再発防止策、などなど晒してくれるとウレシイ

86:デフォルトの名無しさん
08/07/04 20:59:29
おとこわりだ!

87:デフォルトの名無しさん
08/07/04 21:05:57
男割り・・・?ウホッ

88:デフォルトの名無しさん
08/07/05 05:26:04
>>83
自己解決したら、あとの人のためにももしかしたら協力して調べてくれた人のためにも、
解決法を書いていきましょうや

89:デフォルトの名無しさん
08/07/05 05:52:44
CPUネタはスレちがいです

90:デフォルトの名無しさん
08/07/05 06:34:09
    __      _____  r―‐┐┌―┐         _     厂|       __厂|__
  / ∠___,  |______ | /_/7 /  7 厂| | く\     ||      | |       |__  __|
  l   ___  |         | | _/ 〈_ L/ [_|   ヽ」┌─┘└─┐  | |    _ |__  __|
  | |___| | ____| | | 口 口 | /Z_冂_ 〈\.└─┐┌┐│  | ヽ__/ | /┌┐ _ \
  l   ___  | |         | | 口 口 l〈_,r┐┌┘ \/__| L_」 |_ \__/ ヽ、二__ノ  ヽ/
  | |___| | | | ̄ ̄ ̄ ̄ |┌ー┐|┌ ┘└┐   |__  ___|  厂|      _厂|__
  l   ___  | | |         ||   ||└ ┐┌┘  / 〉   / \      | |    └┐┌─┘
  | |___| | | ヽ____/| ||   ||   | |   / /  //\ \__  | |_,ノ|    | | l二二l
  l______| ヽ_____ノ |.」   [__|   |_.」  く_/ く_/   \_ノ  ヽ__/   ∠_/ l二二l

91:デフォルトの名無しさん
08/07/05 08:19:33
Delphi使いは馬鹿って本当なんですか?

92:91
08/07/05 08:20:05
すみません、自己解決しました

93:デフォルトの名無しさん
08/07/05 08:59:20
まさに思うツボwww


94:デフォルトの名無しさん
08/07/05 14:54:13
つーかJane Styleって書いてあるんだから、CCPUID
使ってるだけだろ
URLリンク(www.cafe-au-lait.info)



95:デフォルトの名無しさん
08/07/05 16:12:37
変な奴が別板から湧いてるな。

96:デフォルトの名無しさん
08/07/05 17:50:36
>>94 キモイ


97:デフォルトの名無しさん
08/07/05 18:14:49
変な奴が別板から湧いてるな。

98:デフォルトの名無しさん
08/07/06 17:27:53
delphinoIDEのタブ順序の設定みたいに選択した部分をクリックやドラッグで上下に移動するのは
どうやって作ればいいですか。


99:デフォルトの名無しさん
08/07/06 22:26:28
delphi6のエディタの行番号はどうすればでてきますか?

100:デフォルトの名無しさん
08/07/07 23:04:31
>>98
なんだ、その頼み方は?
お前はまともな礼儀も習わなかったのか?
バカヤロ。

101:デフォルトの名無しさん
08/07/08 11:33:18
>>98
設計中ではなく、実行中に動的にやりたいという事?
もしかして、こういう事がやりたいのかと、delWikiから消えていたので再upした
URLリンク(delwiki.info)

>>99
自分のアプリに行番号表示した編集窓を付けたいの?
TEditor とか エディターコンポを入れるといいと思うよ

102:98
08/07/08 19:55:58
>>101
ありがとうございます。
有るリストの中身の順番を手動で任意に設定したかったのです。
DBからリストを読み込んでGRID形式で表示して表示順のインデックスフィールドの
値を任意に変えるのをあのタブ順の変更のような形でやりたかったので。


103:デフォルトの名無しさん
08/07/09 00:41:21
>>102
クソ野郎、そんなお礼の仕方があるか。


104:デフォルトの名無しさん
08/07/09 01:07:00
どうしたんだ?ん?
また職場で嫌なことがあったのか?

105:デフォルトの名無しさん
08/07/09 08:46:05
>>103
お、おまえも裏口先生なのか?

106:デフォルトの名無しさん
08/07/09 10:43:04
>>104
親に働けと言われたんだろう

107:デフォルトの名無しさん
08/07/09 11:01:04
推奨NGEx:クソ野郎|馬鹿|バカ|どうしたんだ?

108:デフォルトの名無しさん
08/07/09 13:46:01
お兄ちゃんたち、宿題もってきたよ。
私のために解いてね。

配列を使ったプログラムで、Editに入れた数字をButton1を押すごとにMemo1に追加していって
ある程度追加したところでButton2を押すとその数字に応じた長さが棒グラフのようにPaintBoxに表示される
プログラムを作りなさい。

お願い!

109:デフォルトの名無しさん
08/07/09 14:35:25
TXPToolBarMenuってどこにあるんでしょうか・・・
ググったらbagelという専ブラのコントロールのようだと分かったんですが、
そのソースを見てもさっぱり分かりません・・・
ComCtrlsXP.pasというユニットが見つからないのでそれにあるのかな?
こいつもググっても出てこないんですがこれはどこにあるんでしょう・・・

110:デフォルトの名無しさん
08/07/09 15:37:32
>>109
Geckoタブブラウザ Bagel その6
スレリンク(software板)
このスレに行ってbagelの作者さんに聞いてみたら?

111:98
08/07/09 21:11:42
D7でQuickReportで帳票を作っています
プレビュー画面で印刷ボタンを押すとすぐに印刷が始まってしまいますが、印刷先を変えたり、
一部ページだけ印刷したいときに、うっかり全部印刷してしまうのが悲しいので、印刷ボタンを
押したら、印刷設定のダイアログを出して変更出来るようにしたいのですが、どうすればいいでしょうか。


112:デフォルトの名無しさん
08/07/09 21:15:21
適当に作ったら巧くいかんかった上に配列使ってなかった。
配列定義してみたが使ってないことに気付かなかった。
明日も早いし良い感じで酩酊してきたんでもう寝る。
酒入ると何がしたいのかサッパリになるねぇ。

type
TMySharp = class
FColor : TColor;
Fx1,Fx2,Fy1,Fy2 : Integer;
constructor Create(memo:TMemo;line:integer);
procedure Draw(TargetCanvas:TCanvas);
end;

113:デフォルトの名無しさん
08/07/09 21:16:55
constructor TMySharp.Create(memo: TMemo; line: integer);
var
dc : THandle;
tm : TTextMetric;
begin
dc := GetDC(memo.Handle);
try
GetTextMetrics(dc, tm);
Fx1 := memo.Left+memo.Width+1;
Fx2 := Fx1+StrToInt(memo.Lines[line])*2;
if line = 0 then
begin
Fy1 := Memo.Top;
Fy2 := Memo.Top+10;
end else
begin
Fy1 := Memo.Top+(tm.tmHeight*line)-(line*6);
Fy2 := Fy1+10;
end;
FColor := $99FF66;
finally
ReleaseDC(memo.Handle,dc);
end;
end;

114:デフォルトの名無しさん
08/07/09 21:18:14
procedure TMySharp.Draw(TargetCanvas: TCanvas);
begin
TargetCanvas.Brush.Color := FColor;
TargetCanvas.RectAngle(Fx1,Fy1,Fx2,Fy2);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
if TryStrToint(Edit1.Text, i) then
Memo1.Lines.Add(Edit1.Text);
Edit1.Clear;
end;

115:デフォルトの名無しさん
08/07/09 21:19:19
procedure TForm1.Button2Click(Sender: TObject);
var
MySharp : TMySharp;
i,j,k : Integer;
ArryInt : Array of Integer;
begin
try
j := Memo1.Perform(EM_GETFIRSTVISIBLELINE,0,0);
SetLength(ArryInt, Memo1.Lines.Count-j);
k := Memo1.Lines.Count-j;
for i := j to j+k-1 do
ArryInt[i] := StrToInt(Memo1.Lines[j+i]);
for i := j to j+k-1 do
begin
MySharp := TMySharp.Create(Memo1,i);
MySharp.Draw(Canvas);
end;
Finally
freeandnil(MySharp);
end;
end;

116:デフォルトの名無しさん
08/07/09 21:57:37
俺が悪かった
>>108お願いします。

117:116
08/07/09 21:58:30
あ、すいません。
>>112-115
ありがとうございました。

118:デフォルトの名無しさん
08/07/09 23:04:32
メモから配列に入れるルーチンと、
配列からグラフを描画するルーチンを分けるといいかも。

119:116
08/07/09 23:15:44
var n : integer;
a : array[1..20] of integer; // 長さ 20 の配列の宣言
Edit1.Clear; Edit1.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject); // データの入力 //
begin
Memo1.Lines.Add(Edit1.Text);
n := n + 1; // n を 1 ふやし,
a[n] := StrToInt(Edit1.Text); // Edit1 に入力された整数を
// 配列 a[n] にしまう
Edit1.Clear; Edit1.SetFocus;
end;
procedure TForm1.Button3Click(Sender: TObject); // 棒グラフの作成 //
var i : integer;
begin
with PaintBox1.Canvas do
begin
??
?? 問 2: 以下の作業を,i = 1 から n まで,
?? n 回繰り返す ( for 文 または repeat 文,while 文を用いる)
??
?? 作業:
?? i の値に応じて x 方向に位置をずらしながら,
?? a[i] に対応する高さの細長い長方形を描く
??
end;

Edit1.SetFocus;
end;

end.
こんな感じなのですが・・・

120:116
08/07/09 23:16:14
問い2の部分がわからない;

121:デフォルトの名無しさん
08/07/09 23:38:19
>>119
上がよくわからんが 配列a はグローバル変数かクラスのフィールドだよな?
だとして、

問2:
for i := 1 to n do
 DrawRectangle(i, a[i]);

こんな感じかな?DrawRectangle の中身は適当にかけばいいと思う。

はいつぎの質問

122:デフォルトの名無しさん
08/07/10 00:28:58
procedure TForm1.Button1Click(Sender:TObject)
begin
  Memo1.Add(Edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
I,Y:Integer;
  R:TRect;
begin
PaintBox1.Canvas.Brush.Color := clRed;
  R := Rect(0,0,0,4);
  for I:=0 to Memo1.Lines.Count-1 do
  begin
    R.Right := StrToInt(Memo1.Lines[I]) * 5;
    PaintBox1.Canvas.FillRect(R);
    OffsetRect(R,0,4);
  end;
end;

123:デフォルトの名無しさん
08/07/10 00:37:06
>>110
ありがとうございます
聞いてみます

124:デフォルトの名無しさん
08/07/10 19:49:28
tifファイルを開くにはどうしたらいいでしょうか。

125:デフォルトの名無しさん
08/07/10 20:04:28
こじ開ける

126:デフォルトの名無しさん
08/07/10 20:14:40
>>124
reset

127:112
08/07/10 20:26:38
出題した方スマン。
全然見当違いの解答やった。
おまけにメモスクロールするとエラー出るし。

128:デフォルトの名無しさん
08/07/10 23:05:46
TurboDelphi Interbase7.5 WindowsXP Nod32ファイアウォール付
Interbase自動起動に失敗します。
起動時にシステムトレイに入りかかるんだが、消えてしまう。
interbase7.5 managerの設定では、自動起動、「InterBaseをWindowsサービスとして起動する」
のチェックははずしてある。
でもなんで「InterBaseをWindowsサービスとして起動する」とするとサーバーにログインできないんかね。
なぜかIBCosoleではInterBaseがWindowsサービスでも接続できるんだが、
ほかでは、BDEはだめだし、設計時にも接続できないんだよね。

129:デフォルトの名無しさん
08/07/11 21:34:23
>>109>>123
Windows XP Theme Manager
URLリンク(www.soft-gems.net)

130:109
08/07/12 02:28:37
>>129
ありがとうございます
しかしTheme Managerのすべてのプロパティをオンにしてもメニューがボタンぽくなってしまいます
自分で描画しようと思うのですが、TMenuItemがポップアップされているか確認するにはどうすればいいんでしょうか?

131:デフォルトの名無しさん
08/07/12 04:11:56
TurboDelphiとMicrosoftのVisualStudio(VB or C#)は共存できますでしょうか?
両方入れたいのですが、大丈夫かどうかご教示ください。

132:デフォルトの名無しさん
08/07/12 08:18:00
問題なし。
かち合うのはインストール時の標準のデバッガの上書きをし合うくらいだろう。

133:デフォルトの名無しさん
08/07/12 19:37:49
delphi 2007って安定してますか?

134:デフォルトの名無しさん
08/07/12 20:05:35
どういう意味で?IDEは普通に動くけど、終了時にたまにコケる程度。

135:デフォルトの名無しさん
08/07/12 20:11:35
>>134
2006が一番安定してるって聞いたことがあるので2007はどの程度なのかと思い質問させていただきました。
参考になりました

136:デフォルトの名無しさん
08/07/12 20:29:41
そういう意味では2007オススメ。2006より問題が少ない。

137:デフォルトの名無しさん
08/07/12 20:45:30
>>136
体験版あるみたいなので使ってみようと思います。
ありがとうございました。

138:デフォルトの名無しさん
08/07/12 20:48:20
もしこの先Vista以降の環境で使う予定があるなら2007にしとくのが無難かな。
ガリレオ以前のIDEはVistaだと挙動がかなりやばい。

139:デフォルトの名無しさん
08/07/12 21:27:57
質問です デルファイ7です
すっごく前から気になっていたんですが
デルファイのプロパティのキャプション(NAME?)
をコピーして、エクセルに貼り付けしようとすると

object なんたらかんたら size なんたらかんたらって
でるんですけど、これ何とかならないですか

たとえば LblHoge をコピーして張り付けると LblHogeだけの
コピーが欲しいのに上記のように長ーい呪文みたいのが付いてくるんです
回避する方法ありますか知っていたら教えてください

140:デフォルトの名無しさん
08/07/12 21:31:12
コピー元が間違ってる。オブジェクトインスペクタのCaptionの値のところでコピーしないと駄目。
今のやり方で何がコピーされてるのかはメモ帳にでも貼り付けてみりゃわかるだろ。

141:デフォルトの名無しさん
08/07/12 22:06:09
ではNameをコピーするにはどうすればいいんでしょうか
仕様書を作る時
captionもnameも(captionは日本語でnameは英語)
必要なんです^^;
いちいち編集するんです・・よね?



ちなみに
いま7環境ないんで試せないんで
デルファイのターボで試したら
どちらも(caption ,name)も普通にコピーできた!

142:デフォルトの名無しさん
08/07/12 23:29:22
>>130
TToolBar.Flat

こういうのもある
SpTBXLib
URLリンク(club.telepolis.com)

143:140
08/07/12 23:48:05
>141
> 今のやり方で何がコピーされてるのかはメモ帳にでも貼り付けてみりゃわかるだろ。

144:109
08/07/13 00:12:40
>>142
ありがとうございます
TMenuBarでテストしたのでそれはないです
SpTBXLibも使ってみたんですが、なんだか変だったり、常時XPスタイルっぽかったりして使いづらいです

自分で描画するのはメニューを出してる時に青くならないのに目をつぶれば行けるんですが
完璧主義っぽいところがあるので許せないんですよね・・・

145:デフォルトの名無しさん
08/07/13 00:45:11
>>140 そうですか・・・

146:デフォルトの名無しさん
08/07/13 02:32:46
>>144
たぶんプロパティの設定を間違ってるか、何か勘違いしているかどちらかだろう
好きにすれば?

147:デフォルトの名無しさん
08/07/13 08:33:20
>>138
Delphi6製のGUIアプリとか、Vistaだとラベルが真っ白になったりするよな
アレ何なんだろう

148:デフォルトの名無しさん
08/07/13 11:18:07
manifestリソースだけで無理矢理視覚スタイル適用してるため。

TGroupBoxなど、VCLは非標準的方法で描画しているコントロールが結構あるんで
そういうところ対策していないと表示がおかしな事になる。

149:デフォルトの名無しさん
08/07/13 11:34:51
もういっそのこと開き直るしかない

150:デフォルトの名無しさん
08/07/13 14:19:54
>>144
エンコードはShift_Jisで
URLリンク(web.archive.org)

ZIPの尻が1byte欠けてるのでバイナリエディタでNull足せば
どのアーカイバでも開けると思う

151:デフォルトの名無しさん
08/07/13 15:32:42
>>148
thank なるほどなあ

152:109
08/07/13 17:16:46
>>150
そこにキャッシュされてたんですか・・・
ありがとうございました!

153:デフォルトの名無しさん
08/07/15 19:45:27
gifをTGIFImageで読んで、TBitmapにCanvas.Drawで描画したいんですが、なぜか描画されないようです
TImageだと描画できるのに何ででしょうか?
OnCreateの中だと無理なんでしょうか

154:デフォルトの名無しさん
08/07/15 21:54:30
空っぽのビットマップだからとか?
いずれにせよエスパーが必要な質問はやめれ。

155:デフォルトの名無しさん
08/07/15 22:36:14
TBitmapに描画したあと、OnPaintでFormのCanvasに描画しないとダメだよ。

156:131
08/07/15 23:06:03
>>132
遅レスですが、ありがとうございます。
両方入れてみましたが、とりあえず問題ありません。

157:デフォルトの名無しさん
08/07/16 00:48:29
>>154
偉そうに、バカのくせに。

158:153
08/07/16 11:16:22
こんな感じなんですけど・・・
この例のようにファイルが1つだけならいいんですが、
今やりたいのは2つ以上あるファイルを起動時に読み込みたいんです
procedure TForm1.FormCreate(Sender: TObject);
var
Gif: TGIFImage;
Bmp: TBitmap;
begin
Gif := TGIFImage.Create;
Bmp := TBitmap.Create;
try
Gif.LoadFromFile('Gifファイル.gif');
Bmp.Canvas.Draw(0,0,Gif);
Bmp.SaveToFile('Bmpファイル.bmp');
finally
Gif.Free;
Bmp.Free;
end;
end;

159:デフォルトの名無しさん
08/07/16 11:46:58
>>158
Gif.LoadFromFile('Gifファイル.gif');
Bmp.Width := Gif.Width; //追加
Bmp.Height := Gif.Height; //追加
Bmp.Canvas.Draw(0,0,Gif);

試してないけど、こうすればできるかも。

160:デフォルトの名無しさん
08/07/16 11:55:03
>>158
assignはBmpの大きさ設定不要だけど、Drawは>>159

161:153
08/07/16 14:52:41
>>159,160
そうだったんですか、ありがとうございました

162:デフォルトの名無しさん
08/07/16 22:32:03
ListView のカラムをクリックで
ListView1.AlphaSort と
Compare:=CompareText(Item1.SubItems[(Colum-1)],Item2.SubItems[(Colum-1)]); を
使ってソートしてるんです。
でも、半角や全角ひら漢字はちゃんと並ぶんですけど
全角英数カナが変な並びになってしまうんです。
SortType は色々ためして見ましたけど結果は同じでした。
もし解決方が有ればお願いします。

163:デフォルトの名無しさん
08/07/16 22:34:31
つAnsiCompareText

164:162
08/07/16 23:06:54
>>163
出来ましたw
そんな便利なのがあったんですね、本当にありがとうございました。

165:デフォルトの名無しさん
08/07/17 13:01:05
>>164
うるせーこのあほう

166:デフォルトの名無しさん
08/07/17 19:20:48
推奨NGEx:クソ野郎|馬鹿|バカ|どうしたんだ?|あほう

167:デフォルトの名無しさん
08/07/17 19:26:05
>>165
デレツンですね、わかります。

168:デフォルトの名無しさん
08/07/17 21:41:07
デレツンじゃなくヘルメンです

169:デフォルトの名無しさん
08/07/17 22:50:47
ツンデレQA大人気

170:デフォルトの名無しさん
08/07/19 01:09:37
labelって半角文字はワードラップしてくれないんですか?
してくれる方法があれば教えて下さい。

171:デフォルトの名無しさん
08/07/19 02:19:52
WordWrap=Trueにすれば普通にできるはずだが
聞き方からするとワードラップじゃなくて、単語の途中で改行させたいのか?

172:170
08/07/19 02:37:49
単語の途中というかaaaaaaa
aaaaaaaaaaaaaaaaaaaaa
見たいな感じにしたいんです

やり方は、WordWrap=Trueにして、メモのChangeのイベントで
label1.Caption:=memo1.Text; でMemo1に入力すると
全角は上手く端っこで改行するんですけど
半角がそのまま、aaaaaaaと言う風に、まっすぐ通り過ぎて行くんです。
ちなみにメモの方はちゃんと半角でも上手く改行してくれるんです。

173:デフォルトの名無しさん
08/07/19 04:06:48
つまりそういうことでしょ。英語は単語間の空白で改行する(=ワードラップ)のがお約束、
ずっと空白が現れなければ改行できないから横にはみ出る。

どうしても空白のないところで改行したかったら自分で#13#10入れるしかない。
入れる場所を探すにはGetTextExtentExPoint使えば一発だけど
わからなかったらTextWidthで1文字ずつ増やしながら幅を測って探す。
幅を測る時にはCanvasにフォントを設定しとくのを忘れずに。

174:デフォルトの名無しさん
08/07/19 04:59:23
TMemoで色変えたりEnabled := Falseとかで代用できないか

175:170
08/07/19 05:00:17
>>173
そうでしたか、なんか勘違いしてたみたいです。
試しにやってみたら空白で改行出来ました。
教えて貰った通りに、色々挑戦してみようと思います。
夜分眠いのにも関わらず、どうもありがとうございました。
またいつかお世話になりますw

176:170
08/07/19 05:14:39
>>174
それも良いですね、じゃあlabelで無理そうだったらTMemoで代用してみます。
どうもありがとうございました。

177:デフォルトの名無しさん
08/07/19 11:20:05
TMessageの宣言でcase分が使われていますがこれはどうなっているんでしょうか
ヘルプ読んでみたけどさっぱり・・・

178:デフォルトの名無しさん
08/07/19 11:36:29
同じアプリ間の
TreeView1.Items.Assign(TreeView2.Items);
にあたることを、違うアプリのツリービュー同士で行いたいのですが
どうやったらできるのでしょうか?
コピー元のアプリも自作のものなので、何か必要な
情報があれば取れると思いますが

素人考えでポインタを違うアプリで参照とかやってみたんですがだめなんすね・・

179:デフォルトの名無しさん
08/07/19 12:32:41
>>177
共用体のPasacal特有の宣言方法。同じ記憶領域を違った方法でアクセスするため。

180:デフォルトの名無しさん
08/07/19 12:35:08
>>178
「共有メモリ Delphi」でググッってみる。

181:デフォルトの名無しさん
08/07/19 12:46:06
>>179,180
なるほど、ちょっと分かりました
でもcase Integer of・・・ってどうやって分岐出来てるんですか?
ここが一番分からない・・・

182:178
08/07/19 12:55:00
>>180
ありがとうございます!
早速調べてみます。

183:デフォルトの名無しさん
08/07/19 13:31:09
>>181
分岐するんじゃなくて、構造体の中のメモリの領域をどちらの方式のフィールドでも
アクセスできるようにするただの宣言形式だと、了解すべし。

184:デフォルトの名無しさん
08/07/19 13:55:25
>>183
ああ、なるほど
TMessage.wParamに代入するのとTMessage.wParamHiにHIWORD、TMessage.wParamLoにLOWORDを代入するのとを
同じにするためなんですね
確かに便利かも
ありがとうございました

185:デフォルトの名無しさん
08/07/19 17:52:47
クイックレポートのサマリーってDBテキストをおけば自動計算してくれるんですか?
今現在Forループで計算してるんですけどよく考えたらサマリーって名前が付いてるのに
自動で計算してくれないなんておかしいような気がして・・・

186:デフォルトの名無しさん
08/07/19 17:56:48
失礼しました ^^;
質問です
クイックレポートのサマリーってDBテキストをおけば自動計算してくれるんですか?
今現在Forループで計算してるんですけどよく考えたらサマリーって名前が付いてるのに
自動で計算してくれないなんておかしいような気がして・・・

実際DBテキスト置いても出来ないんですよね
やり方がまずいのか・・・・

187:デフォルトの名無しさん
08/07/19 20:05:37
なるほど

188:デフォルトの名無しさん
08/07/20 00:38:18
ターボデルファイ(無料版)にクイックレポート追加できるのでしょうか
コンポーネント追加は有料版と聞いたので諦めていたのですが
どうなんでしょうか?

189:デフォルトの名無しさん
08/07/20 00:40:45
買え

190:デフォルトの名無しさん
08/07/20 01:04:55
【統一教会】文鮮明の乗ったヘリが韓国の山中に不時着
スレリンク(news板)
,==============、
| .__     /:::::::::|   ロH  ヨ メッコール
|(一和)  /:::__:::::|    ̄」  己
| . ̄ ̄   /:::::| |:::::|
|     /:::::::L二l| メッコールは大麦エキスと世界三大名水のひとつチョヂュン鉱泉水から
|     /::/二丶:::| 生まれ、ビタミンが豊富に含まれたまったく新しいタイプの健康飲料水です。
|    /::::| l___l |:::| ┌──────────┐
|     /::::::ヽ─:::::::| |・品    名 :炭酸飲料                     |
|   /:::/.二l:::::::./| |・原 材 料 :糖類(砂糖,果糖ぶどう糖液糖).. . |
|   /:::::l l_:::::::/ | |           .大麦エキス,酸味料,香料,ビタミンC |
|  ./_:::::_ヽ─': / /| |          ナイアシン,ビタミンB2,ビタミンB1  |
| /| ヽ/ .|,__::::/ コ | |・内 容 量 :250ml                     |
| /:|_lヽ/l_(二/ .ッ | |・製造年月日:缶底に記載                 |
|/:::::::::::::::: ̄/ .メ  | |・原 産 国 名:大韓民国                   |
|::::::::::::::::::::::/    | |・輸 入 者 :株式会社ハッピーワールド     . |
|::::::::::::::::::::/    | └──────────┘
ヽ============〃 ※なお、日本版の缶には、「あき岳はりサイクルへ(空き缶はリサイクルへ)」という誤植がある。

191:デフォルトの名無しさん
08/07/20 03:45:02
気になって起きたらまともなレスがねええええええええ

192:デフォルトの名無しさん
08/07/20 21:39:23
何時間放置するつもりだ・・・・

193:デフォルトの名無しさん
08/07/20 21:52:37
3連休だぜ、ゆっくり休めよ。

194:デフォルトの名無しさん
08/07/21 14:07:06
デスクトップのアイコンも何もないところがダブルクリックされた
というメッセージをとらえるにはどうやったらいいのでしょうか?
TApplicationEventsのOnMessageでWM_LBUTTONDBLCLKをとらえてはみたんですが、
アプリ上でしかとらえなくって・・

195:デフォルトの名無しさん
08/07/21 14:25:57
>>194
windows様に「お願えでございますだおらのアプリ以外のメッセージも全部通知してくだせえ」と嘆願しる

196:デフォルトの名無しさん
08/07/21 14:37:54
>>195
田舎侍ゆえ
そのお願いの作法を是非にお教えくざされたも


197:デフォルトの名無しさん
08/07/21 15:22:06
例えばここのHook.lzhとか
URLリンク(homepage1.nifty.com)

198:デフォルトの名無しさん
08/07/21 17:34:06
CodeGearっていつのまにか、エンバカデロって会社に買収されてたんだな。
しかし、会社名にバカってつけちゃだめだろ、バカは。

199:デフォルトの名無しさん
08/07/21 20:05:55
>>198
古っ

200:デフォルトの名無しさん
08/07/21 20:27:30
MSとかオラクルとかSUNに売られたりして

201:194
08/07/22 01:48:44
>>197
レス遅くなりましたがありがとうございます。

202:デフォルトの名無しさん
08/07/22 20:51:43
>>194
デスクトップはごく普通のリストビューコントロールで、当然ウィンドウハンドルとかも持っている。
グローバルフックとかでメッセージ横取りすれば検出できると思うよ

203:デフォルトの名無しさん
08/07/23 02:57:18
>>201
おせーよ、チンカス野郎

204:デフォルトの名無しさん
08/07/23 16:12:54
ごみ箱が空かどうかチェックしたいんですけど、このやり方だとうまくいきません。
URLリンク(www.swissdelphicenter.ch)

OS XP SP2
D6 Personal


205:デフォルトの名無しさん
08/07/23 22:07:54
どううまくいかないのか詳しく。

206:デフォルトの名無しさん
08/07/24 00:16:33
>>205
URLリンク(www.swissdelphicenter.ch)
こちらで成功しました。

>>204のは中身があっても空でもemptyになっていました。
ども、、、

207:デフォルトの名無しさん
08/07/24 01:31:42
>>206
二度と来るなバカヤロ


208:デフォルトの名無しさん
08/07/24 06:08:30
function GetMyDocFolderPath: string;
var
PIDL: PItemIDList;
PATH: array[0..MAX_PATH-1] of Char;
begin
SHGetSpecialFolderLocation(Application.Handle, CSIDL_BITBUCKET, PIDL);
SHGetPathFromIDList(PIDL, PATH);
Result:=PATH;
end;

ごみ箱のパスが取得できません。

209:デフォルトの名無しさん
08/07/24 07:19:40
>>208
ごみ箱は仮想フォルダなのでパスは取得できない
IShellFolder2インタフェースを使ってごみ箱内のファイル名等を取り出すことは出来る
ごみ箱のファイルに直接アクセスできるかどうかは知らない
URLリンク(www.codeproject.com)

210:デフォルトの名無しさん
08/07/24 18:39:58
>>209
それではなくて
C:\RECYCLER\S-1-5-21-1234567890-123456789-123456789-1234\
というようなログインユーザーに対してのパスが知りたいんです。
FindFirstで取得できるんですが他のユーザーのまで拾っちゃうんです。

211:デフォルトの名無しさん
08/07/24 21:17:02
>>210
最初に書けよ
SIDならこの方法で調べることが出来る
URLリンク(msdn.microsoft.com)(VS.85).aspx
ConvertSidToStringSidで変換して使えばよし
ファイルが追加されたかどうか監視するだけなら>>209にサンプルがある

212:デフォルトの名無しさん
08/07/25 00:42:06
無料で印刷する環境そろえるには何がお勧めですか
クイックレポート有料らしいので
皆さんの1押し教えて蔵際

213:デフォルトの名無しさん
08/07/25 00:45:10
TPrinter

214:デフォルトの名無しさん
08/07/25 00:48:26
Delphi 2007とか最近のやつのユーザならQRはただで使えるが?
とはいえTPrinterだな。

215:デフォルトの名無しさん
08/07/25 01:05:56
>>214
ターボデルファイなのでQRは駄目では・・・

216:デフォルトの名無しさん
08/07/25 01:44:14
>>211
㌧。 できました。
いい勉強になります。

217:デフォルトの名無しさん
08/07/25 07:17:48
>215
後出しイクナイ。TPrinterで。

218:デフォルトの名無しさん
08/07/25 22:33:13
みなみけの見すぎ。

219:デフォルトの名無しさん
08/07/25 22:48:34
ポップアップメニューについて質問です。
複数のボタンに、1つのポップアップメニューを設定しています。

この中のどれかのボタンを右クリックしてポップアップメニューが立ち上がった時、
ポップアップメニュー内のイベントハンドラで
「どのボタンから呼び出されたか」を知りたいのですが、どうすればいいでしょうか?

// このように設定しています。
button[0].popupMenu := popupMenu1;
button[1].popupMenu := popupMenu1;
button[2].popupMenu := popupMenu1;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
 // ここで「呼び出し元のボタン」を知りたい
end;

よろしくお願いします。

220:デフォルトの名無しさん
08/07/25 22:55:17
>>219
Sender.Name

221:219
08/07/25 23:04:24
Sender.Nameだとエラーになってしまいます。
(メッセージは「TObjectはNameという名前のメンバを含んでいません」です)

ShowMessage(Sender.ClassName)で見てみると、TPopupMenuと表示されます。


222:デフォルトの名無しさん
08/07/25 23:11:09
あ-
SenderはTComponentにキャストしといてね

223:219
08/07/25 23:17:56
>>222
型キャストしましたが、同じくTPopupMenuのようです。。

224:デフォルトの名無しさん
08/07/25 23:25:34
case TButton(Sender) of
Button1: ShowMessage('Button1');
Button2: ShowMessage('Button2');
Button3: ShowMessage('Button3');
Button4: ShowMessage('Button4');
end;

225:デフォルトの名無しさん
08/07/25 23:29:10
試したらSenderはPopupMenuになってるね
PopupMenu1->PopupComponent使うといい

226:デフォルトの名無しさん
08/07/25 23:31:27
void __fastcall TForm1::PopupMenu1Popup(TObject *Sender)
{
  ShowMessage(PopupMenu1->PopupComponent);
}

227:219
08/07/25 23:38:53
>>225-226
できました!
Senderと思いきや、popupComponentだったんですね。ありがとうございます!

228:デフォルトの名無しさん
08/07/25 23:47:26
なんというBCB
いや今はECB?

229:デフォルトの名無しさん
08/07/26 13:58:48
CCBぢゃないか?
これはこれで懐かしい匂いがするが

230:デフォルトの名無しさん
08/07/26 14:14:35
いやBBQだろ

231:デフォルトの名無しさん
08/07/26 14:18:19
NEC
IBM
CCB
TKC
ISB
CSK
CIA
KKK
PKO
NTT
JCB
JTB
DDI
PCI
PIC
略字じゃわからねーんだよ

232:デフォルトの名無しさん
08/07/27 21:37:50
Borland C++ Builder?

CodeGear C++ Builder?
Embarcadero C++ Builder?

233:デフォルトの名無しさん
08/07/28 22:33:42
伊藤隆志氏の Shell Component Library for Borland Delphi5 を使っている方おられませんか?
Vistaではアイコンが表示されないのでソースを色々追っているのですが未だにどこを修正すればいいのかわからないのです。
URLリンク(delfusa.main.jp)のようにすると問題ないのでこのコンポ独自の何かだと思うのですが、
SHGetFileInfo関連やTShellListView.CreateWnd、GetIconFromItemIdのへんで当たりをつけて探してみたのですがわかりませんでした。
今更感もありますが、このコンポーネントを使ったソフトを未だに使ってくれているユーザがいますのでどうにかしたいのです
よろしくお願いいたします

234:デフォルトの名無しさん
08/07/28 23:14:01
JaneのAAListの読み込みサンプルってどこかにないでしょうか
Lovelyのソース読んでみたけどリスト形式だけなのとカテゴリ分けに未対応なのとで参考になりませんでした

235:デフォルトの名無しさん
08/07/29 03:07:04
TWebBrowser内でEnterキーが効きません
どなたか解決法ご存知の方いませんでしょうか
IDEはTurbo Delphiです

236:デフォルトの名無しさん
08/07/29 04:53:37
ざっと見たけど、それらしいのがないね。

237:デフォルトの名無しさん
08/07/29 04:54:47
URLリンク(www12.plala.or.jp)
とりあえずググったら速効出てきた。

238:デフォルトの名無しさん
08/07/29 05:04:08
>>237
そのソースを実装しても全く効果がありませんでした・・・
何か足りないのでしょうか

239:デフォルトの名無しさん
08/07/29 17:24:47
vistaでDelphi使いたいんだけど何入れればいいのん?
3.1って使える?

240:デフォルトの名無しさん
08/07/29 20:23:47
入れればいいのん?って聞かれればDelphi2007
D5も動いてるけどね
3.1は入れたことがない

241:デフォルトの名無しさん
08/07/29 20:44:21
2006はそのままではインストールできなかった。

242:デフォルトの名無しさん
08/07/29 23:52:38
ただ線を引くだけ、というクラスを作りたいんだけど、どこから継承すればいいの? Tshapeじゃもったいないし。

243:238
08/07/29 23:56:51
>>237
うわぁ・・・Form1.KeyPreviewの中・・すごくFalseだったナリ・・・

244:デフォルトの名無しさん
08/07/30 00:11:04
>242
TShapeでいいのでは?それかTGraphicControlからTShapeを参考に必要な部分だけ
実装するか。

245:デフォルトの名無しさん
08/07/30 01:27:41
>>243
せめて移したコードのトレースしてれば、すぐにわかるだろそんなことw

246:デフォルトの名無しさん
08/07/30 02:11:55
>>232
TObject

247: ◆XcB18Bks.Y
08/07/30 20:58:46
>>242
TGraphicControlでいいと思います。
基本的にPaintメソッドに線を引くコードを書くだけですから
とりあえず動くものはぐに出来てしまうと思いますよ。


248:デフォルトの名無しさん
08/07/30 21:14:16
Delphiというか、標準PASCALで

readln(a);
assign(f, a);

というふうにやっているんですが、
自分の家のコンパイラだと通るんですが、
他のコンパイラでもこの描き方でおkですか?

aはchar型のpacked arrayです

249:デフォルトの名無しさん
08/07/30 22:53:05
Indy9とIndy10入れるとしたらどっちがいいですか?
オプソのもの時々参考にしたり弄ったりする時があるけどIndy9ばっかなのでIndy9かな・・・

250:デフォルトの名無しさん
08/07/30 23:01:14
Delphiのバージョンにもよるけど、基本Indy10で、問題があることがわかってる機能を使うならIndy9、じゃないのかな。

251:242
08/07/30 23:44:34
解答さんくすです

>>244
>>必要な部分だけ実装
そんな高等技術まだないっす。

>>247
>>TGraphicControlでいいと

すっげー百済ねぇ質問だけど、あまり上位のオブジェクトを使うと、必要のない無駄な機能まで継承してしまって非効率って事はないの?
実際必要なのはプロパティでは始点・終点の座標と、任意に付与した線の名前と、線の色と太さくらい持ってれば十分なんだけど。
あとメソッドでは線を引く、線を消す、線を隠す、ShowHint、イベントハンドラはOnMouseMoveとOnClickくらいかな。

252:デフォルトの名無しさん
08/07/31 00:00:37
> >>244
> >>必要な部分だけ実装
> そんな高等技術まだないっす。

じゃ素直にTShapeから派生しとけ。

253:デフォルトの名無しさん
08/07/31 00:18:55
>>250
うーん、悩むとこですね
周りで使われてるのはIndy9ばっかなのでIndy10使うことになったら入れなおしでいいか・・・

254:デフォルトの名無しさん
08/07/31 00:55:55
>>251
VCLのソース読んでみな。TShape コントロールは TGraphicControl に
毛が生えたものでしかないことが分かるから。

255:デフォルトの名無しさん
08/07/31 10:06:38
久々に Windows アプリ書くんで、どうせなら新しめの Delphi 使おうと
『Codegear て何?』とか、『なんでBorland ドメインじゃないん?』と思いつつ TurboDelphi 落とした。

『そんな API 呼ぶなよ』とか警告出るけど、Delphi3.1 で書いたコードも通って一安心なんだけど、
なんで IDE のウインドウサイズ記憶しないの?
起動するたんびに WUXGA 画面いっぱいに広がって困りますわorz
オプションとか見たけどそれらしき項目を見つけられず・・・自動保存の設定じゃないし。

今浦島なおじさんに教えてたもれ!


256:デフォルトの名無しさん
08/07/31 10:08:14
上の方にレイアウトの呼び出し、保存のボタンがある。
何通りでも好きなだけ記憶させると言いい。

257:デフォルトの名無しさん
08/07/31 10:09:30
ウィンドウを好きなように配置して
メニューの右上の方にDefaultLayoutみたいなドロップダウンリストがあるから
その右隣のボタンをクリックして保存

258:デフォルトの名無しさん
08/07/31 10:30:10
>>256 >>257
これは便利。
Classic Undocked で昔の別ウインドウ形式になるんだね。

そこら辺にマウスカーソル当てればわかることに即答ありがとう!


259:デフォルトの名無しさん
08/08/01 12:45:00
delphi7でwindows mobileのソフト作成ってできますか?

260:デフォルトの名無しさん
08/08/01 12:46:20
無理

261:デフォルトの名無しさん
08/08/01 14:53:13
叶姉妹

262:デフォルトの名無しさん
08/08/02 00:56:42
>>239
2007推奨。
旧バージョンは、VCLがVista環境下でいろいろと不都合がでてしまう。
VCL小細工しているせいかね。悲しいかな。

263:デフォルトの名無しさん
08/08/02 09:37:36
>>262
代表的な不都合をお願いします。
時期開発環境の参考にします。

264:デフォルトの名無しさん
08/08/02 10:18:10
ぐぐれよw

265:デフォルトの名無しさん
08/08/02 19:20:31
UNICODE非対応の今はどれでも同じ
Vistaで使いたいなら自分で工夫、妥協するしかない

266:デフォルトの名無しさん
08/08/03 00:22:58
UAC有効だと確認ダイアログが出まくってまともに使えない。
Aero有効にしているとスクロールバーが半分隠れて使いにくくなる。

267:デフォルトの名無しさん
08/08/03 01:44:46
結論としてはVista使ってる奴が悪い、になるんだろうな

268:デフォルトの名無しさん
08/08/03 01:59:56
Vistaが糞なんだろ

269:デフォルトの名無しさん
08/08/03 09:27:44
Vistaがクソとか平気でいう奴は、自分の置かれている立場(言語)がわかっているのかなあ?

270:デフォルトの名無しさん
08/08/03 09:45:41
死んだとか言われてるけど初心者の俺には何が死んだのかよく分からないし普通に使えるので別にどうということはない

271:デフォルトの名無しさん
08/08/03 12:02:01
recordを前方宣言出来るのでしょうか。
出来るのであれば、どうか方法を教えて頂けませんでしょうか。
出来ないのであれば、私を汚らしい言葉で責め立てて頂けませんでしょうか。

272:デフォルトの名無しさん
08/08/03 13:08:51
できないっぽいね。何をしたいのか具体的に書いてごらん?

273:sage
08/08/03 13:46:14
272様。
Builderのバグの
URLリンク(qc.codegear.com)
コレを回避出来ないものかとおいまして。

274:デフォルトの名無しさん
08/08/03 15:23:16
ふ~む、難しいねぇ。つかOpenにしたまま放置かい。

275:デフォルトの名無しさん
08/08/03 15:43:23
都度hppを書き換える方法で行きます。


276:デフォルトの名無しさん
08/08/04 17:39:17
var
d, i: Integer;
begin
d := Windows.GetLogicalDrives();
for i := 0 to 32 do
if ((1 shl i) and d) <> 0 then Str.Add(Chr(i + Ord('A'))+':\');
end;

とやるのと

var
d: Integer;
c: Char;
begin
d := Windows.GetLogicalDrives();
for c := 'A' to 'Z' do
if ((1 shl (Ord(c) - 1)) and d) <> 0 then Str.Add(c + ':\');
end;
とやるのとじゃどっちが賢いんでしょうか

277:デフォルトの名無しさん
08/08/04 23:26:14
TWebBrowserのHttpヘッダを見たいんですが何かいい方法ありませんでしょうか

278:デフォルトの名無しさん
08/08/05 00:54:36
>276
下かな?でも上はそもそもバグっとる。for i := 0 to 25 doにしないと。

>277
つ WireShark

279:デフォルトの名無しさん
08/08/05 00:54:58
>>276
0 to 32 で 33個になるんだけど。
下の Ord(c) - 1 も、Ord(c) - Ord('A')じゃないの?

私は上の方が自然だと思います。
iが26以降になったときに何かやったほうがいいのかもしれません。


280:デフォルトの名無しさん
08/08/05 02:05:24
こんなのはどうだ。 d と c を分離するのはかえって解りづらいかな。
for c := 'A' to 'Z' do
begin
 if (d and 1) = 1 then Str.Add(c + ':\');
 d := d shr 1;
end;

281:276
08/08/05 02:30:36
こんなにレスありがとうございます

>>278
適当にググって適当にやったのがいけなかったかw
確かに25の間違いです

>>279
ご指摘の通りです
これからは見直しは1時間だな・・・

>>280
うーん、なんかすっきりしないですね

282:デフォルトの名無しさん
08/08/05 04:11:15
280に一票

283:デフォルトの名無しさん
08/08/05 08:07:05
with BitArray(GetLogicalDrives) do with Each do while Loop do
  Str.Add(Char_Add('A', It.Value) + ':\');

欠点はうちの環境でしか動かないことだがw

284:277
08/08/05 09:22:39
>>278
ああいや、外部からではなくDelphi内でモニタできないものかなあと思いまして、
Headerプロパティのようなものが見当たらず、代替するにも見当がつかなかったので聞いてみたのですが、
もしやindy経由で手の込んだことしないといけないんでしょうか…

285:デフォルトの名無しさん
08/08/05 15:46:47
>>284
ここにあった
URLリンク(blog.goo.ne.jp)

286:デフォルトの名無しさん
08/08/05 22:34:59
nkf32.dllやjconvertなりで文字コード自動検出してエンコードするソフトを作っているんですが、ほぼ英字のテキストだとたまに自動検出に失敗します。
失敗するのはいいんですが、失敗して文字化けした文字を検出するにはどうすればいいんでしょうか?

EmEditorの自動検出でもよく失敗するのですが、そういうとき開くと「指定したエンコードで変換できない文字が含まれています。編集を続行して保存するとファイルの中身が破壊されます。 」と出るので検出は出来ると思うんですが、どうやったらいいのか見当もつきません・・・

287:デフォルトの名無しさん
08/08/05 22:48:40
全文スキャンするしかないんじゃない?
文字コード検出のってファイル先頭部分しか見てないんじゃないかな

288:デフォルトの名無しさん
08/08/06 00:09:51
(c)文字は変換できないんじゃないの?

289:286
08/08/06 00:30:02
自動検出で全文してみたんですけど無理みたい(失敗)です。。
EmEditorで検出失敗してもエラーが出ないときがあるので難しいのかもしれません。
けど、失敗エンコードのままの文をFireBird2.1DBのテーブルにインサートしてその文をクエリで検索するとエラーが今のとこ確実に出ます・・・
2.0ではエラーはでずクエリできるので、2.0を使うしかないみたいです、自分の今の力では。。

(c)って著作権のマークのやつでしょうか

290:デフォルトの名無しさん
08/08/06 00:48:34
自前変換ならエンコする時に全文字見る訳で
その時に検出するだけでしょ
WideCharToMultiByteとかならlpUsedDefaultCharで検出できるかと

291:デフォルトの名無しさん
08/08/06 11:12:20
>>285
うーん、headタグの取得については記述がありますが、
httpヘッダに関しては書いてないみたいです

TWebResponseとかあるのにTWebBrowserでは使えないんてくやしいっ
大人しくTcpServer経由しますか…

292:286
08/08/06 11:54:16
>>290
なるほど、エンコ時にやればいいのか
ありがとうございます!


293:デフォルトの名無しさん
08/08/06 16:38:17
というかぁ、完璧な自動って不可能だからぁ。
文字コードが重なっていて、自動判断できない領域があるしぃ。


294:デフォルトの名無しさん
08/08/06 18:57:59
その文書作った人がそうだといったらどう見ても違う文字コードでもその文字コードになっちゃうだろうしなあ

295:デフォルトの名無しさん
08/08/08 16:12:21
指定のビットが0か1かを判定する関数またはクラスの作成をよろしくお願いします。
入力するデータはビット番号とデータなのですが、元のデータのサイズが決まっていなくて、
32ビットデータ4個(ビット0-127)だったり2個(ビット0-63)だったと可変です。

296:デフォルトの名無しさん
08/08/08 16:18:29
そこまで速度にこだわってないので、関数でいいのかな。
function TestBit(BitNum: Integer; Data: array ): Integer;
Data引数が可変引数だったりするとうれしいです。以上よろしくお願いします。




297:デフォルトの名無しさん
08/08/08 16:20:22
ああ、32ビットと固定長でないかもしれません。16ビットや8ビットの場合もあるかもです。



298:デフォルトの名無しさん
08/08/08 16:21:58
ここは丸投げスレではありません
お引き取りください

299:デフォルトの名無しさん
08/08/08 16:23:47
>>298
今日は暑いですが、よろしくお願いします。

300:デフォルトの名無しさん
08/08/08 16:25:33
>>299
本当に暑いですね
クーラーつけなきゃやってらんないです


お引き取りください

301:デフォルトの名無しさん
08/08/08 16:30:44
>>300
そんな寂しい事を言って私を涼しくしなくてもいいので、TestBitの中身の方をお願いします。


302:デフォルトの名無しさん
08/08/08 16:44:51
解決しました。
function TestBit(Stream: TStream; BitNum: Integer): Integer;
var
B: Byte;
OldPosition: Int64;
begin
OldPosition := Stream.Position;
try
if (BitNum < 0) or (BitNum > Stream.Size*8) then
raise Exception.Create('error');

Stream.Position := BitNum div 8;

Stream.ReadBuffer(B, SizeOf(B));

Result := (B shr (BitNum mod 8)) and 1;
finally
Stream.Position := OldPosition;
end;
end;
でいくことにしました。アドバイスありがとうございました。


303:デフォルトの名無しさん
08/08/08 17:37:35
>>302
どういたしまして、お役に立てて光栄です。

304:デフォルトの名無しさん
08/08/09 02:42:51
ゼロサプレスって言うんだっけ。桁数指定して、桁数に満たない場合は頭に0を埋めてくれるヤツ。
formatでできるかと思ったらできないんだね?
どうすればいいのか教えて? まさか自作関数?

305:デフォルトの名無しさん
08/08/09 08:53:26
マニュアルのformat関数のところにちゃんと書いてあるよ

306:デフォルトの名無しさん
08/08/09 09:13:41
え? 実数の場合は%8.3fとかでいいんだけど(あと通過型も) 整数の方法がわからないよ

%05dとかにすると、スペースになってしまう。

307:デフォルトの名無しさん
08/08/09 09:17:56
delphi format %05d
でぐぐってみw

308:デフォルトの名無しさん
08/08/09 10:04:36
どーでもいいがゼロサプレスの逆だろ
ちなみに指定桁数を0で埋めるって何ていうんでしょう?

309:デフォルトの名無しさん
08/08/09 10:11:59
URLリンク(www.wdic.org)

310:デフォルトの名無しさん
08/08/09 11:12:28
ゼロパディングなんだ。
パケットとかではパディングってよく使うけど、桁合わせの時には聞いたことがないような。

311:デフォルトの名無しさん
08/08/09 18:28:40
ListView がスクロールされた事を知らせるイベントってないですか?
あるいは、enable が true でスクロールバーをスライド出来なくする方法ありますか?

312:デフォルトの名無しさん
08/08/09 18:48:21
スクロールしないならLabel並べておけ

313:デフォルトの名無しさん
08/08/09 19:01:47
ListViewはウィンドウコントロールだから、
普通に WM_VSCROLL で出来ないか?
WndProc書き換えちゃえ。

314:311
08/08/09 19:14:03
>>312
ListView をクリックすると、そのセル上に同じ大きさで memo を表示して
あたかも編集出来る様にしたんですけど、スクロールすると ListView だけ動いて
memo は置いてけぼりになるんです、だから編集中はスクロール出来ない様にするか
スクロールしたら、なんとか memo が付いて行く様にしたいと思ったんです。

>>313
やったこと無いですけど、何とか出来るか試してみたいと思います、有難うございましたw

315:デフォルトの名無しさん
08/08/09 20:04:36
>>314
Memo使うの?
Editでならやったことあるけど、今はStringGrid使ってるよ

316:311
08/08/09 20:50:14
>>315
なんか memo が使いやすかったのでw

>Editでならやったことあるけど
その時スクロールとか困らなかったですか?

317:デフォルトの名無しさん
08/08/09 22:50:12
>>316
入力後Enterキーを押したらEditが消えるようにした気がする
すぐにStringGridに変えたからよく覚えてない

318:311
08/08/09 23:04:01
>>317
そうですか、じゃあ自分もそうしようかなと思います、有難うございましたw

319:デフォルトの名無しさん
08/08/10 11:39:07
つーか、項目選択したらエディットコントロールを上掛け、
スクロールかEnter感知したらエディット消してListViewに反映でいいんじゃないの?
StringGridはドロップダウンリストとか使えないからなぁ‥‥

320:311
08/08/10 11:46:16
>>319
そうしたいんです、でもスクロールを感知できなくて困ってるんです
Enter感知は出来るけどw

321:デフォルトの名無しさん
08/08/10 12:02:43
>>320
ならWndProcメソッドのオーバーライドがんばれ。
正規の方法でのコンポの継承が面倒なときは↓の方法使うと楽
URLリンク(www.geocities.jp)

322:デフォルトの名無しさん
08/08/10 12:19:11
なんか、最近Delphiのパンフが送られてこない気がするのですが、
次期バージョンの日本語版発売っていつごろになるんでしょうか?

今、BDS2006使いなのだけどもVistaにきちんと対応したい。
2007って今買い時かなのかな・・・?

次期バージョンはどうせ、VCLのUNICODE対応でバグ満載になるだろうし
安いうちに買っておけばよかたとちょっと後悔している

323:デフォルトの名無しさん
08/08/10 12:19:51
>>321
既出なのかもしれないけど、よいTipsですね。

324:311
08/08/10 12:21:07
>>321
やっぱりその方法しかないですかw
なんとか頑張ってやってみます、有難うございました。

325:デフォルトの名無しさん
08/08/10 12:23:02
そんな低レベルなところでがんばっても
.NETに移ったら全部ゴミになっちゃうからやめておいた方がいいよ。
今のうちにC#を学んでいつでも移行できるように準備しておいた方が後々特。

326:デフォルトの名無しさん
08/08/10 12:35:12
>>324
WindowProc差し替えの方が簡単かも。

327:311
08/08/10 13:01:27
>>325
.NET も良さそうですね、便利そうで羨ましいですw

>>326
その方が簡単ですか、その方法も調べて見たいと思いますw

どうしても解からなかったら邪道だけどタイマーで監視します。
みなさん有難う御座いましたw

328:311
08/08/10 15:13:17
なんとか
WindowProc の WM_VSCROLL で出来ました
有難う御座いましたw

329:デフォルトの名無しさん
08/08/10 20:19:38
memo1.lines.loadfromfile(****.txt);
でメモラインに追加してから

memo1.lines.loadfromfile(***2.txt);
のテキストを↓に追加したいのですが、上書きされて***2.txtのデータしか残りません・・・・
上書きせずに追加するにはどうすればいいのでしょうか?

330:デフォルトの名無しさん
08/08/10 20:53:51
add?

331: ◆XcB18Bks.Y
08/08/10 21:15:41
>>329
編集中のテキストにファイルから別のテキストを追加読み込みしたいということですね。
別に文字列リストを用意してそれに読み込んでからMemo1.Linesに追加。

procedure TForm1.Action_AddFromFileExecute(Sender: TObject);
var
 Strings: TStringList;
begin
 Strings := TStringList.Create;
 try
  if OpenDialog1.Execute then
  begin
   // 文字列リストにファイルを読み込む.
   Strings.LoadFromFile(OpenDialog1.FileName);
   // Memo1のテキストにこの内容を追加.
   Memo1.Lines.AddStrings(Strings);
  end;
 finally
  Strings.Free;
 end;
end;


332:デフォルトの名無しさん
08/08/11 07:32:07
ClientDataSetに大量のデータ突っ込んだ後、EmptyDataSetでクリアしても、
タスクマネージャのメモリ使用量が変わらないんだけど、これは??
データ突っ込んで、タスクマネージャで100MB近くなったんだけど、ずっとそのまま・・


333:デフォルトの名無しさん
08/08/11 18:05:35
TurboDelphiを先日落とした身です。

例えば

procedure TForm1.Button2Click(Sender: TObject);
var
hoge: string;
begin

end;

でF9実行しようとすると、その変数は使われてないと警告が出てデバッグが実行できません。
警告を残したままデバッグの実行はできないものなのでしょうか。

334:デフォルトの名無しさん
08/08/11 18:08:42
{$WARN SYMBOL_DEPRECATED OFF}
みたいなのを頭に書いとけば消せる。
具体的な指定はヘルプにあるはず。
その警告は残しておいた方がいいとは思うが。

335:デフォルトの名無しさん
08/08/11 19:24:36
Delphiでのアプリケーション間通信のよい方法があったら教えてください。

環境は双方ともDelphi製で、片方VCL GUIアプリ、片方Win32アプリです。

実際にはマップエディタで設定したマップを、別アプリのゲーム側で
リアルタイムに読み込んでプレビュー処理をしたいのです。
そこで、マップエディタで現在編集中のマップをファイルで保存しておいて、
そのファイル名(もしくはマップのIDなり)をゲーム側に伝えたいのです。

336:デフォルトの名無しさん
08/08/11 19:38:34
ファイル名程度ならWM_COPYDATAで十分じゃ?

337:デフォルトの名無しさん
08/08/11 19:39:06
ファイル名程度なら、WM_COPYDATAで十分じゃ?

338:デフォルトの名無しさん
08/08/11 19:40:24
Delphiでのアプリケーション間通信のよい方法があったら教えてください。

環境は双方ともDelphi製で、片方VCL GUIアプリ、片方Win32アプリです。

実際にはマップエディタで設定したマップを、別アプリのゲーム側で
リアルタイムに読み込んでプレビュー処理をしたいのです。
そこで、マップエディタで現在編集中のマップをファイルで保存しておいて、
そのファイル名(もしくはマップのIDなり)をゲーム側に伝えたいのです。

339:デフォルトの名無しさん
08/08/11 19:45:33
SendMessage(WM_COPYDATA でマップデータを送るのはどうか。
使ったこと無いけど、SendMessageTimeout の方がいいのかもしれない。
受け取り側でデータをコピーするから、マップデータが巨大だと
時間がかかる。

340:デフォルトの名無しさん
08/08/11 22:10:29
普通に考えればメモリマップドファイルだろうね。

341:デフォルトの名無しさん
08/08/11 22:11:12
>>339-340
ありがとうございます。WM_COPYDATAが簡単にできそうです。

こちらが参考になりました。

WM_COPYDATA
メッセージによるプロセス間通信
URLリンク(homepage2.nifty.com)

342:デフォルトの名無しさん
08/08/12 00:09:05
警告ならできるだろ >333
原因は別にある

343:デフォルトの名無しさん
08/08/12 00:55:49
変更のあるたびに全部送るんじゃなくて、変更のあったところのみ送れば
速くなりそうですね。

344:デフォルトの名無しさん
08/08/12 13:06:48
>>334>>342
新規でプロジェクト作成してみたら警告が出るようなコードでもデバッグが実行できました。

どうもお騒がせしましたorz

345:デフォルトの名無しさん
08/08/12 20:09:22
>>331
遅くなりましたが、ありがとうございます!
おかげでできました~

346:デフォルトの名無しさん
08/08/13 19:18:29
TMenuItemからTMenuItemに全てのプロパティをコピーするにはどうすればいいんでしょうか
Assignでは「TMenuItem から TMenuItem に代入することはできません.」と例外が発生しました

347:346
08/08/13 20:30:24
自己解決しました
URLリンク(delfusa.main.jp)
このCopyComponentを使えば出来ました

348:346
08/08/13 20:57:39
と思ったけど完全にはコピー出来ないようです
何とかコピー出来ないものでしょうか

349:デフォルトの名無しさん
08/08/13 21:01:06
TStream.WriteComponent/ReadComponentしてみたら。
それかメニュー構造を再帰的にコピーしていくコード書くか。

350:346
08/08/13 22:33:53
>>349
> TStream.WriteComponent/ReadComponentしてみたら。
例外が発生し、動きませんでした

> それかメニュー構造を再帰的にコピーしていくコード書くか。
適当に書いたら普通に出来てしまいましたw

ありがとうございました

351:デフォルトの名無しさん
08/08/14 00:24:35
以前からこのスレを拝見しておりました
いきなりの質問ですみませんがお答えいただけたら幸いです
var
str: array of array of String
i : Integer;
List: TList;
begin
SetLength(str,10);
for i:=0 to 9 do
begin
SetLength(str[i],10)
end; //str[0,0]からstr[9,9]まで領域を作る

List:= TList.create;

としたとき、
TListにstring型の1時配列を格納したいと思い、
List.add(str[Idx])
としたのですが、その後ListからItemsプロパティによって中身にアクセスできないんです・・・どうしたらよろしいのでしょうか?


352:デフォルトの名無しさん
08/08/14 01:42:22
>>351
usesにTypesを追加します。
TStringDynArray(List[x])[y] で str[x, y] にアクセスできます。

353:デフォルトの名無しさん
08/08/14 23:26:38
>>352
お答えありがとうごさいました!とても助かりました。

354:322
08/08/15 20:04:40
Delphi2007Pro版アップグレードの価格比較をみつけたので、こちらで吟味することにします。

ボーランド/Borland Borland Delphi 2007 for Win32 Professional R2 アップグレード版 価格比較 [coneco.net]
URLリンク(www.coneco.net)

amazonとかだと50000円超えててびくりしました
お騒がせしました。
ありがとうございました。

355:デフォルトの名無しさん
08/08/15 20:51:48
直販でUGすれば31500円だろ。
直販のUGってもう終了したんかな。


356:デフォルトの名無しさん
08/08/15 21:50:23
電話してお姉さんに丁寧に説明してもらいなさい。

357:デフォルトの名無しさん
08/08/15 23:04:26
おねいさんに手取り足取り教えてもらいたい。


358:デフォルトの名無しさん
08/08/16 00:16:26
おねいさんに手コキ足コキしてもらいたい。

359:322
08/08/16 06:40:01
>>355
もう直販やってない希ガスCodeGearのページいってもたらいまわしにされる

360:322
08/08/16 07:06:51
製品の購入のページってこれですよねえ。
URLリンク(www.codegear.com)

> バージョンアップ版を購入の方
> 以下のCodeGear製品については、バージョンアップ版も、新規購入と同様に、ソフトウェア流通代理店各社、SEshopのCodeGear専門ショップなどのオンラインショップサイトよりお求めいただけます。
>
> CodeGear RAD Studio 2007
> Delphi 2007 for Win32 R2
> C++Builder 2007 R2
> JBuilder 2007
> 上記製品のバージョンアップ版の詳細については、こちらをご覧ください。その他の製品については、下記までお問い合わせください。

直販やってない?
たらいまわしは、商品詳細とかんちがいしてましたw
問い合わせてみるか・・・

それともTiburon待ったほうがいいのかなあ

361:デフォルトの名無しさん
08/08/16 08:49:32
Unicode が必須じゃなければ2007にしとけ。
BDS2006持ってて2007買うのはどうかと思うがな。
お金持ちならだめもとでTiburonを。

362:デフォルトの名無しさん
08/08/16 08:54:10
こういう業界じゃ、バージョンアップの3万なんて日給分程度だろ?
お金持ちって・・。


363:デフォルトの名無しさん
08/08/16 09:18:41
IT土方をなめるなよ。
ピンハネされまくって、ひ孫受けの土方に渡る金は、元金の1/3以下


364:デフォルトの名無しさん
08/08/16 09:31:53
Delphiできる人少ないから、手が足りない。
バイトで内職してくれる人おらん?

365:デフォルトの名無しさん
08/08/16 09:33:29
思いっきり丸投げしといて
「内規で2割引かないといけないんですよてへへー」が
2つ3つ挟まるとか平気であるしなw

366:デフォルトの名無しさん
08/08/16 09:34:58
3割引かれてテヘヘーだけど、1社しか挟まってないからまだ楽だ。

367:デフォルトの名無しさん
08/08/16 09:36:28
他所でやれ


368:デフォルトの名無しさん
08/08/16 10:09:56
スキルが高まれば高まるほど逃げ出す、それが日本のIT業界。

369:デフォルトの名無しさん
08/08/16 13:10:00
>360
だからとりあえず電話してみなさいって。連絡先は
URLリンク(www.codegear.com)
ここね。ただアップグレード期間は終わってるような気がするので通常の購入になって
高いかもしれないけど、そしたら他のところで買うことを考えてみればいいだけの話。

>366
3割ってよっぽど舐められてるか893か、いずれにしろろくでもないところだと思う。

370:デフォルトの名無しさん
08/08/16 13:25:53
スキルの低い底辺クズがいる、それがIT業界。

371:デフォルトの名無しさん
08/08/16 13:40:40
>>338-339 へぇ、メッセージで投げられるんだ
普通はアプリの通信ってパイプ使うけど
マップデータ自体を送るんじゃなくてファイル名って言ったよね たった数文字送るなら
パイプ通信のほうがいいんじゃないの

372:デフォルトの名無しさん
08/08/16 13:40:50
Form1からForm2へドラッグ&ドロップするにはどうすればいいんでしょうか?

373:322
08/08/16 15:41:26
>>369
電話してみます。

みなさんありがとう。

374:デフォルトの名無しさん
08/08/16 15:57:45
>>372
OnDragOverイベントでAccept設定して出来ないか?

375:デフォルトの名無しさん
08/08/16 18:00:12
>>371 受け取る方はパイプのデータが更新されたことをどうやって知るの?

376:デフォルトの名無しさん
08/08/16 20:41:12
数文字程度でもWM_COPYDATAの方が簡単かもしれない。

377:デフォルトの名無しさん
08/08/16 21:18:38
自前のTMyFormの機能としてWM_COPYDATAをラップして
識別用のDWORD一つとデータ本体を送受信できるようにしておくといろいろ便利。

378:デフォルトの名無しさん
08/08/16 23:16:21
現在Delphi2007を使用しています。

デバッグ機能について教えていただきたいのですが
Visual Studioでいうところの「次のステートメントの設定」は
Delphiに存在しないのでしょうか。

無いととても不便な気がするのですが
どうしても見つかりません。

379:デフォルトの名無しさん
08/08/16 23:30:13
ない。なくても別にそれほど不便じゃないし。
QCに登録したら次の次で採用されるかも。

380:デフォルトの名無しさん
08/08/16 23:45:05
>>379
即レスありがとうございます。探し回っていたのですが
これ以上探さずにすみます。それにしても残念。

381:デフォルトの名無しさん
08/08/17 03:40:24
>>372
VCL標準のD&D機構では出来ないから、
MouseCaptureして自分でやる。

382:372
08/08/17 10:49:16
>>374
>>381

レスありがとうございます。
MouseCaptureググッって、午後からいろいろ試してみようと思います。

383:デフォルトの名無しさん
08/08/17 11:13:40
TFormのDnD、VCLでできないんならOLEDnDのほうがスマートじゃ?
プロセス間でも平気だし、テキストや画像なら未知のアプリケーション間でも出来るし

384:デフォルトの名無しさん
08/08/17 11:30:37
フォーム上にカラーパレットのようなものを配置(カラーグリッドでいいのかな)
お絵描きコントロールを配置(たぶんペイントボックス)


ペイントボックスに、既存のbmpファイルを読み込む(←ここがすでにわからない)

カラーパレットをクリック
で、色を選択

ペイントボックスに読み込まれた絵のどこか適当な場所をクリック

その「クリックした個所と同じ色が」選択した色に塗りつぶされる
(MSペイントの塗りつぶしみたいな感じ。あれは別な色で囲まれちゃってる部分は無視されるけど、
そこもぶち破って塗りつぶしてくれるならなおよろし。あれと同じでも充分)

顰蹙非難罵詈雑言何もかも覚悟でおねがい

以上を実現するコードください
まるごとください
おねがいします

385:デフォルトの名無しさん
08/08/17 11:34:30
どっかでペイントソフト作るチュートリアル無かったか。
丸投げするなら金額も一緒に書いとけよ。

386:デフォルトの名無しさん
08/08/17 11:38:11
大人しくTPaintBox使わずにTImage使えば?

387:デフォルトの名無しさん
08/08/17 11:47:07
,   ,:‘.          。             +   ,..
 ’‘     +   ,..       . ..; ',   ,:‘
      . .; : ’                           ' ,:‘.
           あ あ             ,:‘.      +
.. ' ,:‘.                             . ...:: ’‘
’‘     .;    こ ん な に お 断 り し た い
                                       。
.     。   気 持 ち に な っ た の は   ,:‘. 。
 '+。
                初 め て で す          .. ' ,:‘.
:: . ..                            .. ' ,:‘.
      ハ,,ハ
     ( ゚ω゚ )

388:デフォルトの名無しさん
08/08/17 11:48:25
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |
|  ,,ノ(、_, )ヽ、,,   |
|   ,;‐=‐ヽ   .:::::|
\  `ニニ´  .:::/      NO THANK YOU  
/`ー‐--‐‐―´´\
       .n:n    nn
      nf|||    | | |^!n
      f|.| | ∩  ∩|..| |.|
      |: ::  ! }  {! ::: :|
      ヽ  ,イ   ヽ  :イ


389:デフォルトの名無しさん
08/08/17 12:12:59
            お断りします
      ハ,,ハ ハ,,ハ ハ,,ハ ハ,,ハ
     ( ゚ω゚ )゚ω゚ )゚ω゚ )゚ω゚ )  お断りします
    /    \  \  \  \    お断りします
  ((⊂  )   ノ\つノ\つノ\つノ\つ))   お断りします
     (_⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ       お断りします
      ヽ ヘ } ヘ }  ヘ } ヘ }
  ε≡Ξ ノノ `Jノ `J ノ `J ノ `J


390:デフォルトの名無しさん
08/08/17 15:47:38
再度おねがいにきました
あきらめないで待ってます

391:デフォルトの名無しさん
08/08/17 15:48:24
           ____    やなこったwwwwwwwww
  .ni 7     /⌒  ⌒\
l^l | | l ,/)   / ( ゚ )  (。 )\     .n    
', U ! レ' / / ::::::⌒(__人__)⌒:::::\  l^l.| | /)  
/    〈 |       ヘ  /      |   | U レ'//)  
     ヽっ     ` ⌒´    /  ノ    /  
 /´ ̄ ̄ ノ           \rニ     |
                      `ヽ   l 


392:デフォルトの名無しさん
08/08/17 16:19:04
そんなことよりポインタ演算の話しようぜ。

393:デフォルトの名無しさん
08/08/17 22:17:46
もうちょっと待て。ベータブログに出てきてNDAから外れたらな。

394:デフォルトの名無しさん
08/08/17 22:19:01
>390
WindowsのPaint使えばいいんじゃね?

395:デフォルトの名無しさん
08/08/18 00:18:16
お絵かきソフトのサンプルをCDから探して。

396:デフォルトの名無しさん
08/08/18 11:40:11
その1
Image1.Picture.LoadFromFile('hoge.bmp');

以降よろしく。

397:デフォルトの名無しさん
08/08/18 11:58:30
canvas.FloodFill(なんたらかんたら)


398:デフォルトの名無しさん
08/08/18 19:12:39
DEMOSとかというフォルダからサンプルらしきものを発見しました
imageでも絵かけるんですね
>>396
>>397
ありがとうございます
ちょっと自力でがんばってみます

399:398
08/08/19 19:05:38
おかげさまでどうにか以下までは成功しました

procedure TForm1.Image1Click(Sender: TObject);
var
MouseP:TPoint;
MouseX:integer;
MouseY:integer;
GetColor:integer;
begin
GetCursorPos(MouseP);
MouseP:=Image1.ScreenToClient(MouseP);
MouseX:=MouseP.X;
MouseY:=MouseP.Y;
GetColor:=Image1.Canvas.Pixels[MouseX,MouseY];
Image1.Canvas.Brush.Color:=塗りつぶしたい色;
Image1.Canvas.FloodFill(MouseX,MouseY,GetColor,fsSurface);
end;

元のbmpファイルがけっこう小っちゃいので、Imageをめいっぱい大きくとったうえストレッチ表示にしたら
クリック位置を補正しなきゃならなくなってしまいました

MouseX:= Trunc(Image1.Picture.Bitmap.Width*MouseP.X/Image1.Width)

とか、とりあえずやってみたらできたけど、何かこのあたりはまだ考える余地がありそうです
あとちょっとだけがんばります




400:デフォルトの名無しさん
08/08/19 20:27:01
始めたばかりで頑張っていた頃を思い出させるいいレス。
頑張れ!

401:デフォルトの名無しさん
08/08/20 01:07:43
WideStringでのインデックスをAnsiStringでのインデックスに直すにはどうすればいいんでしょうか?
例えば
関数('あああ',3) = 5
みたいな感じです

402:デフォルトの名無しさん
08/08/20 01:25:08
>>401
こんな感じかな
function WideIndexToAnsiIndex(const ws: widestring; index: Integer): Integer;
begin
  if (Index < 1) or (Index > Length(ws)) then
    Result := 0
  else
    Result := Length(AnsiString(Copy(ws, 1, index - 1))) + 1
end;

403:デフォルトの名無しさん
08/08/20 01:36:25
>>402
うお、こんな簡単に出来ちゃうんですね
ありがとうございました

404:デフォルトの名無しさん
08/08/20 03:34:47
>>401
なぜユニコードだったりそれをMCBSに変換しなければならないかにもよるけど、
ByteToCharIndexやCharToByteIndexでもっと幸せになれるかもしれない。

405:デフォルトの名無しさん
08/08/20 12:47:33
Button1を押したら

Memo1の書いてる文章を
全て選択
コピー
切り取り
貼り付け

するにはどうやればいいでしょうか?

406:デフォルトの名無しさん
08/08/20 13:36:46
>>405
Memo1.SelectAll;
Clipboard.AsText:=Memo1.SelText;
Memo1.SelText:='';
Memo1.SelText:=Clipboard.AsText;


407:デフォルトの名無しさん
08/08/20 14:00:30
マジありがとうございます。
超助かります!

Memo1.SelectAll;
をしたら、ちゃんと全部選択できるてるみたいですが
選択範囲の色が変わりません。
普通のメモ張だったら
全て選択とかCTRL+Aで選択範囲が青くなりますよね?

青くするのはどうやるんですか?

408:デフォルトの名無しさん
08/08/20 14:17:29
>>407
Memo1.SelectAll;
Memo1.SetFocus;

409:デフォルトの名無しさん
08/08/20 14:24:01
あー。できました。
ありがとうございましたー。

410:デフォルトの名無しさん
08/08/20 20:57:20
SpeedButtonかToolButton使え

411:デフォルトの名無しさん
08/08/21 12:41:16
ファイルネームの最後だけ、たとえば
c:\AAA\BBB\CCC\asdf.html
というファイルなら
OpenDialogやFileListBoxのFileNameは
c:\AAA\BBB\CCC\asdf.htmlになってしまうので
Edit1.Text:=FileNameみたいにすると長くなっちゃうんだけど
c:\からCCCまでいらなくてasdf.htmlだけ取得するにはどうしたらいいんですか?

412:デフォルトの名無しさん
08/08/21 13:00:55
ExtractFileName

413:デフォルトの名無しさん
08/08/21 13:02:45
このくらい考えられないか?
FileName := 'c:\AAA\BBB\CCC\asdf.html';
while pos('\',FileName) > 0 do FileName := copy(FileName,pos('\',FileName)+1);
edit1.Text := FileName;


414:デフォルトの名無しさん
08/08/21 13:10:37
>>413
Pos2回もやってるのって無駄じゃね?
それに「ソ」とかのことも考えたほうがいいぜ
まあLastDelimiter使った方が楽だがww

415:デフォルトの名無しさん
08/08/21 14:53:29
役に立たないスレだな

416:デフォルトの名無しさん
08/08/21 15:46:36
412で答え出てるじゃん。

417:デフォルトの名無しさん
08/08/22 07:16:18
Delphiはchar型って変数じゃないんですか?


418:デフォルトの名無しさん
08/08/22 07:19:56
変数です。整数ではありませんが。

419:デフォルトの名無しさん
08/08/22 08:15:42
checklistbox1
にあるすべての項目にチェックを入れるボタンと
チェックをはずすボタンはどうやればいいんですか?
Seleckallやclearを押してもチェックがはずれたりしなくて困ってます。
ボタンクリック
begin
CheckListBox1.SelectAll;
end;
ってやってもなんも変わらないんですけど、どうすりゃいいですか?

420:デフォルトの名無しさん
08/08/22 08:55:17
>>419
まわしたら?

421:デフォルトの名無しさん
08/08/22 17:00:54
Button2をクリックしたら、Button1クリックと同じ処理をしたいときはどうやるの?
procedure TForm1.Button2click(sender:Tobject);
begin
Button1click(sender)
end;

とかやってもエラーがでてコンパイルできません。

422:デフォルトの名無しさん
08/08/22 17:13:13
>>421
それで間違ってないだろ。つかエラーメッセージくらい読めよ。

423:デフォルトの名無しさん
08/08/22 17:15:56
button1.onclick(sender);

424:デフォルトの名無しさん
08/08/22 17:34:25
Button2のイベントハンドラをButton1Clickに設定する

425:デフォルトの名無しさん
08/08/22 17:37:16
interfaceの宣言の下に書くGUIDはCtrl+Shift+Gで出る奴でいいんですか?

426: ◆XcB18Bks.Y
08/08/22 19:23:55
>>421
エラーメッセージはなんですか?

 未定義の識別子 Button1click

と出たなら Button1click という名前のメソッドがないということです。
(このメソッドがあるはずだ!ということなら似たような違う名前になっていないか調べてください)


427:デフォルトの名無しさん
08/08/22 21:20:55
俺俺っていうコードを変換したいんだけど
(俺のコードは89 B4です)
89 B4 89 B4をchrを使って
chr(89)+chr(B4)+chr(89)+chr(B4)ってやっても
エエって出てきちゃいます。(半角のエはB4)

どうやったら89 B4を「俺」になおせますか?
chr(46127)てやっても出来ませんでした。

数値を日本語に変えるやりかたを教えてください!

428:デフォルトの名無しさん
08/08/22 21:29:25
ShowMessage(chr($89)+chr($B4))
で普通に俺って出るぞ

429:デフォルトの名無しさん
08/08/22 21:37:50
なぁんだ、$をつければよかったんだ。
どうもありがとう

430:デフォルトの名無しさん
08/08/22 22:17:39
Chr(B4)でコンパイル通るのかww

431:デフォルトの名無しさん
08/08/22 22:32:41
ListviewのFullDragをtrueにしてドラッグで入れ替えても
見かけ上は入れ替わるんですけど、中身のデータはその場所と一致してないんですけど
ちゃんと一致させる方法ありますか?

432:431
08/08/22 22:35:26
すいませんカラムの並び替えです・・・

433:デフォルトの名無しさん
08/08/23 00:44:16
StringReplaceのWideString版ってありますか?

434:デフォルトの名無しさん
08/08/23 08:36:38
>>421
Button1.Click;

435:デフォルトの名無しさん
08/08/23 09:33:40
>>433
AnsiStringReplaceのことか?

436:デフォルトの名無しさん
08/08/23 14:31:08
Memo1.Linesのそれぞれの行の文字数(全角文字は二文字と数える)を取得するにはどうすればいいですか?
-------
最初
12345
あほ
apple
-------
ならメモ1の最初の行文字数=4
二行目=5
三行目=4
四行目=5
といった感じです!

437:デフォルトの名無しさん
08/08/23 14:34:12
>>436
普通にLength()でいいじゃん。

438:デフォルトの名無しさん
08/08/23 14:36:57
length

439:デフォルトの名無しさん
08/08/23 14:37:01
そんなコマンドがあったのか!ありがとうございます

440:431
08/08/23 19:21:21
>>431の問題ってデフォですか、それともウチだけの不具合ですか
それだけでも教えてください

441:デフォルトの名無しさん
08/08/23 19:32:19
>>435
それでも十分いけるんだけどいちいちWideString→Stringで置換→WideStringってやってるとなんか無駄っぽいので
WideStringのまま出来ないかなって思っただけです
TurboDelphiにWideStrUtilsってのがあったのでその中にある、
WideStringReplaceを使ってみたけどなんか不具合があるっぽくて正常に置換されなくて使えなかったんです
でもTntの関数使ったら出来ました
ありがとうございました

442:デフォルトの名無しさん
08/08/24 01:16:25
>>440
カラムのドラッグによる位置変更で
データそのものの位置が変わっちゃったらえらい事になるでしょうよ

ListView_GetColumnOrderArray
ListView_SetColumnOrderArray

辺りで幸せになれるかもね

443:デフォルトの名無しさん
08/08/24 02:23:50
TTrayIconを使用しているのですが、
TrayIconが表示されている状態でWindowsをシャットダウンすると、
「シェル通知アイコンが削除できません」
というエラーメッセージダイアログが発されて、正常にシャットダウンしません。
ダイアログを閉じるなりすれば、シャットダウンは進行するのですが。

アプリケーションでメッセージを補足して、WM_QUERYENDSESSIONを
受けたときに、TrayIconの表示をFalseにすれば何とかなるかと思ったのですが、
WM_QUERYENDSESSIONを受け取る以前に上記のエラーメッセージが
発されてしまっているようです。

対策をテストするにも、毎回Windowsをログアウトするなりしなければならないので、
非常に非効率的な事態に陥っています。

これらの問題をすでに解決済みの先哲がいらっしゃいましょうや。
なにとぞ愚人に叡智を授けて下されれば、この443、幸いに存じます。

444:デフォルトの名無しさん
08/08/24 05:30:02
SDK32: 通知領域にアイコンが登録されないことがある
URLリンク(support.microsoft.com)

445:デフォルトの名無しさん
08/08/24 05:45:16
どうも、443っす。
結局のところ、自己解決したっす。
原因は、WM_QUERYENDSESSIONを補足しきれてなかったことみたいっす。
WM_QUERYENDSESSIONをちゃんと補足したときにTrayIconを非表示にするだけで何とかなったっす。
つまり、アプローチは間違って無かったっす。
汗顔のイタリーっす。板汚し、失礼したっす。
それじゃ、天上の調べをオリーブの枝に接ぐ作業に戻るっす。
チャオっす。


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