5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 : ◆XcB18Bks.Y :2008/06/24(火) 16:24:25
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

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

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
http://delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89


2 : ◆XcB18Bks.Y :2008/06/24(火) 16:25:01
<関連スレ>
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc11.2ch.net/test/read.cgi/tech/1093654251/
Delphi初心者のための寺子屋
http://pc11.2ch.net/test/read.cgi/tech/1132756268/
delphiで作った有名ソフトって何があるの?
http://pc11.2ch.net/test/read.cgi/tech/1135654787/
Delphi持ってるならGLSceneを使え
http://pc11.2ch.net/test/read.cgi/tech/1163269079/
【Delphi互換!?】FreePascal【GPL】
http://pc11.2ch.net/test/read.cgi/tech/1137051510/

【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
http://pc11.2ch.net/test/read.cgi/gamedev/1097836469/
Delphiでアクションゲームが作りたい!! Part2
http://pc11.2ch.net/test/read.cgi/gamedev/1027482533/
ネットワークゲーム作成のお勉強(Delphi専用スレ)
http://pc11.2ch.net/test/read.cgi/gamedev/1028278884/
delphiでMMO
http://pc11.2ch.net/test/read.cgi/gamedev/1072515100/


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ググッテきます

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

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

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

22 :デフォルトの名無しさん:2008/06/25(水) 22:02:32
>18
BDEか。忘れてたよ。
ttp://support.codegear.com/jp/article/36424

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

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

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

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

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

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

29 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/06/28(土) 09:01:21
BinToHexの方を晒してくれないと

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

54 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/06/30(月) 20:32:40
enter押しても改行できなかったり、space押しても文字が消えてしまうのはどうにかなりませんか。

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

>>55
意味が分からん

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

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

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

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

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

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

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

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

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

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

67 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/07/03(木) 00:20:30
つ keybd_event

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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


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

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


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

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

101 :デフォルトの名無しさん:2008/07/08(火) 11:33:18
>>98
設計中ではなく、実行中に動的にやりたいという事?
もしかして、こういう事がやりたいのかと、delWikiから消えていたので再upした
http://delwiki.info/?%E3%82%B3%E3%83%BC%E3%83%89%E5%80%89%E5%BA%AB%2FFormDraw

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

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


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


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

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

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

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

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

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

お願い!

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

110 :デフォルトの名無しさん:2008/07/09(水) 15:37:32
>>109
Geckoタブブラウザ Bagel その6
http://pc11.2ch.net/test/read.cgi/software/1181840099/
このスレに行ってbagelの作者さんに聞いてみたら?

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


112 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/07/09(水) 21:57:37
俺が悪かった
>>108お願いします。

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

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

119 :116:2008/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:2008/07/09(水) 23:16:14
問い2の部分がわからない;

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

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

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

はいつぎの質問

122 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/07/10(木) 00:37:06
>>110
ありがとうございます
聞いてみます

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

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

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

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

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

129 :デフォルトの名無しさん:2008/07/11(金) 21:34:23
>>109>>123
Windows XP Theme Manager
http://www.soft-gems.net/index.php?option=com_content&task=view&id=17&Itemid=33

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

こういうのもある
SpTBXLib
http://club.telepolis.com/silverpointdev/sptbxlib/index.htm

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

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

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

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

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

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

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

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

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

150 :デフォルトの名無しさん:2008/07/13(日) 14:19:54
>>144
エンコードはShift_Jisで
http://web.archive.org/web/20040606145326/www.namakoworld.com/lowtech/download/xpctrls.htm

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

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

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

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

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

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

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

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

158 :153:2008/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 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/07/16(水) 11:55:03
>>158
assignはBmpの大きさ設定不要だけど、Drawは>>159

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


197 :デフォルトの名無しさん:2008/07/21(月) 15:22:06
例えばここのHook.lzhとか
http://homepage1.nifty.com/MADIA/delphi/tokusen.htm

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

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

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

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

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

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

204 :デフォルトの名無しさん:2008/07/23(水) 16:12:54
ごみ箱が空かどうかチェックしたいんですけど、このやり方だとうまくいきません。
ttp://www.swissdelphicenter.ch/torry/showcode.php?id=1009

OS XP SP2
D6 Personal


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

206 :デフォルトの名無しさん:2008/07/24(木) 00:16:33
>>205
ttp://www.swissdelphicenter.ch/torry/showcode.php?id=1436
こちらで成功しました。

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

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


208 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/07/24(木) 07:19:40
>>208
ごみ箱は仮想フォルダなのでパスは取得できない
IShellFolder2インタフェースを使ってごみ箱内のファイル名等を取り出すことは出来る
ごみ箱のファイルに直接アクセスできるかどうかは知らない
http://www.codeproject.com/KB/shell/recyclebin.aspx

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

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

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

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

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

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

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

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

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

219 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/07/25(金) 22:55:17
>>219
Sender.Name

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

237 :デフォルトの名無しさん:2008/07/29(火) 04:54:47
http://www12.plala.or.jp/selen/Delphi/Del_Web.html
とりあえずググったら速効出てきた。

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

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

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

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

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

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

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

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

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

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


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

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

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

aはchar型のpacked arrayです

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

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

251 :242:2008/07/30(水) 23:44:34
解答さんくすです

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

>>247
>>TGraphicControlでいいと

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

273 :sage:2008/08/03(日) 13:46:14
272様。
Builderのバグの
http://qc.codegear.com/wc/qcmain.aspx?d=36215
コレを回避出来ないものかとおいまして。

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

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


276 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/08/04(月) 23:26:14
TWebBrowserのHttpヘッダを見たいんですが何かいい方法ありませんでしょうか

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

>277
つ WireShark

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

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


280 :デフォルトの名無しさん:2008/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:2008/08/05(火) 02:30:36
こんなにレスありがとうございます

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

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

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

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

283 :デフォルトの名無しさん:2008/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:2008/08/05(火) 09:22:39
>>278
ああいや、外部からではなくDelphi内でモニタできないものかなあと思いまして、
Headerプロパティのようなものが見当たらず、代替するにも見当がつかなかったので聞いてみたのですが、
もしやindy経由で手の込んだことしないといけないんでしょうか…

285 :デフォルトの名無しさん:2008/08/05(火) 15:46:47
>>284
ここにあった
http://blog.goo.ne.jp/ozoz-goo/e/b403b98e3c2f3445549b191819c94a4f

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

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

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

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

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

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

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

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

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

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


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


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

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

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




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



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

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

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


お引き取りください

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


302 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/08/08(金) 17:37:35
>>302
どういたしまして、お役に立てて光栄です。

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

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

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

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

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

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

309 :デフォルトの名無しさん:2008/08/09(土) 10:11:59
http://www.wdic.org/w/TECH/%E3%82%BC%E3%83%AD%E3%82%B5%E3%83%97%E3%83%AC%E3%82%B9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

331 : ◆XcB18Bks.Y :2008/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 :デフォルトの名無しさん:2008/08/11(月) 07:32:07
ClientDataSetに大量のデータ突っ込んだ後、EmptyDataSetでクリアしても、
タスクマネージャのメモリ使用量が変わらないんだけど、これは??
データ突っ込んで、タスクマネージャで100MB近くなったんだけど、ずっとそのまま・・


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

例えば

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

end;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

WM_COPYDATA
メッセージによるプロセス間通信
http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N012.html

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

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

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

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

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

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

347 :346:2008/08/13(水) 20:30:24
自己解決しました
http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/faq/00069.htm
このCopyComponentを使えば出来ました

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

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

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

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

ありがとうございました

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

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

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

ボーランド/Borland Borland Delphi 2007 for Win32 Professional R2 アップグレード版 価格比較 [coneco.net]
http://www.coneco.net/PriceList/1070922054/order/MONEY/

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

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


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

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


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

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

360 :322:2008/08/16(土) 07:06:51
製品の購入のページってこれですよねえ。
http://www.codegear.com/jp/shop

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

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

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

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

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


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


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

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

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

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


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

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

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

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

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

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

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

みなさんありがとう。

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

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

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

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

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

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

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

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

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

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

382 :372:2008/08/17(日) 10:49:16
>>374
>>381

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

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

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


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

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

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

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

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

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

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

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

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

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


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


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

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


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

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

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

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

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

以降よろしく。

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


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

399 :398:2008/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 :デフォルトの名無しさん:2008/08/19(火) 20:27:01
始めたばかりで頑張っていた頃を思い出させるいいレス。
頑張れ!

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

402 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/08/20(水) 01:36:25
>>402
うお、こんな簡単に出来ちゃうんですね
ありがとうございました

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

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

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

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

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


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

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

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

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

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

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

411 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/08/21(木) 13:00:55
ExtractFileName

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

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

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

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


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

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

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

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

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

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

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

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

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

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

 未定義の識別子 Button1click

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


427 :デフォルトの名無しさん:2008/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 :デフォルトの名無しさん:2008/08/22(金) 21:29:25
ShowMessage(chr($89)+chr($B4))
で普通に俺って出るぞ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ListView_GetColumnOrderArray
ListView_SetColumnOrderArray

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

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

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

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

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

444 :デフォルトの名無しさん:2008/08/24(日) 05:30:02
SDK32: 通知領域にアイコンが登録されないことがある
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B418138

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

446 :431:2008/08/24(日) 06:30:05
>>442
ありがとうございました

447 :デフォルトの名無しさん:2008/08/26(火) 14:13:11
Excelで管理していたToDoのメモを使いやすくしたいと思い、
愛用のDelphiでDB化できないかと思っています。

可搬性を考え、Delphiの通常のアプリ同様インストールなしでDBを使いたいのですが、
なにかよいエンジンは何かないでしょうか?
手持ちの最新版は Delphi2006です。

448 :デフォルトの名無しさん:2008/08/26(火) 15:21:06
EmbeddedFirebirdとか
インタフェースはInterbaseそのままだからIBXとかも普通に使える。ただしDLLなので、動作時のカレントディレクトリに注意。

449 :デフォルトの名無しさん:2008/08/26(火) 15:33:36
プロパティを絶対に変更しないって前提なら
TTodoItem = class
published
にいろいろデータ溜め込んでTStream.WriteComponent, ReadComonentすればいいんだけど
リスク高すぎなんだよな。
ここら辺もうちょっと柔軟にXMLに対して読み書きしてくれるライブラリはないものか。

450 :デフォルトの名無しさん:2008/08/26(火) 16:05:15
>>447
SQLiteが一番手軽かと

451 :デフォルトの名無しさん:2008/08/26(火) 16:15:53
>>448-450
ありがとうございます。
Embedded Firebird(Interbase6互換)、Write(Read)Component、SQLite などですね。

あと、MyBaseも使えるようです。こちらが参考になりました。
Delphi@WCIMH
http://hp.vector.co.jp/authors/VA028375/delphi/db.html

SQLiteはビジュアルコンポーネントと連携できるのでしょうか?

452 :447=451:2008/08/26(火) 16:28:25
SQLiteのライブラリがいくつかありました。

Tim Anderson’s ITWriting - Tech writing blog ≫ A simple Delphi wrapper for Sqlite 3
http://www.itwriting.com/blog/a-simple-delphi-wrapper-for-sqlite-3

Aducom Software [Delphi SQLite Components]
http://www.aducom.com/sqlite/download.htm

18385 SQLite DbExpress driver
http://cc.codegear.com/Item.aspx?id=18385
Delphi8以降で使えない?

いくつか試してみます。ありがとうございました。

453 :322:2008/08/26(火) 16:38:56
>>369
遅レスですいません。

エンバカデロ日本に電話してみました。
直販はやってないとのことで、個人の場合は量販店やネットなどで買ってほしいとのことでした。

通販の値段はこちらを参考にすることにします。
ボーランド/Borland Borland Delphi 2007 for Win32 Professional R2 アップグレード版 価格比較 [coneco.net]
http://www.coneco.net/PriceList/1070922054/order/MONEY/

42000円前後でしょうか。
アップグレード割引期間内にアップグレードしておけばよかったと後悔してます。
2006の時は期間を延長したりしてくれてたのに・・・

454 :デフォルトの名無しさん:2008/08/26(火) 19:34:14
>>447
ToDo リスト程度なら、TcrientDataSet でも十分実用になると思います。

455 :デフォルトの名無しさん:2008/08/26(火) 20:34:40
つかDBいらねぇだろ。

456 :デフォルトの名無しさん:2008/08/26(火) 20:55:00
http://enterprise.watch.impress.co.jp/cda/software/2008/08/26/13696.html

>価格は、Delphi 2009、C++Builder 2009とも、
>Professional版が10万2900円、Enterprise版が25万2000円、Architect版が44万1000円。
>両製品のバンドルパッケージも用意されており、
>Professional版が13万4400円、Enterprise版が29万4000円、Architect版が50万4000円となっている。

どう考えても、高いよな。

457 :デフォルトの名無しさん:2008/08/26(火) 20:56:48
日本のPCゲーム業界みたいなことになってるな

458 :デフォルトの名無しさん:2008/08/26(火) 21:13:14
アカデミック無いのかな

459 :デフォルトの名無しさん:2008/08/26(火) 21:16:02
5年前にやっとけよといいたいがようやく標準でまともなUNICODEアプリが作れるようになったか。

 新版では、IDE、コンパイラ、フレームワーク、ランタイムがすべてUnicodeに対応し、
ANSIデータとUnicodeのシームレスな利用をサポートした。
また、新しいVCL(Visual Component Library)コンポーネントを搭載。
Office 2007から採用されたリボンをはじめとする、
新しいWindowsのルック&フィールに対応している。
さらに、RADテクノロジーを用いた多層データベースアプリケーションアーキテクチャ
「DataSnap」により、コンポーネントベースのデータベースアプリケーション開発を行えるとのこと。

 これらに加えてDelphiでは、ジェネリックスや無名メソッドなど、
Delphiが持つ言語機能を強化し、開発効率の向上を実現。
一方のC++Buildeでは、新しい言語標準「C++0x」などもサポートしたとしている。

460 :デフォルトの名無しさん:2008/08/26(火) 21:17:34
オッチャスレ池

461 :デフォルトの名無しさん:2008/08/26(火) 21:28:23
>>460
ここですか?><
http://food8.2ch.net/test/read.cgi/pot/1077358365/

462 :デフォルトの名無しさん:2008/08/27(水) 03:54:49
どんどん高くなっていくなぁ

463 :デフォルトの名無しさん:2008/08/27(水) 06:16:53
>>459
これは欲しい。
次のバージョンアップが待ち遠しいぜ。

464 :デフォルトの名無しさん:2008/08/27(水) 08:01:15
オッチャスレみていない俺のために張っておく

新規購入価格
Delphi 2009 Professional  ¥98,000  (税込:¥102,900)
Delphi 2009 Enterprise  ¥240,000  (税込:¥252,000)
Delphi 2009 Architect  ¥420,000  (税込:¥441,000)
C++Builder 2009 Professional  ¥98,000  (税込:¥102,900)
C++Builder 2009 Enterprise  ¥240,000  (税込:¥252,000)
C++Builder 2009 Architect  ¥420,000  (税込:¥441,000)
Delphi 2009 & C++Builder 2009 Bundle Professional  ¥128,000  (税込:¥134,400)
Delphi 2009 & C++Builder 2009 Bundle Enterprise  ¥280,000  (税込:¥294,000)
Delphi 2009 & C++Builder 2009 Bundle Architect  ¥480,000  (税込:¥504,000)
バージョンアップ価格
Delphi 2009 Professional  ¥46,000  (税込:¥48,300)
Delphi 2009 Enterprise  ¥160,000  (税込:¥168,000)
Delphi 2009 Architect  ¥280,000  (税込:¥294,000)
C++Builder 2009 Professional  ¥46,000  (税込:¥48,300)
C++Builder 2009 Enterprise  ¥160,000  (税込:¥168,000)
C++Builder 2009 Architect  ¥280,000  (税込:¥294,000)
Delphi 2009 & C++Builder 2009 Bundle Professional  ¥60,000  (税込:¥63,000)
Delphi 2009 & C++Builder 2009 Bundle Enterprise  ¥180,000  (税込:¥189,000)
Delphi 2009 & C++Builder 2009 Bundle Architect  ¥320,000  (税込:¥336,000)

465 :デフォルトの名無しさん:2008/08/27(水) 08:40:21
高すぎる

466 :デフォルトの名無しさん:2008/08/27(水) 10:40:51
Vistaがこけたおかげで、Delphi7が今でも現役だぜぇ。

467 :デフォルトの名無しさん:2008/08/27(水) 10:59:26
割れ厨急増ですねわかります

468 :デフォルトの名無しさん:2008/08/27(水) 11:03:18
>>466うんうん
助かるよねぇ
ってか2006買ったが7使ってる

469 :デフォルトの名無しさん:2008/08/27(水) 15:17:18
>>466
というか製品としても現役じゃないか、Del7とCBuilder6

470 :デフォルトの名無しさん:2008/08/27(水) 16:49:25
2007の拡張に慣れたらもう戻れない。

471 :デフォルトの名無しさん:2008/08/27(水) 17:06:21
>>470
kwsk

472 :デフォルトの名無しさん:2008/08/27(水) 17:08:09
以前買った「Delphi DB&Webプログラミング」を読んでいるのですが
DB初心者にすごくわかりやすくてよい本ですね。

ところで、Delphi7時代の本のせいか、いくつか用語かツールが変わっています。
例えば、SQLエクスプローラー相当はBDS2006時代では何にあたるんでしょうか?

473 :デフォルトの名無しさん:2008/08/27(水) 21:13:03
BDS2006はもう誰も使ってないんじゃないかな・・

474 :デフォルトの名無しさん:2008/08/27(水) 21:19:07
いや、俺使いまくってるけどw

475 :デフォルトの名無しさん:2008/08/28(木) 00:05:29
http://www.geocities.jp/teamhasebe/prgrming/delphi/tips/dupignre.htm
これを利用して多重起動させないようにしようとしてるんですが
新しい起動パラメータでリスタートさせるにはどうしたらいいでしょうか?

476 :デフォルトの名無しさん:2008/08/28(木) 00:32:16
起動させるためのexeを作る

477 :デフォルトの名無しさん:2008/08/28(木) 02:30:28
最初のexe起動。
次のexeをパラメータ付きで起動。
すでに起動済みならパラメータを最初のexeへ渡して自分は終了する。
タイミングによっては難しいかな。
最初のexeを終了させる方がいいかも。 いろいろ試して。

478 :デフォルトの名無しさん:2008/08/28(木) 02:35:53
>>476>>477
やっぱりそうゆうやり方しか無いんですかね。
やってみます。有難うございました。


479 :デフォルトの名無しさん:2008/08/28(木) 05:23:51
>>475
自分でExe側をコーディングしているのなら、起動パラメータを弄るのではなく、
多重起動した場合、前のを落として
起動パラメータによって変更されるパラメータを変更するだけではないのかな?

480 :475:2008/08/28(木) 12:49:11
>>479
すいません。
前のを落とす方法がわかりません。

481 :デフォルトの名無しさん:2008/08/28(木) 14:22:09
mutexで排他制御をして
すでに起動していたらWM_COPYDATAでパラメータを丸投げして
新しい方が自爆して
すでに起動している方がパラメータを受け取ってリスタートする。

あるいは
WM_COPYDATAで死ねというコマンドを送って古い方を終了させて
新しい方がそのままパラメータを処理する。

前者の方が初期化を省ける分軽くなる可能性はある。
後者の方が実装が楽になる可能性がある。

482 :475:2008/08/28(木) 14:26:22
いい機会だからWM勉強してみます。
みなさん有難うございましたm(_ _)m

483 :デフォルトの名無しさん:2008/08/28(木) 14:50:53
TWebBrowserにhtmlでフォームを表示してるんですが
フォームのtextarea内で改行出来ません
ie・fxでは正常に改行できます

484 :デフォルトの名無しさん:2008/08/28(木) 15:46:53
UIWebBrowserとか使っとけ

485 :デフォルトの名無しさん:2008/08/28(木) 16:33:06
>>475
DDEを使って、既に起動している方に終了命令を送るかな

後から起動した方が、パラメータを既に起動している方に送って、
すぐに終了ってのはよくあるけど

486 :485:2008/08/28(木) 16:59:49
>>475 DDEを使うとこんな感じ

※同じプログラム内に送受信を書きます

【メッセージ受信】
1. Systemパレットから DdeServerConv をフォームに置く
2. DdeServerConv の Name プロパティを "AAA" とかにする ← 後でトピック名に使われる
3. DdeServerConv の OnExecuteMacro イベントに受け取ったときの記述をする 例) Caption := Msg.Text;

【メッセージ送信】
1. uses 節に DDEMan 等(Formsも?)を追加
2. DdeClientConv を使って送信項目を書く↓

// アプリケーションが HogeHoge.exe で、トピック名が AAA の場合
SendStr = 'Tojiro-Goma'; ←送信するメッセージ
with TDdeClientConv.Create(Application) do begin
    if SetLink('HogeHoge', 'AAA') then begin
        ExecuteMacro(PChar(SendStr), False);
        CloseLink;
    end;
    Free;
end;


487 :475:2008/08/28(木) 17:02:44
>>485
今回は>>481さんの前者の方で無事成功しました。
DDEは別のところで使えそうなので参考にさせていただきます。
有難うございました。

488 :デフォルトの名無しさん:2008/08/28(木) 22:11:06
文字列'ABCD'があって、その文字列に1文字置きに'#'を挿入したいのですがどのようにすればいいでしょうか?

こんな感じです。
A#B#C#D

よろしくお願いします。

489 :デフォルトの名無しさん:2008/08/28(木) 22:13:35
insert

490 :デフォルトの名無しさん:2008/08/28(木) 23:01:40
Insertとforループでどうにかできました
ありがとうございました

491 :デフォルトの名無しさん:2008/08/29(金) 00:07:10
二重ループの中で中側をブレークしてそのまま外をコンティニューするにはどうしたらいいで初夏?
取り敢えずフラグ立ててみたのですがこれしかないでしょうか?

for i:=0 to Files.Count-1 do
begin
while .. do
begin
case xx of
mrOk :zzz;
mrIgnore:begin
Flag:=True;
Break;
end;
else exit;
end;
xxxx
end;
if Flag then Continue;
zzzzzz;
end;

mrIgnoreの時はxxxxもzzzzzzを処理せずfor i:=ループを続けたい

492 :デフォルトの名無しさん:2008/08/29(金) 03:55:45
速度は遅いかもしれんけど中のループはbreakではなくcontinueで全部終わらせば
外のループへ出れる

493 :デフォルトの名無しさん:2008/08/29(金) 07:52:05
goto使え

494 :デフォルトの名無しさん:2008/08/29(金) 08:49:03
>>481
そっちのほうがスマートだな

495 :デフォルトの名無しさん:2008/08/29(金) 13:36:05
bsNoneに設定したフォームで
Form1.WindowState := wsmaximized
を実行するとタスクバーの領域を浸食してしまうんだがお手軽に
システムメニューの最大化を実装する方法ってあります?

496 :デフォルトの名無しさん:2008/08/29(金) 21:31:01
こちらのサイトの方法を汎用化する方法はありませんでしょうか?

Delphi VCL継承コンポーネントをインストールなしで使う/Tips & Tricks
http://www.geocities.jp/asumaroyuumaro/program/tips/replacecompo.html

Edti1 := CloneComponent(Edit1);
みたいな方法で使いたいのですが・・・。

Hoge.Createすると、生成されずに、Createだけよばれてしまいます。

class helper使えばできる気もするのですが、class helperの同時に1つしか使えないという制限から困っています。

497 :496:2008/08/29(金) 21:40:44
Result := TComponent(Original.ClassType).Create(Owner);
でいける気がしました。
ちょっと試してみます。

498 :496:2008/08/29(金) 21:51:58
>>497は勘違いでした。orz
とりあえずいけた気がします。

function CloneComponent(Owner, Original: TComponent; ClassType: TComponentClass): TComponent;
var
  Stream: TMemoryStream;
begin
  Result := ClassType.Create(Owner);
  if Original is TWinControl then
    (Result as TWinControl).Parent := (Original as TWinControl).Parent;

  Stream := TMemoryStream.Create;
  try
    Stream.WriteComponent(Original);
    Original.Free;
    Stream.Position := 0;
    Stream.ReadComponent(Result);
  finally
    Stream.Free;
  end;
end;


使い方:
Panel1 := CloneComponent(Self, Panel1, TPanelEx) as TPanel;

問題点は、PanelならPanelの上におかれたものが全部開放されちゃうことです・・・
なんとかならないかなあ・・・

499 :デフォルトの名無しさん:2008/08/29(金) 23:08:08
再帰

500 :デフォルトの名無しさん:2008/08/30(土) 15:57:40
2つのアプリを同じPCで動かしているのですが、
競合する動作があるので片方が動作すつときはもう片方の動作を止めるために
WM_COPYDATAを送っています。
開発環境はxpで正常に動作しますが動作環境は98で
「このプログラムは不正な処理をおこなったので・・・」とゆうエラーが出ます。
このエラーは送信側が送信した瞬間に送信側で出ますが受信側は受信できています。
片方を落として動作させたり、片方の受信機能を外して送信した場合はエラーが出ません。
こちらの1と2をほぼそのまま利用しました。
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/650_SendText.htm

501 :デフォルトの名無しさん:2008/08/30(土) 16:12:36



502 :デフォルトの名無しさん:2008/08/30(土) 16:57:25
>競合する動作があるので片方が動作すつときはもう片方の動作を止めるために
そういうときには「ミューテックス」というモンを使うんですわ。
ttp://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/SyncObjs_TMutex.html

503 :デフォルトの名無しさん:2008/08/30(土) 17:50:03
Win98上での開発・デバッグ環境を用意しろとしか

504 :デフォルトの名無しさん:2008/08/31(日) 03:59:43
短い文字列型でやってみるとか。 ShortStringね。

送信側のEdit1.Textが空のときも問題ないのかな。
PCharでキャストすると、コード領域にある#0のアドレス返すから、
その辺でおかしくなるのかも。 良く分かりません。



505 :デフォルトの名無しさん:2008/08/31(日) 11:32:33
>>498
TReaderのメソッドの中に、
コンポーネントの構成を再帰的に追っかけて読み込んでくれるメソッドがあった希ガス

このメソッド使うと、イベントも含めたコンポーネントのクローンを作成することも可能。


506 :デフォルトの名無しさん:2008/08/31(日) 19:37:44
>>502
そこはもう通り過ぎてるだろw

507 :496:2008/08/31(日) 19:49:11
>>498のコードは不完全でして、イベントハンドラ等のコピーができません。
それらをカバーするにはこちらが参考になるようです。

DelFusaBlog コンポーネントをインストールせずに使う方法
http://delfusa.blog65.fc2.com/blog-entry-40.html#more

TMemoryStreamでイベントハンドラを別のオブジェクトにコピーするには?
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200703/07030070.txt

私はも書いてみようと思います。

508 :デフォルトの名無しさん:2008/09/01(月) 11:01:26
DLLについて質問です。
-----------------------------------
PCOPRS1CONTROL_RET Open(int port_no)

port_no
使用するCOMポート番号(0 - 255)

出力
PCOPRS1CONTROL_RET_OK = 0
成功
PCOPRS1CONTROL_RET_ERR = 1
失敗
-----------------------------------
DLL内の上のような関数をテストしようと以下のようなコードを書いて実行すると関数はちゃんと走っているようなんですが矢印のところで毎回'privileged instruction at 0x0012f6d6'とエラーがでてしまいます。
これはDLLの呼び出し方が悪いのでしょうか?それとも他に原因があるのでしょうか?
----------------------------------
function Open(port_no: Integer): Integer; stdcall; external 'hogehoge.dll';

procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
 i := Open(0);
 ShowMessage(IntToStr(i));
end; //←
----------------------------------

509 :デフォルトの名無しさん:2008/09/01(月) 11:49:53
>>500
メッセージと一緒にデータも送ってるのか?
サンプルはCDSがローカル変数になってるのが良くないと思われるが


別のやりかたとしては、wmuser,wmapp,resisterwindowmessage()、ファイルマッピングオブジェクト、ミューテックスあたり


510 :デフォルトの名無しさん:2008/09/01(月) 18:18:00
>>500
CDS.lpData:=PChar(Edit1.Text); がダメじゃないの?

S := Edit1.Text;
CDS.lpData := PChar(S);
でどうだ。

>>508
呼び出し規約が合ってないかもね。
Cならデフォルトはcdecl。

511 :508:2008/09/01(月) 20:51:26
>>510
function Open(port_no: Integer): Integer; cdecl; external 'hogehoge.dll';
ズバリその通りで上記のようにしたらエラーが出なくなりました。
ありがとうございます!

512 :デフォルトの名無しさん:2008/09/02(火) 09:37:22
すいません、listviewのコラムの順番を変えたいんですけど
ListView_SetColumnOrderArray(ListView1.Handle,3,pi);
これって、3番目を1番目に移動するには pi に何を指定すれば良いんですか

あと、これは全6個のうち3番目を1番目に移動するという事ですか
SendMessage(ListView1.Handle,LVM_SETCOLUMNORDERARRAY,6,3)

なんか、具体的な使い方が解からないので、お願いします

513 :デフォルトの名無しさん:2008/09/02(火) 11:17:29
>>512
少しはググろうぜ
ListView_SetColumnOrderArrayはLVM_SETCOLUMNORDERARRAYのマクロだからどちらも同じと受け取っておk
piにはarray of Integerへのポインタを指定するっぽい
三つのカラムのうち一番右のカラムを一番左に持ってくるときは
pi: array[0..2] of Integer
pi[0] := 2;
pi[1] := 0;
pi[2] := 1;
でいいと思う
んで第二引数のとこには並べ替えるカラムの個数を指定するんだと思う
だからListView_SetColumnOrderArray(ListView1.Handle, Length(pi), @pi);でいいような悪寒

以上ググった結果から適当に推測した結果でした

514 :512:2008/09/02(火) 18:02:04
>>513
うまく出来ました
しかし、コラムの内容は位置番号と一致してるけど
それ以下の内容は位置番号と一致しないです
やっぱり一致させるのは無理なのかな
でも、使い方が解かったんで助かりました、ありがとうございますw

515 :デフォルトの名無しさん:2008/09/03(水) 13:41:01
SpTBXLibを使っている方は、おられませんでしょうか?
Silverpoint Development
http://club.telepolis.com/silverpointdev/sptbxlib/index.htm

SpTBXLibは標準で便利なドッカブルパネルがあるのですが、
いくつものドッカブルパネルを上に載せて設計時にGUIデザインすると、
画面が狭くなるためフレームを使って分離できないかと考えています。

しかし、TSpTBXMultiDock に載せた TSpTBXDockablePanel 上に
他の出作ったTFrameから継承したフレームを載せると、
載せたフレームが真っ黒になってしまいます orz

いままでSpTBXLib以外でのフレームでこのようなことはなかった気がします。
何か解決方法はないものでしょうか?
SpTBXLib 2.2です。OSは、Vista SP1、XP SP3で確認しました。

516 :515:2008/09/03(水) 14:23:56
どうやら、TSpTBXDockablePanel以外にも TSpTBXPanel 上にFrameを載せた場合にも起こるです。

上に載せたフレームの
ParentColor := True でも無効な様子で、
Color := clNone から、Color := clBtnFaceにしたところ、通常のように表示されました。
しかし、残念ながらフレーム上では SpTBXLib の Theme設定が効きません。
他の部分がTheme対応なので不恰好になってしまいます。

VCLのソースを覗いてみてわかったのですが、
TXPManifest を載せて ParentBackground を有効にさせると、
設計時はダメですが、実行時は一応、SpTBXLibのThemeが効いてくれます。
しかし、画面リサイズ時などで画面のフレームの描画が崩れることが多々あります。

バグっぽい仕様な気がしてきました。(もしくはFrameに対応してない)
ので公式サイトのリンク先のニュースグループで聞いてくることにします。
もし何かわかりましたら、こちらでも報告いたします。

517 :デフォルトの名無しさん:2008/09/03(水) 15:25:20
AVGがDelphi7で生成したexeをウィルス扱いしやがったぜというお話
http://www.delphipages.com/threads/thread.cfm?ID=199695&G=199691&SAR=TRUE

I have the new AVG 8 with Delphi 7 Pro
With AVG fully updated.

Create a new Delphi Project and add nothing and
no controls and try and run. AVG throws a false positive

Downloader.Banload.ZKA

And the exe cannot be created.
Add one piece of code or one simple component and
no problem and no warnings.

518 :デフォルトの名無しさん:2008/09/03(水) 16:11:31
Avast!もDelphiで生成したwin32コンソールアプリをたまに誤認するよ

519 :デフォルトの名無しさん:2008/09/03(水) 16:28:11
ICSというコンポーネントをインストールしたんですが、いざ使おうとすると
「ユニット名〜が解決できません」と出て使えないのです。
何か他に特別なことがいるのでしょうか?
インストールするのにに参照したサイトはここです。
http://mrxray.on.coocan.jp/Delphi/CompoInstall/index.htm
verは2007です

ICS
http://www.overbyte.be/eng/products/ics.html

520 :デフォルトの名無しさん:2008/09/03(水) 17:59:24
これIndyとどう違うの?

521 :デフォルトの名無しさん:2008/09/03(水) 18:05:38
It is yet another internet component.

522 :デフォルトの名無しさん:2008/09/03(水) 18:08:36
日本語でおk

523 :519:2008/09/03(水) 18:40:06
なんだか色々と弄ってたらどうにか使えるようになりました!
お騒がせしました

524 :デフォルトの名無しさん:2008/09/03(水) 18:44:03
.cbkってファイルがいつのまにかできていたのですが・・・?
これは一体どのようなファイル?
なのでしょう

HogeFrameUnit.dfm.cbk
というような

ファイルでした

環境:BDS2006

525 :デフォルトの名無しさん:2008/09/03(水) 20:05:26
google ブラウザのせいでChromeがOxygeneに名前変わっててワロタ

RemObjects Software: Oxygene 3.0
http://www.remobjects.com/product/?id={DC0A9947-5FED-4D34-8CC8-F2DCFA87A1FE}

526 :デフォルトの名無しさん:2008/09/03(水) 20:09:20
質問させてください<(_ _)>

Delphiのボタンの色を変える方法ってありますでしょうか??
Bitボタンの文字の色を変えることはできるんですが
ボタン表面自体の色を変えたいです。
imageなどで画像貼り付けも試してみましたが
ボタン全体に被さってしまい、立体感がなくなってしまいます。
どなたかいい方法ご存知の方おられましたらぜひご教授ください。

527 :デフォルトの名無しさん:2008/09/03(水) 20:24:03
>>526
ボタンにピッタリサイズのimageを作ればいいんじゃないかな

528 :526:2008/09/03(水) 20:45:28
>>527
全体に合わせてしまうと立体感がなくなってしまうし
表面だけに会わせると、周りの色との違いがでてしまいます。
立体感含むボタンそのものの画像を作るしかないんでしょうか?
それだと大きさによって変わるからたいへんですね^^;

529 :デフォルトの名無しさん:2008/09/03(水) 21:20:26
>>528
WM_ERASEBKGNDを捕まえて適当に塗る

530 :デフォルトの名無しさん:2008/09/03(水) 21:29:20
>>528
ちょっと大きいPanelに乗せれば立体的に

531 :526:2008/09/03(水) 21:41:50
>>529、530
それは実行時にボタンを押したときに
ちゃんと凹みますか??

532 :デフォルトの名無しさん:2008/09/03(水) 21:44:19
やってみればいいじゃない

533 :デフォルトの名無しさん:2008/09/03(水) 22:11:47
>>526
TButtonの色変えは、かなーり昔からのFAQくさいw

色変更が可能なボタン
http://rakasaka.fc2web.com/delphi/odbtn.html

534 :デフォルトの名無しさん:2008/09/03(水) 22:15:04
その手の小細工を効かせたアプリは
大抵センスがよろしくないものになってしまうという

535 :526:2008/09/03(水) 22:17:04
>>533
おお!
これはいけそうですね!!
どうもありがとうございます♪

536 :デフォルトの名無しさん:2008/09/04(木) 13:51:28
ここで質問する内容ではなさそうなので躊躇したのですが、他で該当するような
活発なスレが見付からないのでお許しください。

Delphi2009が発表されるので購入を考えているのですが、非常に高いですね・・・。
バージョンアップ版をと思ったのですが、私が以前に購入したのが10年くらい前の
初期バージョンの時代で、その後は会社購入版を使用していたため、私個人の
IDを紛失してしまっています。
会社では業務の都合上Delphiの必要性がなくなったので今後のバージョンアップは
見込めない状態です。

そこで質問ですが、Delphiのバージョンアップ版を使用するにあたって過去製品で個人が
登録したIDが必要になると思うのですが、その必要性はどれくらいありますか?
というのも、Microsoftのバージョンアップ版ではインストール時に過去の製品での
ID等を聞かれないものですから、Delphiも大丈夫かと思いましたので質問させていただきました。

変な質問で申し訳ありませんが、私個人の出費としてはあまりにも大きな差があるもの
ですから質問させていただきました。もしお分かりなられる方がいらっしゃいましたなら
よろしくお願いいたします。



537 :デフォルトの名無しさん:2008/09/04(木) 13:58:45
某時代はそもそもユーザー登録してないとバージョンアップ版買えなかったから誰も知らないと思うぞ
おそらくアクティベーション時に登録するCDNのアカウントで判断するんだろうけど。

538 :デフォルトの名無しさん:2008/09/04(木) 18:13:40
会社に電話して事情を説明して購入可能か聞くしかない。
正規ユーザーの条件はIDを持っていることであり
バージョンアップ版は正規ユーザーであることが条件である。
ゆえにバージョンアップは不可能。とか適当なレスはつけられるが
実際に購入可能かどうかとは何の関係もないしな。

539 :デフォルトの名無しさん:2008/09/04(木) 18:35:34
会社で購入したことを根拠に個人でバージョンアップはどう見ても変でしょ。

540 :デフォルトの名無しさん:2008/09/04(木) 18:45:09
>>539
初期バージョンの頃に個人で買ったって書いてあるじゃん!

541 :デフォルトの名無しさん:2008/09/04(木) 19:25:07
それを証明できないから問題なんでしょ。
これが通るなら、新規バージョンの購入者はいなくなる。

542 :デフォルトの名無しさん:2008/09/04(木) 19:30:42
てか、Delphi2009の販促の封筒かはがきがこないんですけど、
皆さんのところには着ましたか?

プレスリリースだけで後は店で買ってねってことなのかな・・・

543 :デフォルトの名無しさん:2008/09/04(木) 19:31:58
仕事でつかえないなら、趣味としてつかうの?
Turbo Explorer でいいんじゃないの。

544 :デフォルトの名無しさん:2008/09/04(木) 19:40:57
仕事で使う人がこんなとこで質問するの?

545 :デフォルトの名無しさん:2008/09/04(木) 19:56:51
ActionListはどこにおくのがよいものでしょうか?

FrameなどでコードやUIを分離してデザインする場合にユニットがそれぞれ分散しますよね?
それぞれ、DataModuleにActionListおいておいて、
それぞれFrameなどから、
中央集権的にアクセスする感じでよいのかなあ?


それと Frame を使った場合やFormがたくさんある場合に、
ほかのFormを含むユニットの依存関係ってどう処理したものなんでしょうか?
ほかのFormやFrameをそのまま依存(つまり、uses)させてしまうと、分離している意味が少ない気がします。
DataModuleを介すれば、依存ユニットをusesする必要はあまりないですが、
解決になってない気もします。

546 :デフォルトの名無しさん:2008/09/04(木) 20:03:26
>>545
自分もいろいろ試行錯誤したけど
メインフォームに置くのが最適と判断した。
各フレームに対するアクションをそのフレームに委譲していくと
アプリにとって本質的な状態の管理やらの制御のコードがフォームに残る。
データモジュールだとそのメインフォームに対する処理も冗長になるからちょっと面倒で無駄な感じ。
フォームユニットをスカスカにしても得るものがないしね。

547 :デフォルトの名無しさん:2008/09/04(木) 20:55:40
デルピィ

548 :Delフサギコ ◆A6VzDeLphI :2008/09/04(木) 23:41:51
           _________
   ∧,,∧∩  / 
  ミ,,゚Д゚彡 <  日本がんがれ!
   ミつ旦.ミ   \ 
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪

やあ、元気っすか?

さて、いきなり、質問っす。
コマンドラインの出力をクリップボードにとりこむような
exeを作りたいんだよ。

dir > clip.exe

みたいな実行ができるexeをつくりたいっす。

誰かおしえてくださいな。

BlueLeaf1336-PROBLEMS-2004_0013
http://www.geocities.jp/fjtkt/problems/2004_0013.html
これを使うといいのかな?


549 :デフォルトの名無しさん:2008/09/05(金) 00:01:17
それやるとclip.exeが死亡するんだが…
dir|clipだよね?


まあ標準入力をTStringListに放り込んでいって
最後にClipBoard.Text = Strlist.Textでいけると思う。

550 :デフォルトの名無しさん:2008/09/05(金) 00:56:51
ゴミは消しとけよ>Delフサ

551 :Delフサギコ ◆A6VzDeLphI :2008/09/05(金) 00:57:10
  ∧,,∧  どもー
  ミ,,゚ 3 ゚彡 
  ミ つ旦)~~
〜と,,,~),,~) 
んーーー、こんなの書いてみて動きましたが

標準入力は、どうやって受け取るんでしょう?

program ToClip;
{$APPTYPE CONSOLE}
uses
 SysUtils,
 Classes,
 Clipbrd,
 GrabConsole in 'GrabConsole.pas';
var
 SL: TStringList;
begin
 SL := TStringList.Create; try
 PipeConsole('ipconfig', SL, nil);
 Clipboard.AsText := SL.Text;
 finally SL.Free; end;
end.


552 :デフォルトの名無しさん:2008/09/05(金) 01:25:24
APIのGetStdHandleで得てReadFileで読む

RTLのRead関数はCのstdinなんかに比べて貧弱だから使わない方が良い

553 :デフォルトの名無しさん:2008/09/05(金) 03:32:42
Delphi2009のバージョンアップは、今までより1〜2万高そう。

554 :デフォルトの名無しさん:2008/09/05(金) 04:52:23
dir > clip.exe
ワロタ

555 :デフォルトの名無しさん:2008/09/05(金) 07:14:12
program cbin;

uses
Windows, Classes, SysUtils, Clipbrd;

{$R *.res}

var
    s, line: String;
    n: Integer;
begin
    line := '';
    n := 0;
    while not Eof(Input) do
    begin
        Readln(s);
        if n = 0 then
            line := line + s
        else if n = 1 then
            line := line + sLineBreak + s + sLineBreak
        else
            line := line + s + sLineBreak;
        Inc(n);
    end;

    Clipboard.AsText := line;
end.

556 :デフォルトの名無しさん:2008/09/05(金) 07:16:26
program cbout;

uses
Windows, Classes, SysUtils, Clipbrd;

{$R *.res}

begin
    Write(Clipboard.AsText);
end.

これで
dir | cbin # クリップボードに取り込み
cbout # クリップボードを出力

cbout | sort | cbin # クリップボードをソート
な感じで使える

557 :デフォルトの名無しさん:2008/09/05(金) 18:09:41
このへんのはC++Builderのほうが楽だと思うよー
#include<vcl.h>
#pragma link "rtl.lib"
#pragma link "vcl.lib"
だけしとけば何も考えずにVCL使えるし

558 :デフォルトの名無しさん:2008/09/05(金) 18:42:07
パイプで繋ぐのはシェルの役目であって
プログラム自体はただの標準入出力するだけのコンソールアプリだろ。
言語選ぶようなもんでもない。

559 :Delフサギコ ◆A6VzDeLphI :2008/09/06(土) 00:44:14
  ∧,,∧  ♪
 ミ,,゚∀゚彡   ♪
 ミつ[|lllll]).
@ミ   ミ   ♪
  ∪''∪ 

すっげー、
ありがとう。

でも、cbinだと、こういうエラーが出るんだ。なんでかな?

---------------------------
デバッガ例外が発生
---------------------------
プロジェクト ClipboardIn.exe が EInOutError クラスの例外を生成しました。
'I/O エラー (6)'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
---------------------------
OK ヘルプ(H)
---------------------------


560 :デフォルトの名無しさん:2008/09/06(土) 00:48:23
{$apptype console}が抜けてるんじゃね

561 :Delフサギコ ◆A6VzDeLphI :2008/09/06(土) 00:56:59
んん?ちゃんと動きました。>>560さん。原因、そうかも。

    ∧,,∧   ありがとう
    ミ゚Д゚*彡  ございます。
   ミ(旦⊂ ミ  
    (~,,(~,,,ミ〜   

こんどは、ping -t 192.168.0.1 というずっと続く
コマンドを、Memo1コントロールあたりに
DOSプロンプトと同じ風に、1行つづ、出力したかったりするんですが

こういうのはどのようにしたらよろしかりけり?

それにしても、cbin、かっこいいな。

こういう実装もあるようです。どぞどそ。

File Area
http://www.slis.keio.ac.jp/~anakata/filearea/filearea.html


562 :デフォルトの名無しさん:2008/09/06(土) 02:56:02
>>561
CreateProcess, CreatePipeのサンプルがMLにあったはず。
中村氏だか戸田氏のコード。
それをサブスレッドで動かしてやれば標準出力を一行ごとに取れるだろう。

標準入力も受け付けるようなコンポーネントもあったな
T*Dos*だかなんだか。かなり大昔の話だけど。
delphi component pipeあたりで探してれば見つかるんじゃねーの。知らんけど。

にしてもコマンドラインもパイプもネットワークもまるで興味なさそうだったのに
猫も進化するもんだなw

563 :デフォルトの名無しさん:2008/09/06(土) 07:33:05
フサギコは犬だよ

564 :デフォルトの名無しさん:2008/09/06(土) 08:35:50
Ω ΩΩ ナ、ナンダッテー!!

565 :Delフサギコ ◆A6VzDeLphI :2008/09/07(日) 00:56:56
わ・・・わん・・・・・・・


   ∧.,,∧   >>562さん
  ミ.,,゚Д゚彡
  ミ つ目(ミ . 相変わらずですね。
〜ミ,,O,,,,,,つ  まあ、いいけど。

Autch.netさんところや、
[プロセスコミュニケートコンポーネント(適当w)]さんのところで
かかれているような応用すれば

> こんどは、ping -t 192.168.0.1 というずっと続く
> コマンドを、Memo1コントロールあたりに
> DOSプロンプトと同じ風に、1行つづ、出力したかったりするんですが

こういうのできるのかなあ。

んーー、ちょっとコーディングの感覚を取り戻す必要があるなあ。


566 :デフォルトの名無しさん:2008/09/07(日) 05:12:03
TMemIniFileのUNICODE対応版(WideString)はどこかにありませんでしょうか?

567 :デフォルトの名無しさん:2008/09/07(日) 09:56:55
INIファイル自体MS非推奨だからPrivate〜W系APIはない。
ついでに言えばUNICODE≠WideStringな。
MemInifileのソース抜いて頭にtype String = WideString;入れて再コンパイルしたら。

568 :デフォルトの名無しさん:2008/09/07(日) 11:14:50
TMemIniFileはAPI非依存だから、改造すればいけそうだね

569 : ◆XcB18Bks.Y :2008/09/07(日) 15:32:45
>>566
ワイド文字列の値を保存するだけなら
UTF8Encode関数でUTF-8に変換すればよいと思います
ワイド文字列のファイル名だと大変そうですね。

>>545
アクションリストは基本的にメインフォームに置いています。
データモジュールはユーザーインターフェース(U/I。表示や編集)と無関係な
内部情報や内部処理を置く場所に徹するべきだと思います。

フォームを複数使うプログラムでは
サブフォームやフレームがメインフォームを参照しないようにしています。


570 :545:2008/09/07(日) 15:56:17
>>569
UIに関するものはメインフォームに置く、ということですが、その場合
サブフォームやフレームがメインフォームを参照しないようにできるんでしょうか?

571 :デフォルトの名無しさん:2008/09/07(日) 16:56:06
Frame側でFileExecuteなんてpublicメソッドを用意して
メインフォーム側のFileExecuteイベントハンドラから呼び出せば依存関係がなくなる。
publicをpublishedにしてSender.Name + 'Execute'を検索すれば少し楽になる。

572 :545:2008/09/07(日) 20:04:55
いやそうでなく、フレーム側からメインフォームを参照するって話なのですが・・・

動的にメソッド呼ぶのはなんか違くないですか?

573 :571:2008/09/07(日) 20:31:26
(その逆はともかく)どうしてもフレーム、サブフォーム側からフォームを参照したくなければしなくてすむという話をしたつもりだったんだが。
動的かどうかはあまり本質的ではないと思うが。

574 :デフォルトの名無しさん:2008/09/07(日) 23:22:24
Delphi2007にUpdate3を当てると、System.pasが見つかりませんという
DCCエラーが出るのですがどうすればいいんでしょうか?
他のUpdateも必要なのかと思い、
December2007 UpdateとApril08 Hotfixも当ててみましたが改善されません。

誰かご存知でしたら、教えてください


575 :デフォルトの名無しさん:2008/09/08(月) 12:29:46
System.pasが見つからないは大抵コンパイラ起動する引数が多かったりするだけ
ライブラリパスとか減らせば直ると思うよ
こっちはd6per(笑)だから参考になるか分からんけども

576 : ◆XcB18Bks.Y :2008/09/08(月) 15:35:41
>>570
・内部情報と内部処理は全てデータモジュールに置く
・内部処理クラスや汎用関数は別のユニットに書く

とやるようにしたらメインフォームを参照することはなくなりました。

ただ、メインフォームにデータの保持とUIが一体化しているコンポを置く場合は
難しいかもしれません。


577 :デフォルトの名無しさん:2008/09/08(月) 21:53:44
>574
この件はローカライズの不具合で対応パッチがあったと思うけど。これか。
ttp://hiderin.air-nifty.com/delphi/2007/09/index.html#entry-20740562

578 :574:2008/09/08(月) 22:19:48
>575
アドバイスありがとうございます。
手動でライブラリパスを変更して、Delphiを再起動するとうまくいきました

>577
あ、問題はたぶんそれです
でも、それ今はアップデートリストに出てこなくなってるようです。

一応手動ではありますが、解決しました
ありがとうございました

579 :デフォルトの名無しさん:2008/09/09(火) 07:57:56
Delphi最新版の予約語一覧をネットから見られるとこないですかね。

580 :デフォルトの名無しさん:2008/09/09(火) 13:02:45
イメージ上でMouseDownしたときの処理A
同じくDlClickしたときの処理B

処理B実行後に時折Aが発動するんですが回避方法あります?
Bの端末にReleaseCapture入れてみたがダメだった。

581 :デフォルトの名無しさん:2008/09/09(火) 13:45:56
マウス操作ミスじゃないのか?
ダブルクリック後一定時間以内ならMouseDownを無視してはどうでしょう?

582 :デフォルトの名無しさん:2008/09/09(火) 17:26:47
マウスがチャタリング起こしてたりしない?

583 :デフォルトの名無しさん:2008/09/09(火) 21:00:44
>579
つ ttp://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devcommon/fundamentalsyntacticelementsov_xml.html

584 :デフォルトの名無しさん:2008/09/09(火) 21:30:02
出勤前、帰宅後で自作自演、ご苦労さん

585 :デフォルトの名無しさん:2008/09/10(水) 08:24:08
>>580
処理Aで↓

if not (ssDouble in Shift) then

586 :デフォルトの名無しさん:2008/09/10(水) 21:59:09
>>581>>582>>585どもです。
操作ミスではないようです。チャタリング?は調べてみたところ大丈夫みたい。
>>585で問題なく動作しました。ありがとうございます。
ssDubleについてはこれから調べてみます。

587 :デフォルトの名無しさん:2008/09/12(金) 19:13:43
少し相談にのっていただけないでしょうか?

TFrameをつくり、
フレームを使ってみる - DelWiki
http://delwiki.info/?%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B
こちらの方法で動的生成しているのですが、
実行時に以下のようなエラーが出てしまいます。

.dfmを見ると、ClientHeightが確かにあるのですが、削除しても
フレームを表示すると、ClientHeightが再生成されてしまいます。
(ClientHeightを一時的に削除しても、同様に PixelsPerInch、OldCreateOrderプロパティでも同じようにエラーがでます)
どのような対処したらよいものでしょうか?

---------------------------
mogemage
---------------------------
PropertyToolFrame.ClientHeight の読み込み中のエラー : プロパティ ClientHeight は存在しません.
---------------------------
OK
---------------------------

588 :デフォルトの名無しさん:2008/09/12(金) 19:16:04
環境を書き忘れていました。
BDS2006 OS: Vista SP1
です。

589 :デフォルトの名無しさん:2008/09/12(金) 19:38:52
>>587
おまいら、教えろ!

まで読んだ。

590 :587:2008/09/12(金) 20:08:04
>>587 です。
実は、Frameにこちらの TSpTBXFrame を、
Web interface to jrsoftware.org newsgroups - Re: Does SpTBXLib support TFrame ?
http://news.jrsoftware.org/read/article.php?id=15119&group=jrsoftware.toolbar2000.thirdparty#15119

使っておりまして、どうも TSpTBXFrame にしたときに
ClientHeight が published property にないのになぜか.dfmに保存されてしまうタイミングがあるようです。
(Forms.pasの property ClientHeight write SetClientHeight stored IsClientSizeStored が原因あるんでしょうか?)

そこでアドホックですが、

・「エディタで表示」(Alt + F12)でいったんIDE内でテキストで表示する
・エディタでエラーになる該当部分を消す。(ClientHeightなど)
・「フォームとして表示」(Alt + F12)で再表示する
・フレームのサイズを変更してみる
・コンパイル、実行

で修正OKでした。

結果的にエスパー必要としてスイマセン……

その後、「エディタで表示」で再度いじろうと思ったら、
---------------------------
情報
---------------------------
モジュール '(パス)hoge.pas' は継承またはリンクされたモジュールで使われています。.閉じること はできません。
---------------------------
OK
---------------------------
とかでで「エディタで表示」できなくなりました orz
これはどうしたもんでしょうか?

591 :587:2008/09/12(金) 20:31:37
> モジュール '(パス)hoge.pas' は継承またはリンクされたモジュールで使われています。.閉じること はできません。

の件は、どうやら フレーム名とフレームの型が .dfm と.pasで異なっていた(入力ミス?)
のための影響でした。整合性をたもちましたら、解消されました。


592 :587:2008/09/12(金) 20:41:59
何度もすいません。原因がわかってきました(´д`;)

こちらの TSpTBXFrame、
Web interface to jrsoftware.org newsgroups - Re: Does SpTBXLib support TFrame ?
http://news.jrsoftware.org/read/article.php?id=15119&group=jrsoftware.toolbar2000.thirdparty#15119

つまり、これなのですが、
gist: 8945 ? GitHub
http://gist.github.com/8945

デザイン時にTFrameを新規作成から生成し、
 THogeMyFrame = class(TSpTBXFrame)
という風に書き換えて、コンパイルし、いったん閉じて再度ひらいたところ
デザイン画面がTFormのものになっており(TFrameの場合、枠がないはずなのに枠がある)、
.dfmの保存時もあたかもTFormのように振舞ってしまい、ClientHeight以下、
その他もろもろが保存されてしまうようです。
(ちなみに、TTnTFrameに置き換えた際は大丈夫でした)

これは一体どのような現象なのでしょうか?

593 :デフォルトの名無しさん:2008/09/12(金) 21:39:56
もう日記にでも買いたら。そんな一般性のない自問自答はしらんがな

594 :デフォルトの名無しさん:2008/09/12(金) 22:56:07
>>592
おそらくIDEのバグ
回避方法はもう忘れた
発生のタイミングはフレーム上のコンポを弄って保存した時。なのであまり弄るなw

595 :デフォルトの名無しさん:2008/09/13(土) 09:08:18
TMainmenuのソース眺めてたらコンストラクタがなかったんだけど
こいつを弄りたいときはドコ見れば良いんでしょ?
複数のペインがあるソフトでToolBarとかじゃなく個々にメインメニューを
置けないもんかとふと思ってね。縦置きとか下段置きとかやれんもんかと。

596 :デフォルトの名無しさん:2008/09/13(土) 10:07:57
継承して弄りたいなら

TMyMainMenu = class(TMainMenu)
public
  constructor Create(AOwner: TComponent); override;

でいいんじゃないの。TMainMenuになければその親〜TComponentのコンストラクタがそのまま使われる。

597 :デフォルトの名無しさん:2008/09/13(土) 10:38:08
メニューそのものはウィンドウズのメニューだよ。ウィンドウズのメニュー
そのものの振るまいをかえることはできない。

598 :デフォルトの名無しさん:2008/09/13(土) 17:08:49
ToolBarのMenuBar := Trueにする方法がなかったけ?

599 :デフォルトの名無しさん:2008/09/14(日) 02:42:51
フォーム画面での「パネル」コンポーネントについて質問です。

すでにフォーム上に置いてあるコンポーネントを、
新たに配置したパネルの上に乗せたいのですが、
どうすればいいでしょうか?

画面左上の「構造」ウィンドウでドラッグしても、
駐車禁止マークみたいなものが出て、ドラッグできません。
(出来る時もあったように思うのですが・・・・)

600 :デフォルトの名無しさん:2008/09/14(日) 02:50:45
カット&ペースト

601 :599:2008/09/14(日) 03:08:38
できました!ありがとうございます。

602 :デフォルトの名無しさん:2008/09/14(日) 07:46:48
コンポーネントからParentのFormのイベントに対して反応することや、メソッドをフックするようなことは可能でしょうか?
具体的には、あるコンポーネントをFormに置くと、
CreateParamsを上書きして設定を書き換える、といったようなことです。

普通は、TMyForm.CreateParamsを定義して、
コンポーネントで定義したUpdateCreateParamsみたいなのを呼ぶものと思います。
ただ、もっと簡単にコンポーネントを利用できるようにならないかと思った次第です。

603 :デフォルトの名無しさん:2008/09/14(日) 18:33:57
継承のメカニズムに外部から干渉できるとすると大問題。
コンポーネントはポトペタができるクラスに過ぎない。
過大視するのは危険。

イベント横取りやメッセージフックは簡単にできる。あらかじめ外部から
干渉可能なメカニズムはコンポーネント化が有効かもね

604 :602:2008/09/14(日) 18:50:09
>>603
サンクス。
>>602には書いていなかったのですが一部やりたかった、
ウインドウメッセージの横取りは MakeObjectInstance でいけました。
調べたらサブクラス化といってDelphiでは定番の方法みたいですね。

CreateParamsはさすがにprotectedだし、というか普通のメソッドの横取りは無理だよなあ・・・
CreateParams時に、コンポーネントから呼び出してとドキュメントに書くしかないか。


どっかでアセンブラ使ってフックするような方法をみたんだけどあれはどこだったかなあ?
単なるWin32API呼び出しのフックだったかもしれない・・・。


605 :602:2008/09/14(日) 18:53:18
ありました。

madshi.net - madCodeHook description
http://www.madshi.net/madCodeHookDescription.htm

前にQuality CentralでVCLのバグを修正するのに利用されているのをみました。

606 :デフォルトの名無しさん:2008/09/14(日) 20:18:53
Delphi8あたりから導入された class helper ですが、
2つのhelperが同時に使えないのが痛いと感じています。
これって、改善の要望みたいなのってどこかに出ていないのでしょうか?

607 :デフォルトの名無しさん:2008/09/15(月) 21:43:14
すいません質問なのですが、Delphiには、任意の単語を登録して自動的にハイライトしてくれる機能を持ったテキストコントロールクラスがあると聞きました。
それってTRichEditというやつでしょうか??
教えて頂けると幸いです。

608 :デフォルトの名無しさん:2008/09/15(月) 21:51:43
>606
そういう積極的な使い方は非推奨だから…QCに出しても相手にされないと思う。
つかInterfaceとか使うべきなんじゃね?

>607
少なくともTRichEditではない。TRichEditはWindowsのWordPad相当のrtfエディタ。
TEditorとかSynEditとかかなぁ?

609 :デフォルトの名無しさん:2008/09/15(月) 22:21:25
RichEditも指定した単語をハイライトしたりというのは出来るけど
全部自分でコード書いてやらないといけないんだよな。

610 :デフォルトの名無しさん:2008/09/15(月) 22:49:15
DelphiIDEに使われてる16x16のツールバーのビットマップってどっかにないですか?
C:\Program Files\Common Files\Borland Shared\Images
のは数が少なかったり古臭かったりで微妙なんで

611 :607:2008/09/15(月) 23:39:52
ありがとうございます。

>>TEditorとかSynEditとかかなぁ?
ああ、調べてみるとどうやらTEditorのことだったようです。ありがとうございました。

>> RichEditも指定した単語をハイライトしたりというのは出来るけど
全部自分でコード書いてやらないといけないんだよな。
そなんですよね!なのでTEditorのようなのがあるといいんのですが、DelphiじゃなくてC++(MinGW)で使いたいんですよね。
TEditorみたいののC++版みたいのがあればいいんですが・・ってDelphiスレで聞くことではないですね。。

612 :デフォルトの名無しさん:2008/09/15(月) 23:42:11
C++BuilderならTEditorとか使えるがな

613 :607:2008/09/15(月) 23:43:50
http://www.kanazawa-net.ne.jp/~pmansato/Components.htm#teditor
ここにBCBでも使えるって書いてありますね。MinGWじゃだめなのかしら。。

614 :デフォルトの名無しさん:2008/09/15(月) 23:45:30
BCB(CCB?ECB?)だとDelphiのコードがコンパイルできる
なので他のコンパイラじゃ無理ぽ

615 :607:2008/09/15(月) 23:46:25
>>614
ああ、そうなのですか・・知りませんでした。ありがとうございますm(_ _)m

616 :デフォルトの名無しさん:2008/09/16(火) 14:41:18
C++Builderは、コンパイラがC++クラスとDelphiクラス両方のクラス扱えるようになってたりと、結構特殊な環境。

617 :デフォルトの名無しさん:2008/09/16(火) 14:56:54
質問です。
htmlの<form>〜</form>のデータを
Indyのpostで送信するプログラムを作成したいのですが
<input タグの
name="hoge" value="hogehoge"
等のデータを解釈して読み込み、post用にURLエンコードする必要がありますが
<input name="hoge value="hogehoge">
この name="文字列" 形式の、"文字列"部分を効率良く取得する方法がいまいちわかりません。
泥縄式に文字列を操作して書けばなんとかなりそうではあるのですが
スパっと取得できるワザはないでしょうか。
xxxx="xxxxx"形式を一発で取得する方法とか
よろしくおねがいします。


618 :デフォルトの名無しさん:2008/09/16(火) 16:28:33
>>617
TWebBrowserからIHTMLDocument2取ってきてDOMで操作するのは?

619 :587:2008/09/16(火) 16:37:51
TFrameの継承クラスが、デザインして保存後にTFormに化ける問題ですが、
TTnTFrameのソース見て、原因がわかってきました。

設計時のコンポーネントとして、Delphiに登録しないといけないようです。
登録していないと>>587のようにTFormとして認識され、おかしなことになります。
TTnTFrameはインスコ時にちゃんとDelphiに登録しているので大丈夫のようでした。

TTnTFrameの設計時インスコ用ライブラリのソースを真似て解決できそうです。

620 :デフォルトの名無しさん:2008/09/16(火) 16:54:42
>>618
他の処理もIndyなので、postするときだけIEコンポだと
ログインしている状態とかが引き継がれないので、
それは無理っぽいです。
<form>〜</form>を解釈してpostデータにしてくれるコンポがあれば一番いいのですが。
それか、name="hoge" value="hogehoge"を簡単に取得できる文字操作はないでしょうか。


621 :デフォルトの名無しさん:2008/09/16(火) 17:02:47
xhtmlならXMLパーサでなんとかできないっけ?

622 :デフォルトの名無しさん:2008/09/16(火) 17:04:03
普通はPosかwhileで探すんじゃね?

623 :デフォルトの名無しさん:2008/09/16(火) 17:07:30
Posとかだと変態チックなhtml投げられると詰まね?

624 :デフォルトの名無しさん:2008/09/16(火) 17:14:40
MBCSにも対応してないしな

625 :デフォルトの名無しさん:2008/09/16(火) 17:20:06
お前らなんで例にマジレスしてんの?

626 :デフォルトの名無しさん:2008/09/16(火) 17:30:46
こんなの投げられたら困るじゃない(`・ω・´)
http://pc11.2ch.net/test/read.cgi/tech/1198971515/46


627 :デフォルトの名無しさん:2008/09/16(火) 19:13:24
>>620
正規表現は?

628 :デフォルトの名無しさん:2008/09/16(火) 22:08:33
Tmemoから右クリックでメニューを出したいんですが
TPopupMenuとTPopupActionBarの違いがよくわかりません

629 :デフォルトの名無しさん:2008/09/16(火) 23:20:30
計氏のMP3Playerコンポを使っていますが
VolumeプロパティがVistaで機能しません
中の人はMMSystem.WaveOutSetVolumeとかしてるようですが

630 :デフォルトの名無しさん:2008/09/16(火) 23:29:26
作者に言え

631 :デフォルトの名無しさん:2008/09/17(水) 00:10:05
>>620
Indyで取得したソースを書き込んでパーサ機能だけ利用すればいいじゃん、ってことじゃないの?
ま、実際はWebBrowser使わずに直接パーサだけ利用できるんだけど

632 :デフォルトの名無しさん:2008/09/17(水) 00:15:11
>>631
おすすめのパーサは?

633 :デフォルトの名無しさん:2008/09/17(水) 00:26:31
おすすめも何もTWebBrowserが使ってるパーサが取替え可能とでも?

634 :デフォルトの名無しさん:2008/09/17(水) 01:05:30
>>620
2chのCookie程度で効率とか考えなくても

635 :デフォルトの名無しさん:2008/09/17(水) 08:45:02
スクリプト言語だとスクレイピング用のパーサーなんて一杯あるのにねえ
マイナー言語だとこの辺が面倒なんだよなあ・・・

636 :デフォルトの名無しさん:2008/09/17(水) 12:34:23
パーサーもろくにかけないのにプログラマー気取りか

637 :デフォルトの名無しさん:2008/09/17(水) 13:14:13
んでDelphi2009の体験版使ったやついないの?

638 :デフォルトの名無しさん:2008/09/17(水) 14:02:09
いくつかブログがヒットするな

639 :デフォルトの名無しさん:2008/09/17(水) 15:38:48
>>637
使ったよ

640 :デフォルトの名無しさん:2008/09/17(水) 20:11:24
MLで中村先生が少しだけレビューしてくれてるじゃないか

641 :デフォルトの名無しさん:2008/09/17(水) 20:16:17
DBすっぱり削っていいからソースつき&基本機能の制限なしのTurbo出してくれよ〜

642 :デフォルトの名無しさん:2008/09/17(水) 22:33:59
637 以降はオッチャネタだね。あっちへどうぞ。

643 :デフォルトの名無しさん:2008/09/17(水) 22:46:17
Delphi2009ってドトネトインスコ必須?

644 :デフォルトの名無しさん:2008/09/17(水) 23:28:39
>>643
必須

645 :デフォルトの名無しさん:2008/09/18(木) 02:38:44
>>636
そういうあおりでは釣れないよ〜
ただでさえDelphiは車輪の再発明ばかりで、うんざりしてるんだから
愚痴ぐらい言ってもよかろう

646 :デフォルトの名無しさん:2008/09/18(木) 09:51:57
拾ってきたソースで楽ばっかしようとばっかで
己の才能のないことをDelphiのせいにするなよ

647 :デフォルトの名無しさん:2008/09/18(木) 10:22:55
そんなこと言う奴はVCL使うの禁止だなw


まあパーサぐらい正規表現使ってぱっぱとやるべきだろうけど。

648 :デフォルトの名無しさん:2008/09/18(木) 13:33:36
Delphiで改行はさせないけど、ボックスいっぱいになったら
次の行に表示させるようにしたいんだけど

普通のEditだとそもそも一行しか表示できないっぽいから
RichEdit使ってみたんだけど、今度はMaxLengthに問題がでた。

EditではMaxLengthはバイト数なのにRichだと文字数になるらしい
どうすりゃいいんだろう;


649 :デフォルトの名無しさん:2008/09/18(木) 13:41:08
>>648
TMemoを使えばいいと思うよ。
ScrollBarsプロパティを ssNone か ssVertical にすれば勝手に折り返して表示してくれる

650 :デフォルトの名無しさん:2008/09/18(木) 14:00:24
できました!!
ありがとうございます!

651 :デフォルトの名無しさん:2008/09/18(木) 14:50:01
Delphi2006だけど、TADOTable.Refresh を実行すると、激しくメモリリークしないか?

652 :デフォルトの名無しさん:2008/09/18(木) 19:09:39
UNICODE文字列をANSI文字列方に変換したいから
WideCharToString関数を使ってみたがString型だったため
使えませんでした。

他にStringをANSI文字列方に変換する方法ってありませんかね?

653 :デフォルトの名無しさん:2008/09/18(木) 19:11:32
>>>652

ちなみにDelphi5です。

654 :デフォルトの名無しさん:2008/09/18(木) 19:20:48
StringはUnicode格納できないぜ?

655 :デフォルトの名無しさん:2008/09/18(木) 19:31:47
>>654

そうなんすか;
ありがとうございます

じゃぁ問題は他のとこか…;

656 :デフォルトの名無しさん:2008/09/18(木) 19:40:57
どんなことをしたら文字化け(だよな?)したんだ?

657 :デフォルトの名無しさん:2008/09/18(木) 19:49:04
文字化けっていうかBDEからADOに変えたら
DBに入力した文字数ではいらないんすよ;

必ず何文字かなくなる上に、消える文字数に規則性がみつからないんです;

658 :デフォルトの名無しさん:2008/09/18(木) 20:39:33
>>657

全く同じ症状です。
どうすればよいのでしょうか。
情報お願いします。

659 :デフォルトの名無しさん:2008/09/18(木) 21:32:27
Parameters.ParamByName('W_NAME').SIZE:= 40;

サイズ指定したら直りましたよ!


660 :デフォルトの名無しさん:2008/09/19(金) 06:19:21
2009どこに売ってるの?
昨日秋葉回ったけど無かった

661 :デフォルトの名無しさん:2008/09/19(金) 07:10:43
>>651
ReportsMemoryReaks := True
だったかで確認した?

662 :デフォルトの名無しさん:2008/09/19(金) 07:11:42
>>660
@nifty
seshop.com

663 :デフォルトの名無しさん:2008/09/19(金) 09:58:30
バージョンアップも店で買うようになったんだな。
ハガキが来ないからどうなったことだと思った。

664 :デフォルトの名無しさん:2008/09/19(金) 11:39:56
>>659

ありがとうございます!

665 :デフォルトの名無しさん:2008/09/19(金) 12:01:46
UnicodeStringにCRLFを挿入するときって#13#10でOK?

666 :デフォルトの名無しさん:2008/09/19(金) 12:13:32
Asciiと同じで#0が必要

667 :デフォルトの名無しさん:2008/09/19(金) 17:40:52
>Asciiと同じで#0が必要

ハツミミです。

668 :デフォルトの名無しさん:2008/09/19(金) 17:50:01
ネコミミでつ。

669 :デフォルトの名無しさん:2008/09/19(金) 19:32:21
文字コードの判定は何が良いでしょうか?
UTF-8なども判定したいのでjconvertは使えません

670 :デフォルトの名無しさん:2008/09/19(金) 22:44:09
好きな方法でどうぞ。ちなみに完全に正しく判別する方法はありません。
詳しくは文字コードスレあたりで。

671 :デフォルトの名無しさん:2008/09/20(土) 07:11:29
rubyのkconvみたいに適当でいいから判定してよライブラリがほしいのだろうと思う

672 :デフォルトの名無しさん:2008/09/20(土) 07:50:41
性格出るよねこういうときって

673 :デフォルトの名無しさん:2008/09/20(土) 09:51:04
たくさんの文字を調べれば遅くなるし
少しの文字しか調べないと甘くなるしな

674 : ◆XcB18Bks.Y :2008/09/21(日) 11:57:09
>>652
var
 s: string;
 ws: widestring;
begin
 ws := 'くだすれ';
 s := ws;
end;

…こういうことではなくて?


675 :669:2008/09/21(日) 21:41:47
皆さんありがとうございます
nkf32.dllを使おうと思ったのですがWideStringを渡す方法が分からなかったので使えませんでした
とりあえず自動判定は諦めるとして、文字コードの変換だけは実装しておきたいのですが、
WideStringのまま変換する例が無いのですが、何か良い方法はないでしょうか?

676 :デフォルトの名無しさん:2008/09/21(日) 22:43:01
エクスプローラのツリービューはフォルダをマウスダウン→アップで選択すると
リストビューにファイルが表示されますが、DelphiのTreeViewとListViewで同様の処理をする場合
どのイベントで記述すれば良いのでしょうか?TreeViewのOnChangeイベントだと
マウスダウンの段階でイベントが発生します。OnClickイベントならダウン→アップで
イベントが派生するので都合が良いのですが、OnClickはノード選択処理に使うのは不便です。
何か良い方法はありませんか?

677 :デフォルトの名無しさん:2008/09/22(月) 13:05:09
>>663

おいらもびっくりしたよ。いつも来ているバージョンアップ版の案内がこないからさー。
SEShop.comで買って大丈夫なんだよね?

678 :676:2008/09/22(月) 16:14:42
自己解決しました><

679 :デフォルトの名無しさん:2008/09/22(月) 23:17:20
Delphiで作られたランチャで、オープンソースのものってありまふか?
参考にしたいんですが。

680 :デフォルトの名無しさん:2008/09/22(月) 23:45:13
ランチャってただ起動処理を外部アプリに飛ばすだけなんじゃね?

あとはUIの秀逸さだけが勝負かと。

681 :デフォルトの名無しさん:2008/09/23(火) 00:51:30
どうやら久しぶりに会社でDELPHIにかかわることになりそうなんだけど
操作が全然覚えていない・・・
3.0の頃の書籍とか全部処分しちゃってるし

最近のお勧めってなんですか?

682 :デフォルトの名無しさん:2008/09/23(火) 00:57:06
>>681
なんですかって?お勧めの本?

683 :デフォルトの名無しさん:2008/09/23(火) 01:02:42
はい

684 :デフォルトの名無しさん:2008/09/23(火) 02:42:34
ない

685 :デフォルトの名無しさん:2008/09/23(火) 03:52:11
これなんかどう。
中身も読めるし。
http://books.google.co.jp/books?id=PbIgHHqhrIcC&printsec=frontcover&dq=delphi&as_brr=3&ei=_ASeSLCeHJvWtAP70pCeBQ&sig=ACfU3U2MzwQQwffFY1wl4CKhwNC1iwg0Dw#PPP1,M1

2005以降はMarco Cantuさんの洋書がお勧め。

686 :デフォルトの名無しさん:2008/09/23(火) 04:22:00
ああ、世界中で1000部やっと、ってやつね。

687 :デフォルトの名無しさん:2008/09/23(火) 04:48:38
>>685
なにこれww売る気無いのか?ww

688 :デフォルトの名無しさん:2008/09/24(水) 20:39:01
くだらない質問失礼
TFormのonShowってのはFormのVisible弄らない限り起動時にのみ呼び出されるの?

689 :デフォルトの名無しさん:2008/09/24(水) 21:09:57
>>688
いえす。

690 :デフォルトの名無しさん:2008/09/24(水) 22:49:24
Delphiの本スレってどこ?実質ここ?
別に超初心者じゃないんだけど。

691 :デフォルトの名無しさん:2008/09/24(水) 22:53:14
>>688
メインフォームならYES。メインフォーム以外ならケースバイケース。
「Visibleいじらない限り」というのがShowやShowModalも含むのなら
それ以外で呼び出されるってことはないんじゃないかな。


692 :デフォルトの名無しさん:2008/09/24(水) 22:59:48
質問スレはここだけみたいな気がする。

693 :デフォルトの名無しさん:2008/09/24(水) 23:31:04
昔はあったよね。本スレっぽい(雑談だったっけ?)スレが。

694 :デフォルトの名無しさん:2008/09/24(水) 23:35:00
寺子屋もあるぜよ

695 :デフォルトの名無しさん:2008/09/25(木) 01:56:45
Delphi2から使ってるんで、超初心者でも初心者でもないんだが
2009どうよ、とかそういう話題はどこですればいいんかなー。

696 :デフォルトの名無しさん:2008/09/25(木) 02:17:31
2chのDelphiスレは終わってるからMLでおk

697 :デフォルトの名無しさん:2008/09/25(木) 05:00:58
>>693
こっちでもやってるよ。

【Embarcadero】CodeGearオッチャ その12
http://pc11.2ch.net/test/read.cgi/tech/1221142134/l50

698 :デフォルトの名無しさん:2008/09/25(木) 11:42:49
>>690
質問スレここしかない。
超初心者じゃない俺も質問しているからOK

699 :デフォルトの名無しさん:2008/09/25(木) 16:04:17
TMemoの改行を不可にしたいからこういう処理書いてみたが、
BackSpace使うと即行Tmemo内の文字の最後尾に移動してしまうんですが。

Tmemo.Text := StringReplace(Tmemo.Text,#13#10,'',[rfReplaceAll]);
Tmemo.SelStart := Length(Tmemo.Text);

本来はどう書くのが正解?

700 :デフォルトの名無しさん:2008/09/25(木) 16:11:53
>>699
普通にonKeyPressで#13殺したらいいんじゃね?

701 :デフォルトの名無しさん:2008/09/25(木) 16:12:20
WantRetuensをFalseにするだけじゃダメなの?


702 :デフォルトの名無しさん:2008/09/25(木) 16:37:18
>>700
>>701

できました!!ありがとうございます!!!

703 :688:2008/09/25(木) 22:05:42
ありがとうございます


704 :デフォルトの名無しさん:2008/09/26(金) 05:22:48
指定した位置から、指定したバイト分の文字列を抜き出す関数ってありますか?

705 :デフォルトの名無しさん:2008/09/26(金) 05:23:52
Copyのまんまやん

706 :デフォルトの名無しさん:2008/09/26(金) 08:31:34
Toolbar2000のD2009対応バージョンでたよー
ttp://www.jrsoftware.org/tb2k.php

707 :デフォルトの名無しさん:2008/09/26(金) 08:37:04
Toolbar2000よりTurboDelphi2009はまだかー

708 :デフォルトの名無しさん:2008/09/26(金) 08:58:09
CodeGearは出す気はあるらしいけどね
学習用として出すらしいから機能は減るけど

709 :デフォルトの名無しさん:2008/09/26(金) 09:35:23
作ったソフトを配布できないとか意味不明な事はやめて欲しいのう

710 :デフォルトの名無しさん:2008/09/26(金) 09:38:29
>>709
経済のお勉強しような。

711 :デフォルトの名無しさん:2008/09/26(金) 09:41:01
(経済)笑い

712 :デフォルトの名無しさん:2008/09/26(金) 10:05:47
他人に上げるソフトなんて1部だけだし俺はそれでも構わんけどね

713 :デフォルトの名無しさん:2008/09/26(金) 16:27:13
>>705
Copyの引数ってバイト数じゃなくて文字数じゃないの?

714 :デフォルトの名無しさん:2008/09/26(金) 16:38:33
Copyはバイト数だよ。逆に文字数にしたかったらWideStringにキャスト

Copy('へべれけ', 2, 2) ==> '??'
Copy(WideString('へべれけ'), 2, 2) ==> 'べれ'

715 :デフォルトの名無しさん:2008/09/26(金) 20:53:50
>>711
カッコ逆w

716 :デフォルトの名無しさん:2008/09/26(金) 20:56:24
)経済(笑い

717 :デフォルトの名無しさん:2008/09/26(金) 22:07:34
>>716
そうそう、次からは間違えんなよ

718 :デフォルトの名無しさん:2008/09/27(土) 00:49:31
Turbo Explorerのことは、あきらめな。おそらくDelphi/C++Builderではなく、
Object Pascal/C++学習用環境、ということに…。

719 :デフォルトの名無しさん:2008/09/27(土) 13:13:53
Delphi 6 で仮想リストビュー使ってます。
チェックボックスも表示したいのですが、OnData イベントで StateIndex にセットしないと表示しないようなので、
どうせならマウスカーソルのポイントの有無で色を分けようと、イメージリストに4種類の絵を用意しました。
インデックスは 0: チェックなし、1: チェックなしポイントあり、2: チェックあり、3: チェックありポイントありです。

リストアイテムの上でカーソルを動かすと OnData イベントが発生するようなので、WM_MOSEMOVE を処理して
カーソルの位置からポイントしているアイテムを割り出して、OnData イベントでセットしわけようとしました。
WM_MOSEMOVE メッセージは Application.OnMessage イベントハンドラで処理しています。

コードの抜粋です。

【Application.OnMessage イベントハンドラ】
procedure TForm1.AppMessage(var Mesg: TMsg; var Handled: Boolean);
var
 Point: TPoint;
 idr: TRect;
begin
 if Mesg.message = WM_MOUSEMOVE then
   if Mesg.hwnd = ListView1.Handle then
   begin
    if ListView1.Items.Count > 0 then
    begin
     idr := ListView1.Items[0].DisplayRect(drBounds);
     if FListView1ItemHeght <> (idr.Bottom - idr.Top) then
      FListView1ItemHeght := (idr.Bottom - idr.Top);
    end;
    Point := ListView1.ScreenToClient(Mouse.CursorPos);
    FListView1MouseX := Point.X;
    FListView1MouseY := Point.Y;
    FListView1ItemIndex := (FListView1MouseY - ListView1.Top) div FListView1ItemHeght - 1;
   end;
end;

720 :719:2008/09/27(土) 13:15:17
(つづき)

【OnData イベント】
procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
var
 ColumnWidth: Integer;
begin
 ColumnWidth := ListView1.StringWidth(Format('Item%d', [Item.Index]));
 Item.Caption := Format('Item%d', [Item.Index]);

 if (FListView1ItemIndex = Item.Index) and (FListView1MouseX < 16) then
  Item.StateIndex := 1
 else
  Item.StateIndex := 0;

 if ListView1.Columns[0].Width < ColumnWidth + 30 then
  ListView1.Columns[0].Width := ColumnWidth + 30;
end;

しかしこれだとマウスカーソルをチェックボックスにポイントしても変化しません。
ポイントアイテムの特定がめちゃくちゃなのはわかってますが、ズレてても変化ぐらいはしてもいいと思うのですが…。
アイテムの特定に無理やりな計算をしているのは、GetItemAt メソッドの使用が原因かどうか切り分けたかった
からです。

ttp://mackerel205.ddo.jp/data/program/test/VirtualListViewCheckBox.zip

一応ここにプロジェクト一式置いておきますんで、興味があったら見てみてください。

721 :デフォルトの名無しさん:2008/09/27(土) 23:32:31
そんなもん使わないでぶあーちゃるつりーびゅぅーを使おうぜ!

722 :デフォルトの名無しさん:2008/09/28(日) 00:48:13
TListViewにファイル一覧を表示して、ドラッグ&ドロップで並び順を変更できるようにしています。
これにさらにOLE Drag and Dropの機能を追加して、ファイルを他のアプリケーションへドロップできるようにしようとしています。
この場合、どうすればOLE Drag and Dropと並び順の変更機能を共存させられるでしょうか?
並び順の変更もOLE Dropを受けて行うしかないのでしょうか。

723 :722:2008/09/28(日) 21:33:39
やっぱりOLE Dropの処理と統合するしかなさそうですね。
素直にそう実装することにします…。

724 :デフォルトの名無しさん:2008/10/01(水) 22:56:08
SpTBXLib 2.3 released.

Installation and requirements:
TNT is not used on Delphi/C++Builder 2009
http://club.telepolis.com/silverpointdev/sptbxlib/support.htm#installation

Web interface to jrsoftware.org newsgroups - ANN: SpTBXLib 2.3
http://news.jrsoftware.org/read/article.php?id=15223&group=jrsoftware.toolbar2000.thirdparty#15223

SpTBXLib のDelphi2009版はついに TNT 要らずになった

725 :デフォルトの名無しさん:2008/10/02(木) 08:55:23
自作のアプリのUIはMainMenu+Coolbar+ToolbarなXPのExplorer風からまったく進歩してないな・・・
ActionManagerとかって最新の環境だと普通に使われるくらい安定してるの?

726 :デフォルトの名無しさん:2008/10/03(金) 13:10:14
>>724
すごい。

727 :デフォルトの名無しさん:2008/10/03(金) 13:35:11
質問です。

TStringGridを使ってます。
例えば、Rowを削除したいのですが、簡単なメソッドがありません。
そこで、OnSelectCell内でRowの内容をずらして行って、最後に
RowCountを-1使用と試みても、
OnSelectCell内でCellsの内容をいじると再帰で呼ばれて、オーバフローに
なってしまいます。

簡単にRowを削除する方法ありますか?


728 :デフォルトの名無しさん:2008/10/03(金) 13:38:23
>>727
DelRow:=StringGRid1.Row;
for N=0 to StringGrid1.ColCount-1 do
StringGrid1.Cols[N].Delete(DelRow);
StrinGgrid1.RowCount:=StringGrid1.RowCount;

729 :デフォルトの名無しさん:2008/10/03(金) 13:59:26
>>728さん
ありがとうございます。
頂いたコードを試したりしたのですが、
”グリッドの行を追加/削除することは出来ません”
というエラーが出てしまうんです。

簡単にTValueListEditorのように空のRowを削除できないものでしょうか・・・

あ、すみません。環境はD6+XP SP3です。
よろしくお願いします。


730 :デフォルトの名無しさん:2008/10/03(金) 14:10:07
>>729
ごめん、なんか勘違いしてるわ。今は↓こんなんしか思いつかん。

for N:=StringGRid1.Row to StringGrid1.RowCount-2 do
 StringGrid1.Rows[N].Text:=StringGrid1.Rows[N+1].Text;
StrinGgrid1.RowCount:=StringGrid1.RowCount-1;


731 :デフォルトの名無しさん:2008/10/03(金) 14:22:21
730さん
何回もすみません。
ですよね。文字列を詰めて、最後にRowCountを調整するって簡単に考えていたのですが
それをOnSelectCell内で行うとスタックオーバーフローになるし、
どうしたもんかと思っていたんですよ・・・

ちょっと、ググったら、ビンゴかなと思われるページがありました。
http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/samples/00488.html
まだ、解読及び検証中ですが・・・

なにはともあれ、ありがとうございます。


732 :デフォルトの名無しさん:2008/10/04(土) 08:34:30
TPageControlにHintを設定したときにTabSheetの部分でヒントが表示されないようにするにはどうすればいいんでしょうか

733 :|Д゚彡 ◆A6VzDeLphI :2008/10/04(土) 10:46:27
StringGridでの行・列の挿入削除
http://delfusa.main.jp/delfusafloor/technic/technic/090_StringGridRowColInsertDelete.html

ここに書いてみました。どぞ。

734 :デフォルトの名無しさん:2008/10/06(月) 14:09:18
TMemo枠から文字列がはみ出てしまうので調整したいのですがどうしたらいいんですかね

735 :デフォルトの名無しさん:2008/10/06(月) 15:14:29
>>734質問間違えました

TQRLabelを一定の文字数に達したら折り返す方法ってありませんかね?

736 :デフォルトの名無しさん:2008/10/06(月) 20:48:37
OnDraw何とかイベントで描画処理書いたらどうでしょうかね?

737 :デフォルトの名無しさん:2008/10/07(火) 09:05:45
>>736
それってどうやるんですか;?
印刷するときに切れちゃうんで折り返したいんですが・・・;

738 :デフォルトの名無しさん:2008/10/07(火) 10:20:15
TQRLabelのことを知らないんではずしてるかもしれないが
Caption := 'aaa' + sLineBreak + 'bbb';
で折り返されるかもしれない。
無理なら凹みを取っ払ったMemoにでも表示してラベルに見せかけるしかない。

739 :デフォルトの名無しさん:2008/10/07(火) 10:57:53
>>738
Caption := 'aaa' + sLineBreak + 'bbb';
のほうはちょっと無理そうだったので凹みなくしたMemo使ってみたんですが

TQRLabel.Caption := TEdit.TMemo.Text;
のところで引っかかりました。(※ちなみにこれは印刷するデータを格納してるとこです
これを

TMemo.Text := TEdit.TMemo.Text;
に変えてみましたが、印刷の際入力した文字が入っていないのです;;


740 :デフォルトの名無しさん:2008/10/07(火) 15:21:21
delphi 2009 で unisynedit のパッケージ
コンパイルできた方いませんか???

741 :デフォルトの名無しさん:2008/10/07(火) 18:21:13
最新版ならコンパイル出来るんじゃね?
D2009のための対応がちらほら見受けられるぞ

742 :デフォルトの名無しさん:2008/10/07(火) 22:37:25
ExtractIconExの第3,4引数にnilを渡したいのにvarと宣言されていて渡せないんですがこれって回避方法ありますか?
自分で宣言書いたほうが早いかな・・・

743 :デフォルトの名無しさん:2008/10/07(火) 22:50:25
自分で同等の宣言を書いたほうが早いと思う。

744 :デフォルトの名無しさん:2008/10/07(火) 23:00:37
ありがとうございます

745 :デフォルトの名無しさん:2008/10/08(水) 07:29:31
PChar(nil)^
みたいなので無理やりいけたような。

746 :740:2008/10/08(水) 09:04:24
>>741
そうなんだけど
最新のでも、宣言に問題があるんだか、コンパイラオプションに問題があるんだか
うまくいかないので、もうちょっといじってみます

747 :デフォルトの名無しさん:2008/10/08(水) 18:52:50
ToBlindCarbonCopy って一行にひとつのメアドしか入れられないってヘルプにあったけど、
本当に入れられるメアドひとつだけ?

748 :デフォルトの名無しさん:2008/10/08(水) 18:55:22
やってみればいいじゃない

749 :デフォルトの名無しさん:2008/10/08(水) 19:48:42
>>748
やってみてるけどまずそのために必要なコンポーネントが見つからんのよ
TNMSMTPってやつ



750 :デフォルトの名無しさん:2008/10/08(水) 20:03:09
>>749
ごめn
見つけた。

やってみるわ

751 :デフォルトの名無しさん:2008/10/08(水) 22:19:32
>>749
> TNMSMTP

NetMasterって奴?
随分古いのを使っているんだなー。

752 :デフォルトの名無しさん:2008/10/08(水) 23:03:30
FastNet(NM...)は先がないんでIndyかICSをお勧めします。

753 :デフォルトの名無しさん:2008/10/08(水) 23:06:39
まあ今時FastNetをいじってるのは
保守かなんかで、Delphi 5時代の古いコードを直さなきゃならない
可愛そうな人なんだろうけど。

754 :デフォルトの名無しさん:2008/10/09(木) 09:27:02
>>753
正解。
保守でまんまDelphi5いじってる。
送信の
NMSMTP1.PostMessage.ToBlindCarbonCopy:=(w_AddList);

の前で w_AddList に複数アドレス入れてみてるけど、
w_AddList.Add('ad');
w_AddList.Add('ad');
w_AddList.Add('ad');
w_AddList.Add('ad');

でAccess violation のクラス例外出るわ。

・・・やる気半減

755 :デフォルトの名無しさん:2008/10/09(木) 11:18:13
>>754
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add('addr1');
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add('addr2');
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add('addr3');
のほうがいいんじゃね?もしくは
NMSMTP1.PostMessage.ToBlindCarbonCopy.Assign(w_AddList);
とか。
オブジェクトの代入はソース確認できないと怖くてできないな。

756 :デフォルトの名無しさん:2008/10/09(木) 11:54:09
FastNetはバグが多いから
メーカーが見捨てた代物だからな。

757 :デフォルトの名無しさん:2008/10/09(木) 13:42:03
>>755
ありがとうございます!
そこの部分では出なくなりました
で、結果的にこういう風になった。

// 件名
w_Subject := ('くだすれ');

//元のデータ
//w_AddList.Add('Address1');
//w_AddList.Add('Address2');

//新しいデータ
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add('Address1');
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add('Address2');

// 送信
NMSMTP1.PostMessage.FromAddress := 'USER_Address'; //メール送信者
NMSMTP1.PostMessage.Subject := w_Subject; //件名
NMSMTP1.PostMessage.ToBlindCarbonCopy:=(w_AddList); //メール受信者
NMSMTP1.PostMessage.Body.Add('本文〜'); //メール本文
NMSMTP1.SendMail;

当たり前だけどメール受信者んところでまた引っかかります;
教えてもらった"新しいデータ"部分をそこに入れると今度は
”Exceptionクラスの例外生成'Not Connected'プロセスは停止しています。”
ってなるのです。

758 :デフォルトの名無しさん:2008/10/09(木) 15:22:14
>>757 そりゃNot ConnectedってんだからConnectしないといかんのだろ。

というかそこでつまづいてるってことは既存のメール送信機能の修正
ではなくメール送信機能自体の追加なのか?それならNMSMTPなんか
じゃなくIndyなりICSなり使ったほうがいいんじゃね?

どうしてもNMSMTPを使いたいならヘルプのPostMessageプロパティ
の例をよく読んで全体の流れを把握するといいかも。それと日本語
の事情は考慮しないので文字化け対策が必要かもだ。
そんなことわかってるってんならスマン。

759 :デフォルトの名無しさん:2008/10/09(木) 17:18:52
>>758 ありがとうございます

基本として既存の修正をしているのですが、
その作りがだいぶ怪しいので既存のソースを基にしてチョンプロを
つくっているのです。

詳しく教えていただいてありがとうございます;
自分初心者なんで凄く助かります!

760 :デフォルトの名無しさん:2008/10/09(木) 18:21:35
学校でTurbo Delphiを使い始めたんですが・・・。
if文ができません。おしえてもらえますか?
整数nが正の数、負の数、0を判断するプログラムなんですが
begin
write('nは?');
readln(n);
if 0<n then writeln('正の数')
else if 0>n then writeln('負の数')
else if n=0 then; writeln('0である');
readln;
end.
正の数を打つと正の数、0であるが出力されます。
どこがちがいますか?


761 :デフォルトの名無しさん:2008/10/09(木) 18:26:21
if n=0 then の後にセミコロンがある。
これが何を意味するかは自分で考えてみ。

762 :デフォルトの名無しさん:2008/10/09(木) 18:26:24
then; writeln('0である');
  ↑

763 :デフォルトの名無しさん:2008/10/09(木) 22:49:00
「if n=0 then;」まるごといらね

764 :デフォルトの名無しさん:2008/10/09(木) 23:40:30
>760
冗長と思ってもbegin...endでブロックにするとよいと思う。もちろん>761でFAだけど。

765 :デフォルトの名無しさん:2008/10/10(金) 01:18:44
>>764
授業で教えてないことをすると怒られることもあるんだぜ

766 :デフォルトの名無しさん:2008/10/10(金) 01:34:20
そんな教授のいうことなんて聞かなくていい

767 :デフォルトの名無しさん:2008/10/10(金) 02:44:15
近頃はdelphiなんか習うのか
俺のときはCOBOL

768 :デフォルトの名無しさん:2008/10/10(金) 10:39:44
>>765
あー、俺 Z80 アセンブラの授業で習ってない命令とか使ったら怒られた。

769 :デフォルトの名無しさん:2008/10/10(金) 11:48:30
DelphiってよりPascal習ってる感じだな

770 :デフォルトの名無しさん:2008/10/10(金) 13:09:16
>>768
日本の学校教育は、課程主義(能力主義)じゃないからね。ペースを守らない子は×。
教員の立場からは、高能力者の放置 & 能力弱者への手厚い福祉で成り立っている。
飲み込みが早くて自ら進んで学習する子は差別され、牛歩と太極拳を強いられるのだ。

771 :デフォルトの名無しさん:2008/10/10(金) 13:27:03
うぜぇ

772 :デフォルトの名無しさん:2008/10/10(金) 14:43:19
プログラミングは適正があれば独学でどんどん進めるからなあ。
なければ悲惨。

まあ業界のプログラマーの大半は適正ないけど、無理やり規格品にして派遣するのが実情。

773 :デフォルトの名無しさん:2008/10/10(金) 15:17:19
EInvalidOperationクラスの例外で
'コントロール''は親ウィンドウを持っていません'
ってのは何が原因??;;

774 :デフォルトの名無しさん:2008/10/10(金) 15:40:31
そのコンポーネントの親がまだ決まってないときに描画させようとすると出るな。

描画の前に
if( Parent = nil )then exit;
とか入れてみるとどうなります?



775 :デフォルトの名無しさん:2008/10/10(金) 15:55:38
>>774
もう既に動いていたプログラムの別箇所を改修しただけだけど出るものなのですか?;
すみません。超若葉マークです自分;

776 :デフォルトの名無しさん:2008/10/10(金) 16:00:03
解決して欲しいならソースをどっかにあげろ

777 :ななしへたぐらま ◆XcB18Bks.Y :2008/10/10(金) 16:00:32
リストビューで最初の項目にフォーカスが来るようにしたいのですが来てくれません。
どうしたらよいでしょうか。
(レポート形式で仮想リストビュー,MultiSelect = Falseです)

ListView1.Items.Count := なんとかList.Count;
ListView1.UpdateItems(0, pred(なんとかList.Count));
if なんとかList.Count >= 1 then
 ListView1.ItemIndex := 0; //@

@を実行すると先頭の項目が選ばれた状態になりますが
フォーカスは最初の項目に来てくれません。
トレースしたところでは@の実行後にListView1.ItemIndexを読むと0が返ってきていますし
その後の待機中でも0のままでした。





778 :デフォルトの名無しさん:2008/10/10(金) 16:58:04
if なんとかList.Count >= 1 then
begin
 ListView1.ItemIndex := 0; //@
ListView1.ItemFocused := ListView1.Items[0];
end;

では駄目でごんすか?

779 :デフォルトの名無しさん:2008/10/10(金) 17:02:00
ちょっと邪道臭いけど自分はこれでしのいでるよ。
Sender.Perform(WM_KEYDOWN, VK_HOME, 0);


780 :ななしへたぐらま ◆XcB18Bks.Y :2008/10/10(金) 17:30:38
>>778-779
ありがとうございます。どちらもうまくいきました。

>>778はSelectedと組み合わせて望み通りになりました。
>>779は緊急回避のために覚えておいて損はなさそうですね。


781 :デフォルトの名無しさん:2008/10/10(金) 17:30:49
ListVoew1.Selected := ListView1.Items[0];
じゃね?

782 :デフォルトの名無しさん:2008/10/10(金) 17:38:03
>>761ありがとうございます。セミコロンは文を終わらせる
みたいな感じですよね?セミコロンを取ると次は0を打った
とき負の数、0であるがでてしまいました。。。


783 :デフォルトの名無しさん:2008/10/10(金) 18:19:55
>>774
違う場所で読み込みエラーが出ます

自分的に最早これどこでどうなっているのか分からなくなっているんで
もう誰かに投げます。



784 :デフォルトの名無しさん:2008/10/11(土) 15:31:43
write('nは?');
readln(n);
writeln('正負?見りゃわかるだろ');


785 :デフォルトの名無しさん:2008/10/11(土) 16:16:45
適正があるとかないとかより、好きか嫌いかの方が重要だろ。好きなら自主的に勉強するし。
おまえらも興味ない事に対しては覚えようとしないだろ。

786 :デフォルトの名無しさん:2008/10/11(土) 17:10:14
自アプリ限定でwav再生なんかの音量を変更する方法ってないですか?
自前でサウンドバッファを用意して云々みたいなのじゃなく手っ取り早い方法で。

787 :デフォルトの名無しさん:2008/10/11(土) 20:01:34
無理じゃね?

788 :デフォルトの名無しさん:2008/10/11(土) 20:02:05
waveOutSetVolume

789 :デフォルトの名無しさん:2008/10/11(土) 21:05:39
>>788
それはwavまるごとだろ

790 :デフォルトの名無しさん:2008/10/11(土) 23:21:48
Pasukari2010まで待つべきかmパスカルって国交スジだった「

791 :デフォルトの名無しさん:2008/10/12(日) 08:26:05
delphi2009の体験版をダウンロードしてインストールしたのですが体験版では.netアプリを作れないのでしょうか?

792 :デフォルトの名無しさん:2008/10/12(日) 08:47:50
製品版でも.NETアプリはつくれない

793 :デフォルトの名無しさん:2008/10/12(日) 08:49:23
>>791
製品版でも無理だと思うけど

794 :デフォルトの名無しさん:2008/10/12(日) 08:57:36
ありゃ?
インストールの際DelphiとC++と.netって3つのチェックボックスがあったと思ったんですがあれはそういう意味じゃなかったんですか・・・orz

795 :デフォルトの名無しさん:2008/10/12(日) 09:06:27
>>794
自分も体験版インストールしたけど、.NETのチェックボックスなんてあったかなぁ…。
Delphi2009自体の動作に.NET Frameworkが必要みたいだから、そのせい?

796 :デフォルトの名無しさん:2008/10/12(日) 09:11:45
>>795
あ、なるほど
.NET Frameworkをインストールするかどうかのチェックだったんですかね?
でもスタートメニューのところには確かに『Delphi .NET』ってあるんですよ
こんな感じです
http://www2.imgup.org/iup706892.jpg
でもこれを押しても起動しない

797 :795:2008/10/12(日) 09:26:40
>>796
あ、すごい。お得感があっていいな、いいな<そうか?

自分の環境を確かめてみたけど、「Delphi .NET」というメニューは
なかったです。何なんですかね。

798 :デフォルトの名無しさん:2008/10/12(日) 09:36:39
>>797
自分はネットワークインストールじゃなくてISOダウンロードする方で入れたんですがそのせいなんですかね?
使えないので意味ないですが


799 :デフォルトの名無しさん:2008/10/12(日) 10:00:24
ジェネリクスだめ、ユニコードだめ、リボンだめ、ヘルプだめ、.netだめか。
酷いな。


800 :デフォルトの名無しさん:2008/10/12(日) 10:17:47
Delphi2005相当だから、後2回分の変身でまともになると予想している

801 :デフォルトの名無しさん:2008/10/12(日) 10:52:50
>>798
なるほど、それはあるかも。
自分はネットワークインストールでした。

802 :デフォルトの名無しさん:2008/10/12(日) 15:54:02
時間の掛かる処理の進行状況の表示で良い方法ってないですか?
スレッドを使うとパフォーマンスが落ちるので今までステータスバー使って
UpdateやRepaintで描画をやってたんですが、ウィンドウを切り替えたりすると
たまに描画されない(ステータスバーの領域部分が)。
何か良きアドバイスを・・・

803 :デフォルトの名無しさん:2008/10/12(日) 16:12:41
スレッド使うとパフォーマンスが落ちるって…1件ずつSynchronizeで状況表示でもしてるんじゃないの?
> Method がメイン VCL スレッド内で実行している間,呼び出し元スレッドの実行は一時停止されます。
> Synchronize によるスレッド間調停はコストがかかり,多用するとスレッドに分けた意味がが無くなります。
> 性能を重視する場合にはアプリケーションの設計を見直し,できるだけスレッドやリソースが競合しないように
> 配慮する必要があります。
同期オブジェクト使うとかメッセージ使うとか違う方法でサブスレッド→メインスレッドの通知を処理すればいい。

804 :デフォルトの名無しさん:2008/10/12(日) 16:38:34
>>802
Delphiに限った話じゃないけど、
別スレッドでループさせているような処理があれば、
毎回通知するのではなく、数10回に一回とかに減らいてみては?
UI側では10msのオーダーで処理できていれば、違和感無いと思うので。



805 :デフォルトの名無しさん:2008/10/12(日) 18:31:48
スレッド使わない理由がない。

806 :デフォルトの名無しさん:2008/10/12(日) 20:34:27
http://www.torry.net/quicksearchd.php?String=Tdfs+Ext+ListView&Title=Yes
誰かこれのインストールの仕方教えて下さいお願いします。
DesignIntfとかTChangeLinkは解決できたんだけど次々エラーが出てインストールできません。助けて。

807 :806:2008/10/12(日) 20:45:45
delphi7proです


808 :デフォルトの名無しさん:2008/10/12(日) 20:46:37
>>806
対応してないだけじゃん
よく読めよ

809 :デフォルトの名無しさん:2008/10/13(月) 00:01:45
TComboBoxのStyleをcsDropDownにした時、中のエディタをReadOnlyにすることは出来ますか?
FindWindowとかで探すしか無いですかね?

810 :デフォルトの名無しさん:2008/10/13(月) 00:59:14
csDropDownListで駄目な理由をエスパーしてみる
編集させたくはないけどコピーはしたい?

811 :デフォルトの名無しさん:2008/10/13(月) 01:05:54
そうなんです
でも
SendMessage(GetWindow(ComboBox1.Handle, GW_CHILD),
EM_SETREADONLY, 1, 0);
で行けましたorz
スレ汚し申し訳ないです・・・

812 :デフォルトの名無しさん:2008/10/14(火) 14:42:01
TStringStreamの再代入って
TStringStream.Position := 0;
TStringStream.WriteString := 'data';
これであってますか?

813 :デフォルトの名無しさん:2008/10/14(火) 14:48:11
間違ってます。

814 :デフォルトの名無しさん:2008/10/14(火) 17:38:01
わからんかったからClearメソッドのあるTMemoryStreamを使ったぉ

815 :デフォルトの名無しさん:2008/10/14(火) 18:32:59
TVisualTreeViewってUnicord対応してないよね?

816 :デフォルトの名無しさん:2008/10/14(火) 18:39:04
TVirtualStringTreeの間違いだった・・・

817 :デフォルトの名無しさん:2008/10/14(火) 18:46:55
WebBrowserの選択範囲のテキストを取得するにはどうしたらいいですか?

818 :デフォルトの名無しさん:2008/10/14(火) 20:15:13
昔やったけどわすれた。

819 :デフォルトの名無しさん:2008/10/14(火) 20:22:55
選択範囲のHTMLを取得・設定
wbdoc.selection.createRange.htmlText
選択範囲のテキストを取得・設定
wbdoc.selection.createRange.Text


820 :デフォルトの名無しさん:2008/10/14(火) 21:06:32
>>819
どもです

821 :Delフサギコ ◆A6VzDeLphI :2008/10/15(水) 10:41:15
                _____________
   ∧,,∧        /
   ミ,,゚Д゚彡     <  おひさ
   〃つ_|| ̄ ̄ ̄ | \
 〜ミ,,, ,,|\||エーPC.|    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     '\||.======.|
         ̄ ̄ ̄
こんちは。

2009の勉強を2009を持たずにしてるんですが
TStringBuilderっていうのは、どういう場面で必要に
なってくるんでしょう?

今までの文字列足し算や置き換え関数などで十分かと思うんだけど

.NETとの互換性を考えての事なの?


822 :Delフサギコ ◆A6VzDeLphI :2008/10/15(水) 12:14:53
Delphi Unicodeワールド パートII: RTLの新機能と、Unicodeをサポートするクラス
http://dn.codegear.com/jp/article/38698#4TStringBuilder
               
   ∧,,∧   StringBuilderは、ここでみましたよっと....    
   ミ,,゚Д゚彡     
   〃つ_|| ̄ ̄ ̄ | 
 〜ミ,,, ,,|\||エーPC.|  
     '\||.======.|
         ̄ ̄ ̄
久々にいろんなところをチェックしたら、
D&CB2009の情報が多く出てきてますね。

823 :デフォルトの名無しさん:2008/10/15(水) 21:34:16
>>821
そりゃ速度がいる場合でしょ
自前でも同じようなもの作ってを Delphi4 の頃から使っていたんだけどリプレースを検討中
# 文字列の加算ループは O(n^2)、StringBuilder の加算ループは O(n log n)

824 :Delフサギコ ◆A6VzDeLphI :2008/10/15(水) 23:22:48
               
   ∧,,∧        サンコス
   ミ,,゚Д゚彡     
   〃つ_|| ̄ ̄ ̄ | 
 〜ミ,,, ,,|\||エーPC.|   
     '\||.======.|
         ̄ ̄ ̄
そでしたか。

文字列を作るときに、加算加算してからじゃなくて
最初に大きくSetLengthしてから、そこに文字を入れていって
最後にSetLengthを小さくしたりする手法がありましたが
あれをクラスでできるイメージなのですね。レスありがとです。

825 :デフォルトの名無しさん:2008/10/16(木) 06:45:07
長大な文字列って普通改行込みのテキストだから
TStringListで大半は事足りちゃうからな。あるいはTStreamとか。

簡単に言うとT(Object)List.Capacityみたいに
事前に末尾に遊びを用意しておいて追加を速くすると言うカラクリ。
と2009を知らずに言ってみる。

826 :デフォルトの名無しさん:2008/10/16(木) 06:47:12
TStringBuilder 高速説の否定論も出てきたので注意な。
http://blog.marcocantu.com/blog/not_so_fast_tstringbuilder.html

827 :デフォルトの名無しさん:2008/10/16(木) 06:53:56
どう実装したらStringBuilderを低速に出来るんだよw
まあFastMM入れたらStringの連結もかなり速くなるから
以前ほどには恩恵ないのかもしれないな

828 :デフォルトの名無しさん:2008/10/16(木) 07:01:53
そのうち公式発表がAllen Bauerあたりから出ると思う。

829 :デフォルトの名無しさん:2008/10/16(木) 07:38:50
>821
> .NETとの互換性を考えての事なの?
導入の動機はどうもそのようなことだったようです。.で作ってみたら意外に便利じゃね?ということで
話題になっている模様。

830 :デフォルトの名無しさん:2008/10/16(木) 21:18:13
Anchorsプロパティの便利さに気付いた
今まで時間無駄にしてたわwww

831 :823:2008/10/16(木) 22:37:42
StringBuilder おせええええええええええ

改行が多すぎますでソースが貼れません・・・

' ' の 10000000 回加算ループ、string 加算 406ms、StringBuilder 719ms、StringBuilder(キャパシティー設定済) 703ms

知らないうちに Delphi の string 操作は爆速化してたのね・・・

832 :デフォルトの名無しさん:2008/10/16(木) 23:13:50
FastMMで爆速になったからなあ
当時、うちの自前ゲームのベンチがメッチャ速くなって驚いたもんだよ

833 :デフォルトの名無しさん:2008/10/16(木) 23:21:15
>>830
今知ったw
ReSizeへの記述になれてしまうとなんか取っつきにくいってか、
さっきいろいろ試してて早速コンテナが重なってしまったw

834 :デフォルトの名無しさん:2008/10/16(木) 23:22:57
FastMM?

FastMoveで高速化した気がするけど、どっちも使ってるからどちらが有効かベンチはとってないなあ。

835 :デフォルトの名無しさん:2008/10/16(木) 23:43:39
FastMM じゃなくて
FastCodeの効果じゃないのかな。

Unicode化でFastCodeは使えなくなったから
また新しいのを作ってもらう必要があるんじゃ無いか。

836 :Delフサギコ ◆A6VzDeLphI :2008/10/17(金) 00:14:41
              
   ∧,,∧        さすがに
   ミ,,゚Д゚彡      Anchorsプロパティは
   〃つ_|| ̄ ̄ ̄ | どれほどか前だったろうかと。
 〜ミ,,, ,,|\||エーPC.|   
     '\||.======.|
         ̄ ̄ ̄
.NET開始直後か、それ以前だったような…

Marginプロパとか、それ以降も進化してまする。

>826さん
ノット、ソー ファーストですか。。。
テストコードが出てきそうですね。


837 :デフォルトの名無しさん:2008/10/17(金) 00:17:36
>>836
コードは書いてあるじゃないか。

> 4) Olaf Monien さんのTStringBuilder 高速説に、Marco Cantu さんから
> 突込みが入っています。「TStringBuilder を使って1文字を文字列に連結するのは
> ちょっと速いが、実際の文字列(と文字列)を連結するは著しく遅い」のだそうです。
> ”便利なクラスだけど、速いからという理由で使うというのは止めましょう”と
> 主張しています。

838 :デフォルトの名無しさん:2008/10/17(金) 01:12:40
TStringListの方が速かったりして南

839 :デフォルトの名無しさん:2008/10/17(金) 04:40:48
TStringList とはなんの関係もないと思うが

840 :Delフサギコ ◆A6VzDeLphI :2008/10/17(金) 10:51:44
>>StringBuilderは何のために必要なんですか?
>>速度が速いですよ
>>TStringBuilder 高速説の否定論
>> .NETとの互換性を考えての事なの?
>>導入の動機はどうもそのようなことだったようです。
>> ”便利なクラスだけど、速いからという理由で使うというのは止めましょう”と
>> 主張しています。

いまどこ?
最初に戻るんですが、、、StringBuilderは何のために必要なん?
   ∧,,∧       
   ミ;゚Д゚彡      モドッチマッタヨ
   〃つ_|| ̄ ̄ ̄ | 
 〜ミ,,, ,,|\||エーPC.|   
型変換せずにAppendできる所とか、AppendAppendAppendできる
ところとか、.NET互換という所かな。

.NET取り込みもこのインターフェース互換程度に
Win32で実装していってもらえると気楽に移行できそうですね。

841 :Delフサギコ ◆A6VzDeLphI :2008/10/17(金) 10:58:10
とりあえず、関数ベンチマークコードを書いておきました。

関数のベンチマーク、時間測定
http://delfusa.main.jp/delfusafloor/technic/technic/091_FunctionBenchMark.html
   ∧,,∧      
   ミ,,゚Д゚彡___  
   〃つ___||エエエPC| 
 〜ミ,,, ,,,\||___.|
これでStringBuilderと、文字列の加算の比較、
文字列長や回数で動作時間がどう変わるかを
測定しやすいと思うので、やりたい方はどーぞです。


842 :デフォルトの名無しさん:2008/10/17(金) 11:46:35
>>840
> 最初に戻るんですが、、、StringBuilderは何のために必要なん?

.net に倣って一応作ってみたけど
そんなに重要性はないって所に落ち着いたのかな?

> 型変換せずにAppendできる所とか、AppendAppendAppendできる
> ところとか、.NET互換という所かな。

そんな感じじゃね。


843 :デフォルトの名無しさん:2008/10/17(金) 16:51:28
Delphi2009 で、指定したパッケージだけ String や Char を
AnsiString 解釈でコンパイルするようなオプションて無いのだろうか...

844 :デフォルトの名無しさん:2008/10/17(金) 16:59:53
TWinControlとStringで互換性がないって言われるときはどうするべき?

845 :デフォルトの名無しさん:2008/10/17(金) 17:01:12
>>844
全然違うものを代入しようとしてるんだろ。

846 :デフォルトの名無しさん:2008/10/17(金) 17:59:18
>>843
AnsiString やAnsiChar にソースを直せばいいだけじゃね。

847 :デフォルトの名無しさん:2008/10/17(金) 23:30:07
不便だなD2009って。

848 :デフォルトの名無しさん:2008/10/18(土) 08:37:03
禿同。ノコギリで十分なのにチェンソー使わせられてる気分。

849 :デフォルトの名無しさん:2008/10/18(土) 08:53:31
>>848
なにもそこまで、自分はバカだって告白しなくてもいいのに。


850 :デフォルトの名無しさん:2008/10/18(土) 11:31:34
Turbo Delphi Explorer 無料版使ってます。
リソースファイルを作りたいのですが、
「ファイル」→「新規作成」とやっても、
「リソースファイル」というのがありません。

Turbo Delphi Explorer 無料版には
この機能がついてないのでしょうか?



851 :デフォルトの名無しさん:2008/10/18(土) 11:51:08
手書きでおk

852 :デフォルトの名無しさん:2008/10/18(土) 12:33:26
>>830
パネルに乗っけて多重に敷き詰めたりするとさらに便利だよ。

853 :デフォルトの名無しさん:2008/10/18(土) 12:51:57
TurboDelphiExplorerってパッチなし?

854 :デフォルトの名無しさん:2008/10/18(土) 16:23:11
>>853
CodeGearのサイトにHotfixが公開されてたと思うよ

855 :ななしへたぐらま ◆XcB18Bks.Y :2008/10/18(土) 18:09:58
>>836
アンカーはDelphi 4です。
ボタンを右寄せで配置するとかそういうときにすごく便利。

(Delphi 4の目玉はアンカーとアクションリストと動的配列かな?)

ただ、フレームにコンポを右寄せとかで載せると
それを別のフォームなどに載せたときに位置がおかしくなることがあるのですがうちだけ?


>>850
>>851の通り手書きで。
テキストファイルとして新規作成して拡張子.rcで保存してプロジェクトに追加。

本来はこれだけであとは勝手にコンパイルしてくれるはずなのですが
IDEのバグなのか最初のコンパイルだけうまくいきませんので
最初だけはコマンドラインから brc32.exe でコンパイルしてください。


856 :デフォルトの名無しさん:2008/10/18(土) 18:17:38
>>855
うちもアンカーの件で困ってます。

w2kではめったに出ないので環境依存のような気も…

857 :デフォルトの名無しさん:2008/10/18(土) 18:20:39
>>856追記
D7pro(あれこれアップデート済)でw2kマシンでコンパイルし
exeをWinXP(sp2以降)上で動かしています。

自分でしか使ってないアプリなのでどうでもいいんですけどねw

858 :デフォルトの名無しさん:2008/10/18(土) 18:44:45
>>850
> この機能がついてないのでしょうか?

Explorerに限らず、Delphi2005〜Delphi2007までは
ついていない。

XN Resource Editor
http://www.wilsonc.demon.co.uk/d10resourceeditor.htm

859 :850:2008/10/18(土) 19:40:10
付いてないんですか。分かりました。
返答ありがとうございました。

860 :デフォルトの名無しさん:2008/10/18(土) 21:43:45
BRegExp.pas に必要な mt19937.pas が拾えません。 誰かうpしてくれませぬか?

BRegExp.pas
http://72.14.235.104/search?q=cache:cgIs8W7-0kYJ:trac.aoikujira.com/nako/browser/trunk/hi_unit/BRegExp.pas+BRegExp.pas&hl=ja&ct=clnk&cd=4&gl=jp&lr=lang_ja

あと、BRegExp.pas を使わない他の方法で bregonig.dll を使える方法があれば
紹介していただけると幸いです*^^* サンプルコードがあればさらに幸せ*^^*

よろしくお願いします(W▽W//)

// trac.aoikujira.com さん復活して><

861 :デフォルトの名無しさん:2008/10/18(土) 22:04:06
ウニもうかえるTRegExprつかえお

862 :デフォルトの名無しさん:2008/10/18(土) 22:07:41
>>861
これ嫁だお
ttp://wantech.ikuto.com/diary/02soft/2006/06_0404_1118.htm

863 :デフォルトの名無しさん:2008/10/18(土) 22:07:42
ウニは重いのでいらないです。

864 :デフォルトの名無しさん:2008/10/18(土) 22:13:15
さっさとうpするよろし。

865 :デフォルトの名無しさん:2008/10/18(土) 22:14:27
>>862
確かに少しはやいけどどうてきリンクとかつかいたくないお
せいてき/////りんくならつかいたいお><

866 :デフォルトの名無しさん:2008/10/18(土) 22:16:17
え、これって正規表現検索するたびにdllファイルに齷齪するの?

867 :デフォルトの名無しさん:2008/10/18(土) 22:22:49
ウニコードは半角と全角の区別が面倒なのでいらないっす

868 :デフォルトの名無しさん:2008/10/18(土) 22:23:57
ウニじゃなくてシフトジスで使うから安心汁。

869 :860:2008/10/18(土) 22:33:15
あれ? >>860のリンク先の BRegExp.pas と↓で公開されてる BRegExp.pas は別物?

http://www2.big.or.jp/~osamu/Delphi/MyLibrary.htm

これだと mt19937.pas がいらない予感。

うっはー、思いっきり遠回りしてたのかorz 同名で違う内容のファイルがあると
ややこしいなー、ファイル名変えてくれよorz。

>>860の質問は解決しました、お騒がせしますたm(__)m

870 :デフォルトの名無しさん:2008/10/18(土) 23:22:35
>>860
> // trac.aoikujira.com さん復活して><
なでしこ(とその周辺のソース)のことならhttp://code.google.com/p/nadesiko/source/browse/#svn/trunkからどぞ

871 :デフォルトの名無しさん:2008/10/18(土) 23:30:13
>>870
ありがとうございます。 一応同じ名前のファイルはありました。

mt19937.pas
http://code.google.com/p/nadesiko/source/browse/trunk/hi_unit/mt19937.pas

でも何故か必要な関数が無くてコンパイルエラーに・・。
おとなしく竹内さん作のものを使っておきます、どもでした。


872 :860:2008/10/19(日) 03:07:40
BRegExp.pas
http://www2.big.or.jp/~osamu/Delphi/MyLibrary.htm

このヘルプファイルに載ってるサンプルコードをコピペして動かしてみたら例外発生。
もう嫌になって投げ出そうかと思ってたんだけどサンプルコードを良く見たら正規表現が
おかしかった。 これを直したら例外出ず。

サンプルコードが間違ってるとかマジで勘弁して下さい!><

"TBRegExp" ページ
×brx.Match('m/;(+);/',s);
○brx.Match('m/;(.+);/',s);

× brx.Subst('s/(+)/"$1"/g',s);
○ brx.Subst('s/(.+)/"$1"/g',s);

半日悩んだ。 禿げたので謝罪とばいry

873 :860:2008/10/19(日) 03:14:54
同じ誤りを ”Bmatch” ページでも確認。 他のページでも (.+) が (+) になってるっぽい。
これは正規表現に明るくない人には分からないだろうな〜。(ー人ー)

武内さん、出来たら修正お願いします。

874 :860:2008/10/19(日) 03:18:56
"brx関数" ページの

if not brx.Match('m//', Edit1.Text) then

もおかしい気がする。 // の間に検索文字列がない。

875 :デフォルトの名無しさん:2008/10/19(日) 03:33:42
ないないない、なーんにもない

876 :860:2008/10/19(日) 04:35:05
あれ、

× brx.Subst('s/(+)/"$1"/g',s);
○ brx.Subst('s/(\d+)/"$1"/g',s);

かな。 じゃないと下の結果にならないや。

// '"123";"456";"789"'

877 :デフォルトの名無しさん:2008/10/19(日) 07:48:32
メソッド -> Match のサンプルコードもおかしいわ。
なんだこれ、なんでこんなにめちゃくちゃなんだ。

878 :デフォルトの名無しさん:2008/10/19(日) 20:34:37
マルチバイト対応の信頼できる正規表現エンジンが少なくて困るな。
Unicodeなら、VBScriptの使えるからいいんだけど。


879 :デフォルトの名無しさん:2008/10/19(日) 23:33:59
鬼車使え

880 :860:2008/10/20(月) 03:21:31
BSubstの説明ページの内容がBTransの説明になってる。
このヘルプ間違いだらけだ、もう嫌・・。

881 :デフォルトの名無しさん:2008/10/20(月) 08:57:57
bregonig.dll知らない奴はほっとけ。

882 :デフォルトの名無しさん:2008/10/20(月) 11:10:17
鬼車知らないと思ってるあたりがレベル低くて、
もう嫌・・

883 :デフォルトの名無しさん:2008/10/20(月) 18:15:58
フォルダの空き容量の取得方法ってどんなのありますか?

884 :デフォルトの名無しさん:2008/10/20(月) 18:21:29
フォルダの空き容量とな?

885 :デフォルトの名無しさん:2008/10/20(月) 18:27:20
http://www.google.co.jp/search?num=30&hl=ja&q=%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96+%E7%A9%BA%E3%81%8D%E5%AE%B9%E9%87%8F+%E5%8F%96%E5%BE%97+Win32API&btnG=%E6%A4%9C%E7%B4%A2&lr=

886 :デフォルトの名無しさん:2008/10/20(月) 22:42:24
ドライブの空き容量なら、int 21hファンクションで(ry

887 :デフォルトの名無しさん:2008/10/21(火) 02:14:00
文字列の横幅を取得したいんですが何かいい方法ありませんか?

w := GetTextWidth('あああああ'); //こんな感じで・・・

888 :デフォルトの名無しさん:2008/10/21(火) 02:32:39
使うフォントの種類で横幅はみな違うじゃん。


889 :デフォルトの名無しさん:2008/10/21(火) 02:46:05
それふぉんと?

890 :887:2008/10/21(火) 02:57:24
あ、そっか
TCanvasに横幅取得できるメソッドみつけました
お騒がせしてもうしわけないw

891 :デフォルトの名無しさん:2008/10/21(火) 10:43:21
ヒントに画像をポップアップ表示させたくて
THintWindoiwを表示させてCanvas.Draw等で
Bitmapを描画させてみたのですが全く表示されません。
TImageを作って表示させてみてもうまくいきません。
THintWindoiwに画像を表示させるにはどうやったらいいのでしょうか?

892 :デフォルトの名無しさん:2008/10/21(火) 10:56:09
THintWindow を継承したコンポーネントを作成して、
それの Paint メソッドで描画するようにする。

893 :デフォルトの名無しさん:2008/10/21(火) 10:59:45
THintWindowを継承してBitmapを表示できるようなユニットを作るべきだろうね。

JaneViewのソースとか参考になるんじゃないかな?

894 :891:2008/10/21(火) 11:37:18
>>892
>>893
ありがとうございます。
継承して中のPaintから書かないとだめだったんですね。
Janeのソースも早速探してみます。

895 :デフォルトの名無しさん:2008/10/21(火) 20:38:17
動的に作ったパネルとかを再読み込みかけてもう一度読み直したいときに、
作った奴を消す見たいな処理ってどうすれば良いですかね?

流れ的には
動的(配列で)パネルを作る→消す→もう一度作る
見ないな感じです。

説明不足だったらすいません。

896 :デフォルトの名無しさん:2008/10/21(火) 21:01:01
Free

897 :デフォルトの名無しさん:2008/10/21(火) 21:03:40
消すのはFreeでいいと思うけど作り直したいならRecreateWndじゃね

procedure TForm1.Button1Click(Sender: TObject);
type
TAccessPanel = class(TCustomPanel);
begin
TAccessPanel(Panel1).RecreteWnd;
end;

898 :デフォルトの名無しさん:2008/10/21(火) 21:18:41
>>897
それはパネルがたくさんあっても使えますか?
ちなみに何個あるかっていうのは分からないです。
もう一度表示したときは増えてたり減ってたりするのですが;

899 :デフォルトの名無しさん:2008/10/21(火) 21:27:20
>>898
type
TAccessPanel = class(TCustomPanel);
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ComponentCount - 1 do
if Components[I] is TCustomPanel then
TAccessPanel(Components[I]).RecreateWnd;
end;

900 :デフォルトの名無しさん:2008/10/21(火) 21:46:21
こんにちは、初めまして。
TShellListViewは今何処で手に入るのでしょうか?
知っている方いらっしゃったら教えてください。

XPとDelphi5pro使ってます。

901 :デフォルトの名無しさん:2008/10/21(火) 21:49:30
D6ならSamplesタブに入ってるな

902 :900:2008/10/21(火) 21:59:03
>901様 返信ありがとうございます。
Delphi6ならsampleに入っているのですか><
Delphi5で使える方法はないのかな。。。

903 :デフォルトの名無しさん:2008/10/21(火) 22:00:33
>再読み込みかけてもう一度読み直したいときに

これが意味不明。

904 :デフォルトの名無しさん:2008/10/21(火) 22:23:58
>895
フレームにすれば?フレーム上にパネルなどを貼っておいて動的に生成、解放する。

905 :デフォルトの名無しさん:2008/10/22(水) 10:28:46
教えてください。
class型宣言の
TFoo=class(TObject)
 A:Integer;
public
 B:Integer;
end;
のAとBの扱いの違いってなんですか?

906 :デフォルトの名無しさん:2008/10/22(水) 12:12:23
Aはpublishedになる

907 :デフォルトの名無しさん:2008/10/22(水) 13:16:59
$M+なユニットまたはそのクラスから派生されたクラスの場合はpublished
違う場合はpublic

908 :デフォルトの名無しさん:2008/10/22(水) 20:49:19
>>900
開発は終わってるけどソース付き
http://www.csync.net/service/file/view.cgi?id=1224676103

909 :デフォルトの名無しさん:2008/10/22(水) 22:26:04
サブウィンドウから親ウィンドウの操作ってできますか?

910 :デフォルトの名無しさん:2008/10/22(水) 22:46:42
できない理由はないけど、日本語でおk

911 :デフォルトの名無しさん:2008/10/23(木) 10:31:58
質問です。
ある画面でローカルテーブルを作成しました。
そのローカルテーブルとDBGridのカラムを接続する方法がわかりません。
どなかたわかりますでしょうか?

912 :デフォルトの名無しさん:2008/10/23(木) 18:15:08
const
Test1: array[1..5] of String = ('a', 'b', 'c', 'd', 'e');
Test2: TStringDynArray = Test1;
みたいなことって出来ませんか?

913 :デフォルトの名無しさん:2008/10/23(木) 18:17:50
できません。

function MakeStringDynArray(arr: array of String): TStringDynArray;

みたいなのを根性で整備しておくと後々楽になるよ。

914 :デフォルトの名無しさん:2008/10/23(木) 18:32:25
ありがとうございます
定数でやりたいのでポインタでも格納しとくことにします

915 :ななしへたぐらま ◆XcB18Bks.Y :2008/10/23(木) 21:35:32
>>912,914
エスパーレスしてみます。
単なる2つの配列定数が同じものを指すのは無意味でしょうから
要素として配列を持つレコードの定数が複数あって
複数の要素が同じものを指しているパターンでしょうか。
違うかもしれませんが作っちゃったのでコードをさらします。

program R04StrArray;

{$APPTYPE CONSOLE}

uses
 SysUtils;

type
 PFiveStrings = ^TFiveStrings;
 TFiveStrings = array [1..5] of string;
 TGroupMembers = record
  LeaderName: string;
  SubMembers: PFiveStrings;
 end;

const
 cFiveStrings: array [1..5] of string = ('a', 'b', 'c', 'd', 'e');
 cAlphaGroup: TGroupMembers = (LeaderName: 'Shibayama'; SubMembers: @cFiveStrings);
 cBetaGroup: TGroupMembers = (LeaderName: 'Morita'; SubMembers: @cFiveStrings);
(続く)

916 :ななしへたぐらま ◆XcB18Bks.Y :2008/10/23(木) 21:36:17
>>915の続き)
procedure WriteGroupMembers(GroupMembers: TGroupMembers);
var
 i: integer;
 p: PFiveStrings;
begin
 WriteLn('Leader: ', GroupMembers.LeaderName);
 WriteLn('SubMembers:');
 p := GroupMembers.SubMembers;
 for i := Low(p^) to High(p^) do
 begin
  if i > Low(p^) then
   Write(', ');
  Write(i, ':', p^[i]);
 end;
 Writeln;
end;

begin
 Writeln('AlphaGroup:');
 WriteGroupMembers(cAlphaGroup);
 Writeln('BetaGroup:');
 WriteGroupMembers(cBetaGroup);

 Readln;
end.


917 :ななしへたぐらま ◆XcB18Bks.Y :2008/10/23(木) 21:37:00
っていうか「ポインタでも」って書いてありましたね(意味ねえw)


918 :デフォルトの名無しさん:2008/10/24(金) 23:42:56
メッセンジャーのようなタスクトレイ付近でポップアップされる
中のテキストがクリックできるコンポーネントってありますか?

919 :デフォルトの名無しさん:2008/10/25(土) 09:54:28
TaskTray系コンポには大抵付いてるんじゃないの。
タスクトレイアイコンを表示させずにできるかどうかは知らないけど。

920 :デフォルトの名無しさん:2008/10/25(土) 10:16:11
>>919
「ポップアップされる中のテキストがクリックできる」
ものは見たことがない


921 :デフォルトの名無しさん:2008/10/25(土) 10:17:06
自分で TForm 作ればおk

922 :デフォルトの名無しさん:2008/10/25(土) 12:56:20
タイトルバーの上でのマウスカーソルの動きを検知することは出来ますか?

923 :デフォルトの名無しさん:2008/10/25(土) 12:58:44
自分で計算すりゃいいじゃない

924 :デフォルトの名無しさん:2008/10/25(土) 13:31:36
そもそもイベントを拾えないんですよね

925 :デフォルトの名無しさん:2008/10/25(土) 13:37:18
タイマでマウス位置を監視して相対位置が0..Width, 0..Height-ClientHeightだったら
とかとりあえずお茶を濁しつつ正解をWin32APIスレで聞く。

926 :デフォルトの名無しさん:2008/10/25(土) 13:43:37
nrhd
難しくかんがえていたようです
d

927 :デフォルトの名無しさん:2008/10/25(土) 13:49:08
WM_NCMOUSEMOVEのハンドラ作って
wParamがHTCAPTIONか見ればよい

928 :デフォルトの名無しさん:2008/10/25(土) 13:53:02
>>921
なるほど!
となると、、にゅーと出てきてにゅーと閉じるフォームが必要だな・・・
サンプルでどこかで見たような気がするんだけどどこかご存知の人いますか?

929 :デフォルトの名無しさん:2008/10/25(土) 13:59:30
AnimateWindow

930 :デフォルトの名無しさん:2008/10/25(土) 13:59:47
単にTopを上げてProcessMessagesするループ回せばいいだけじゃない

931 :928:2008/10/25(土) 14:04:40
サンクス!
いろいろ試してみる!!

932 :デフォルトの名無しさん:2008/10/25(土) 21:16:43
delphiの無料で使える日本語版の最新バージョンはなんですか?

933 :デフォルトの名無しさん:2008/10/25(土) 21:22:30
Delphi2009とでも言っておけばいいんだろうか

934 :一応マジレス:2008/10/25(土) 21:30:12
Turbo Explorer

935 :デフォルトの名無しさん:2008/10/25(土) 22:59:35
パネル上に配したコントロールのフォームから見た座標を取得したいのですが
簡単な方法あります?

936 :デフォルトの名無しさん:2008/10/25(土) 23:02:23
form1.ScreenToClient(Button1.ClientToScreen));


937 :デフォルトの名無しさん:2008/10/25(土) 23:07:12
Form1.ScreenToClient(Panel1.ClientToScreen(Edit1.BoundsRect.TopLeft))

938 :デフォルトの名無しさん:2008/10/26(日) 10:47:11
>>934
わが国のITはユーザに使用法を十分説明する時間がありません。
このため、初心者がベテランに疑問についてたずねる光景を目にすることがあります。
しかし本来は事故(情報漏えいなど)が発生した場合の責任は、
接続業者、サーバ運営者、システムを開発したエンジニアにあります。
メーカあるいは購入店にたずねるべきです。
利用者の仕事は自治(掲示板の秩序を守ること)です。助言を行ってはなりません。
素人が専門技術に言及するのは「親切」ではありません。「無責任」です。
海外のプロフェッショナルは、「私の仕事ではない」と答えるはずです。

939 :デフォルトの名無しさん:2008/10/26(日) 12:42:37
ここはおもしろいコピペを貼るスレだが・・・

940 :デフォルトの名無しさん:2008/10/27(月) 00:53:53
>>936>>937遅くなりましたがありがとうございます。
ScreenToClientはググって出てきたんですが使い方が分かりませんでした。
どうやらClientToScreenを見落としていたようです。

941 :デフォルトの名無しさん:2008/10/27(月) 19:23:34
Pascal Scriptというのを見つけたんですが、これはDelphi6 Personalではインストールできないんでしょうか?

942 :デフォルトの名無しさん:2008/10/27(月) 21:25:20
試してダメだったのなら、できないんじゃないの

Delphi6はサポートしてるとは書いてあるけど...

943 :デフォルトの名無しさん:2008/10/28(火) 10:46:29
TCoolBarにツールバーをいくつかのせて、ツールバーを動かし1列にしてから
フォームのサイズを変更すると、ツールバーの位置・幅がずれてしまいます。
これを回避するにはどうしたらいいのでしょうか?
無理なようならIEのツールバーのように「ツールバーの固定」を
したいのですがどうやったらいいのでしょうか?

944 :デフォルトの名無しさん:2008/10/28(火) 23:58:12
>>943
Gikonaviのソースでも見れば良いかな
どこかの外国のサイトでもRebar使ったソースを昔見たけど。
安直なやり方だと、Formの
OnCanResizeでTCoolBar.DisableAlign;
OnResizeでTCoolBar.EnableAlign;
すればズレないかな。
所謂「ツールバーの固定」はTRebarBandInfoのfStyleに
RBBS_NOGRIPPERをor/xorすればグリップが付いたり消えたりするけど、
「固定」する訳じゃないのでズレるのとは関係無いよ

945 :デフォルトの名無しさん:2008/10/29(水) 00:01:51
いや、昔見たのはシェブロンのソースだったわ

946 :デフォルトの名無しさん:2008/10/29(水) 04:52:59
OnCloseQueryでTIniFileを使って設定の保存をしているのですが
5個くらい起動して同時に終了すると多重書き込みでエラーがでます。
対策はないでしょうか?

947 :デフォルトの名無しさん:2008/10/29(水) 08:13:43
Mutexを使う

948 :デフォルトの名無しさん:2008/10/29(水) 10:08:41
別プロセス間でどうやって調停をするかってことだろうけど
プロセス間通信をするか
メモリマップドファイルを使って調停する
のが普通なんじゃないかな。


949 :デフォルトの名無しさん:2008/10/29(水) 10:46:56
あるDLLの関数をDelphiから呼び出して使用しようとしています。
下記はVBから使う例です。

Private Declare Ansi Sub sName Lib "Hoge.dll" Alias "GetHoge" (ByVal buffer() As Byte, ByRef size As Integer)
Public Shared Function Name() As String
 Dim s As Integer = 20
 Dim b(20) As Byte
 sName(b, s)
 Return System.Text.Encoding.ASCII.GetString(b, 0, s - 1)
End Function

これをDelphiから使用するために下記のようにしました。

procedure Hoget(Name: array of Char; Size: integer); stdcall; external 'Hoge.dll' name 'GetHoge';

実際の処理部で

var
 NameArray: array[0..19] of Char;
begin
 Hoget(NameArray, 20);
 ShowMessage(StrPas(NameArray));
end;

としましたが、Hogetの部分でエラーになります。
CharではなくByteでもやってみましたがダメでした。
VBもよく分かってないのでどのようにすればよいのか…
どこかおかしいところありましたらご指摘ください。

950 :デフォルトの名無しさん:2008/10/29(水) 10:49:43
procedure Hoget(Name: PChar; Size: integer); stdcall; external 'Hoge.dll' name 'GetHoge';
            〜〜〜〜

 Hoget(@NameArray, 20);

じゃないの


951 :デフォルトの名無しさん:2008/10/29(水) 17:39:23
DelphiのGUIでTDD(テスト駆動開発)するためのフレームワークを紹介。
DelphiでMVCするためのフレームワークでもある。

delphiXtreme ≫ Blog Archive ≫ TDD’ing the GUI
http://delphixtreme.com/wordpress/?p=21

デモのコンパイルには、rSpecのDelphi版dSpecが必要(同じ作者のライブラリ)

delphiXtreme ≫ Blog Archive ≫ dSpec - BDD for Delphi
http://delphixtreme.com/wordpress/?p=15



952 :デフォルトの名無しさん:2008/10/29(水) 19:05:47
>>949
ByRef size As Integerだから
Size: PInteger

953 :デフォルトの名無しさん:2008/10/29(水) 21:10:37
>>941
使える。

954 :941:2008/10/29(水) 22:29:52
遅くなってすみません

>>942
ありがとうございます
DB関連のユニットが使われているようなので6は6でも有償版で無いと無理そうです

>>953
本当ですか?
コンパイル手順などを教えていただけると幸いです

955 :デフォルトの名無しさん:2008/10/30(木) 19:28:57
DelphiのXMLを書き出すときに、プリティプリントして書き出す方法はありませんでしょうか?
通常どうも一行にぷりぷりと出力されてしまいます。
インデントさせたいのですが・・・

環境はBDS2006です。

956 :946:2008/10/30(木) 20:00:10
>>947-948
Mutex使って解決できました。
ありがとうございました。

957 :デフォルトの名無しさん:2008/10/30(木) 21:02:55
Object Pascalは大文字小文字関係ないと思ってましたが
True,Falseとtrue,falseは違うんですか?

958 :デフォルトの名無しさん:2008/10/30(木) 21:54:29
違うと思った根拠は?

959 :デフォルトの名無しさん:2008/10/30(木) 22:11:35
ごめんなさい
実行するとたまにランタイムエラーが起こってたまたまTrueをtrueに変えたら
起こらなくなったからそう思ってしまいました
原因は別のところにあったみたいです・・・

960 :949:2008/10/31(金) 10:12:02
>>950,952
ありがとうございます。参照渡しってやつなんですね。

ByRef size As Integerとすると、
var Size: Integerとかでもできるのかな?

夜にしか試せないのでちょっとやってみます。

961 :デフォルトの名無しさん:2008/10/31(金) 10:32:14
確か、他の言語のポインタ渡しのヘッダーコンバートするときは、Delphiで var で書いてもいいはず。
Delphiに付属のunitでもそう変換しているのがあったと思う

962 :デフォルトの名無しさん:2008/10/31(金) 10:33:26
ただ、varで書く欠点は nil をそのまま渡せないので、

 Hoge(PInteger(nil)^);

みたいに回りくどいことをしないといけなかったようなw


963 :デフォルトの名無しさん:2008/10/31(金) 15:03:25
APIでnull渡さないといけない場面があってもvarやconstで宣言されてると困る

964 :デフォルトの名無しさん:2008/10/31(金) 16:21:28
ありすぎて困る
自分用Windows.pas作りたいがでかいので中々手が出せないんだよなww
つかポインタ型をいちいち宣言しないといけないのも面倒

965 :955:2008/10/31(金) 20:03:07
IXMLDocument.Options に doNodeAutoIndent を指定したら、インデントを整形してくれました。

var
  XML: IXMLDocument;
begin
  :
  XML.Options := XML.Options + [doNodeAutoIndent];

お騒がせしました。ありがとうございました。


966 :デフォルトの名無しさん:2008/11/01(土) 06:37:12
TaskTrayのコンポでUnicodeに対応してるものありますか?
CoolTaskTrayでShowBalloonHintUnicodeのメソッドあるけど機能してないみたい・・・。

967 :デフォルトの名無しさん:2008/11/01(土) 06:38:57
×CoolTaskTray
○CoolTrayIcon v.4.4.0

968 :デフォルトの名無しさん:2008/11/01(土) 18:18:40
チップヘルプの文字だけの問題ならフリーのコンポーネントのソース見て
変更すればよし

969 :デフォルトの名無しさん:2008/11/01(土) 19:10:40
日本語のサイトでコンポを紹介してくれるところはもうないのでしょうか?

970 :デフォルトの名無しさん:2008/11/01(土) 19:52:27
2chがあるジャマイカ

971 :デフォルトの名無しさん:2008/11/01(土) 23:52:16
D7でWinSock2.pasをusesしてTGUIDを使うとSystem.TGUIDと競合してしまいます
そこで、WinSock2.pasを確認してみると以下のようになっていました

{$ifndef ver130}
TGUID = packed record
D1: LongInt;
D2: Word;
D3: Word;
D4: Array[0..7] of Byte;
end;
PGUID = ^TGUID;
{$endif}

これはD5の時だけTGUIDを無視するって意味だと思うんですが、
D5以上(D6とかD7)の時は無視するようにするにはどのようにしたらいいですか?

972 :デフォルトの名無しさん:2008/11/02(日) 00:38:13
丸ごと消せばいいんじゃない

973 :デフォルトの名無しさん:2008/11/02(日) 00:39:58
JEDIの?D5までしか無い頃のだね
IndyのIdWinSock2.pasは消しちゃってる
D5以前の事も考えて処理したいなら.inc作るとか
D6からは{$IFDEF CONDITIONALEXPRESSIONS}が
使える

974 :デフォルトの名無しさん:2008/11/02(日) 01:25:25
>>972-973
ありがとうございます
やっぱり、普通に消しちゃえばいいんですかね
現状ではD5以前の対応とかは必要ないのであれなんですが
その都度コメントアウトとかのその場凌ぎの対応ばかりしてると問題かなと
思い後学の為に質問させてもらいました。

.incファイルの書き方は良く分からないので調べてみます
CONDITIONALEXPRESSIONSは、これが定義されていればD6以降という判断って事で
良いのでしょうか?ちょっとググッてみたけどよく分からずでした
条件コンパイルについてきちんと勉強しないと駄目ですね・・・

975 :デフォルトの名無しさん:2008/11/02(日) 01:57:51
incファイルは$INCLUDEする時に使われる拡張子
中身はDelphiでpasと何の代わりも無い

976 :デフォルトの名無しさん:2008/11/02(日) 03:13:32
>>975
どうも、普通にパスカルで良かったんですね
ちょろっと調べてみました、Delphiのインストールフォルダ漁ったらJEDI.incという
ファイルがあってそこにバージョンの定義が色々書いてありました
{$IFDEF DELPHI7}
{$DEFINE DELPHI7_UP}
{$DEFINE DELPHI6_UP}
{$DEFINE DELPHI5_UP}
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI3_UP}
{$DEFINE DELPHI2_UP}
{$DEFINE DELPHI1_UP}
{$ENDIF}

{$IFDEF DELPHI6}
{$DEFINE DELPHI6_UP}
{$DEFINE DELPHI5_UP}
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI3_UP}
{$DEFINE DELPHI2_UP}
{$DEFINE DELPHI1_UP}
{$ENDIF}

{$IFDEF DELPHI5}
{$DEFINE DELPHI5_UP}
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI3_UP}
{$DEFINE DELPHI2_UP}
{$DEFINE DELPHI1_UP}
{$ENDIF}
以下略
こんな感じで定義してやってD5以上の判定にはDELPHI5_UPを使えばいけそうな感じですね

977 :デフォルトの名無しさん:2008/11/02(日) 04:22:14
そんな長ったらしいファイル使わないでもD4以前かどうかなら下ので行けそうだ
{$IF not Defined(VER120) and not Defined(VER110) and not Defined(VER100) and not Defined(VER93) and not Defined(VER90)}
{$DEFINE DELPHI4_LOW}
{$IFEND}
テストしてないけどまあ大丈夫だろ

978 :デフォルトの名無しさん:2008/11/02(日) 08:25:35
DelphiのスマートリンクでGPLなコードが削除された場合、
GPL汚染は適用外?

979 :デフォルトの名無しさん:2008/11/02(日) 12:37:47
>>977
なるほど、そういう書き方もできるんですか
{$IF と Defined()を使えば、and や not が使えるわけですね
勉強になりました

980 :デフォルトの名無しさん:2008/11/02(日) 18:29:10
ファイル名として不適な文字が含まれている場合のはじきかたについて質問

Windows側でこれは絶対通さないという文字がどれであるかもはっきり分かりません
ついでに、たとえ通っても☃とか☎とか、認めるものどうなんだろうという感じだし

仕方ないので、これだけはOKという文字を100数十選び、ファイル名の文字列総当たりで
調べる関数をつくりました
(bytecharlenで文字数カウント、Midstrで一文字ずつきりとりながら、
こちらであらかじめ決めた100数十種のどれとも一致しない文字があったらfalseで抜け
みたいなかたち)

こんなドンくさいやり方が哀れだと感じたら、だれかスマートな方法教えてください


981 :デフォルトの名無しさん:2008/11/02(日) 19:10:50
>>980
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D

982 :デフォルトの名無しさん:2008/11/02(日) 20:00:46
>980
普通にshlwapi.dllとかにありそうだが

983 :デフォルトの名無しさん:2008/11/02(日) 20:11:02
\ : * / ? " <> |
だけじゃないの。
Explorerのフォルダの新規作成で\を押すと出てくる警告によればだけど。

%temp%\ファイル名で実際に作ってみるとか。

984 :デフォルトの名無しさん:2008/11/02(日) 20:31:12
すいません、質問を3つほど聞いてもらいたいです。

質問の前に私の境遇を説明します。
新人で学生時代のプログラム経験は0に近いです。
そんな私がなぜか会社のシステム部門に配属されることになり
さらに各事業所で使われているスケジュールを管理するシステムを引き継ぐ事になりました。
そのシステムはdelphiで作成されていてoracleとリンクしたかなり大規模なものだそうです。
しかし、作成された当時実装優先とのことでそのシステムに関するしっかりとした
設計書(要件定義〜テストまでの成果物)が何一つとして残っていないとのことです。
ついでに実際にコードを書いたソフトハウスさんは倒産してしまっているそうです。
残っているのは

・システム設計に携わった3人のうち1人(2人は転職してしまったそうです)
・各地で稼動しているシステムそのものとソースコード
・参考書3冊

そのたった一人の先輩も来年度には会社を去るとのことでした。
現在は会社のシステムのほとんどがjavaで書かれているためdelphiを扱える人は皆無だそうです。
それで引継ぎとできればそのシステムのjava化というお仕事を与えられたのですが

1:delphiで作られている業務システムを全てjavaで書き換えるのは可能か?
 (ソースを見れば全て分かると言われましたがまだ全然理解できていません)
2:先輩には何をしてもらえばいいか?
 (上司からは先輩に私にdelphiとそのシステムの事を教えるように言われてるそうです)
3:私に未来はあるのでしょうか?
 (なんかdelphiってもう廃れてるっぽい・・・?)

よろしく・・・お願いします!

985 :デフォルトの名無しさん:2008/11/02(日) 21:14:50
1人でやるの?これからDelphiとJAVAを覚えるの?

先輩に仕様書を作らせてる間にdelphiを猛勉強する
仕様書とソースでシステムを全て理解する(ここで先輩は用済み)
javaで書き直す
廃れてる言語を覚えて金にならん面倒な仕事を引き受けてしまったがために君の未来はなくなった

986 :デフォルトの名無しさん:2008/11/02(日) 21:18:13
>>984
あまり参考にならないかも知れないですが、レスします。
1.Javaな人にDelphiを渡すのは微妙な気が。 Cで書ける人を探したほうが無難。
第一、動作環境が変わるかと。
SQLの部分だけ抜き出して、あとはJavaで、(UI周りとか)再開発なら、ありえなくはないですが・・

DelphiからCの変換なら、機械的に置き換えていけばいい部分が多いはず。(PascalからCの変換プログラムを使ったほうが早かったり・・・)

あ、DelphiからJavaとかCに置き換える時に、一番注意する事。
Delphiの=は、他の言語の==
(Delphiの:=が、他の言語の=)
両方の言語を同時に見ている時、このミスは、ほぼ確実にやりますw しかも = はエラーがでないから、たちが悪い。

2.先輩には、データベースとのやりとり部分をがんばってもらいましょう。
開発環境にもよりますが、SQLが噛んだ時点で、デバッグが異様に大変になる事が。
(%とかそのあたりが特に。どの段階で何に変換されているか推測できないとつらいです。)
((クライアント側にAccessとかMS系のが噛んでると、もう・・ )とか昔思ったのは内緒)
あと、(Oracle周りの)テストは、テスト環境を作ってからやりましょう。テスト環境を作るのも、先輩に振ったほうが良いかも。

+画面設計とかも。ここDelphiとJavaで大幅に変わるはず。
Delphi:1画面に複数の処理(というかイベントの発生源)を置ける。
Java:1ページで1処理を基本にしたほうがわかりやすい。(Webブラウザで操作するなら)
(ここ、突っ込み入りそうだなw)

3.その質問は、この会社のシステムは・・いえ、何でもありません。
Delphiをツール作成とかでなく、業務システム用に使ってた時点で、あぅあぅ。保守の事、きっと考えていません。エンジニアの絶対数が。。開発速度は格段に高かったとは思うけどw

あ、未来があるのか、でした。
Delphiから入ると、他の言語に乗り換える時に少し壁を感じると思いますが、使っている単語が違うだけで、基本はCと同じです。(この説明、かなり無茶?) 少なくとも、Javaよりは扱いやすいはず。。。って両方するんでしたね。
がんばりましょう。やればなんとかなる。


987 :デフォルトの名無しさん:2008/11/02(日) 21:19:55
趣味グラマの俺がやってやりたいような案件だな。

本職は経理でプログラムとは無縁だぜハハハ

988 :デフォルトの名無しさん:2008/11/02(日) 21:22:05
>>984
Delphiは入門に適した言語なのではじめるには最適かと
取り合えず参考書読破、分からないことは先輩に聞きまくる
オブジェクト指向はJavaの方が理解しやすいと思うので、ある程度Delphiを
理解したらJavaも並行して勉強していくとより良いかも知れない
Delphiをマスターしたらその他のオブジェクト指向言語(C++等)に移行するのも
容易なのでDelphiで基礎を学ぶ事が無駄になる事は無い
あと、Delphiで書かれたシステムをJavaに移植するのは、不可能ではないと思う

989 :デフォルトの名無しさん:2008/11/02(日) 21:22:38
一個でも言語ある程度弄ってれば他のも何となく分かるでしょ
あとは慣れ

990 :デフォルトの名無しさん:2008/11/02(日) 22:02:04
大変そうだけど不可能ではないと思う

と適当に言ってみる

991 :デフォルトの名無しさん:2008/11/02(日) 22:04:36
みなさん暖かいレスありがとうございます。

>>985
いえ、当面はその先輩と私でやります。

私の方は当分勉強ということになるのですが
その仕事が決まった時から私だけ先輩や上司のおごりで飲みにつれていかれたりして
なんか胸騒ぎがするんですよ・・・
javaに作り直す際は私がjavaを覚えつつ設計書を書き、製造はまたソフトハウスさんを頼るらしいです

>君の未来はなくなった
私なんかより年季入った先輩方がたくさんいるのにおかしいなとは思っていたんですが・・・
やはりそうなのですね。
そのシステムが会社が回るのに絶対不可欠であることは分かっているのですが、残念です。

>>986
>一番注意する事。
まだdelphiしか見てないのでそういうの分からないので教えてもらえて助かります。
>保守のこと
やはりエンジニア少ないのですね・・・
私もjavaは大分前から知ってはいましたがdelphiはこの仕事もらうまで
全く知りませんでした。
でも調べて見ると今私が使ってるjaneやskypeがこれで作られていると分かってビックリです。

>>987
変わってkds・・・
世の中上手く回ってないものですね。

992 :デフォルトの名無しさん:2008/11/02(日) 22:09:20
行が足りなくなったので連投失礼します。

>>988
まだ少ししかdelphi6をいじったことがありませんが
ソフトを作っていくのは楽しそうだなと思いました。
なぜかjavaデ作られてるシステムより私が引き継ぐことになったシステムの方が
現場の評判いいんですよね。実際使ってみても分かりやすいです。
そこがdelphiの魅力なのかな。
不可能ではないこととdelphiが基本になることさえ分かれば
頑張っていけそうな気がします。

993 :デフォルトの名無しさん:2008/11/02(日) 22:39:07
大筋は>>985に賛成だが、先輩だけに仕様書を作らせるんじゃなくて
先輩と仕様書を作ったほうがいいと思う。
>>992で評判がいいと書かれているが、それは言語云々じゃなく
システムとしていいということだから、システムを理解する上でも
一緒に作るべきかと。もちろんガワは先輩に作ってもらう必要があるがw

994 :987:2008/11/02(日) 22:42:16
>>992
Delphi、VC、C#を一応使えるけど、Delphiが一番好きだよ。
UI構築が楽&ネイティブアプリを作れる&DBも扱えるからフリーソフトには最適。
業務はやったことないから知らないけどね。

サクサクコンパイルが通って動作を確認できるからサンプルがあれば色々コンパイル
してみよう。
頑張ってね。

995 :デフォルトの名無しさん:2008/11/02(日) 22:42:58
>>991
そんな泥沼会社、俺なら辞める。
金のあるうちに優秀なのひとり派遣でもバイトでもいいから雇って
本当にできるやつが来たら強引に取り込むしかないと思うな。

996 :デフォルトの名無しさん:2008/11/02(日) 23:50:29
996 !!!!!!!!!!!!!!!!!!!!!1

997 :デフォルトの名無しさん:2008/11/03(月) 00:00:45
いづれにしても、またひとつDelphiのアプリが消えるわけだな

998 :デフォルトの名無しさん:2008/11/03(月) 00:53:21
しかしこのスレは無くならせはしない!

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

999 :デフォルトの名無しさん:2008/11/03(月) 01:09:36


1000 :デフォルトの名無しさん:2008/11/03(月) 01:10:08
1000ズサーc⌒っ゚Д゚)っ

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

245 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)