08/07/30 23:01:14
Delphiのバージョンにもよるけど、基本Indy10で、問題があることがわかってる機能を使うならIndy9、じゃないのかな。
251:242
08/07/30 23:44:34
解答さんくすです
>>244
>>必要な部分だけ実装
そんな高等技術まだないっす。
>>247
>>TGraphicControlでいいと
すっげー百済ねぇ質問だけど、あまり上位のオブジェクトを使うと、必要のない無駄な機能まで継承してしまって非効率って事はないの?
実際必要なのはプロパティでは始点・終点の座標と、任意に付与した線の名前と、線の色と太さくらい持ってれば十分なんだけど。
あとメソッドでは線を引く、線を消す、線を隠す、ShowHint、イベントハンドラはOnMouseMoveとOnClickくらいかな。
252:デフォルトの名無しさん
08/07/31 00:00:37
> >>244
> >>必要な部分だけ実装
> そんな高等技術まだないっす。
じゃ素直にTShapeから派生しとけ。
253:デフォルトの名無しさん
08/07/31 00:18:55
>>250
うーん、悩むとこですね
周りで使われてるのはIndy9ばっかなのでIndy10使うことになったら入れなおしでいいか・・・
254:デフォルトの名無しさん
08/07/31 00:55:55
>>251
VCLのソース読んでみな。TShape コントロールは TGraphicControl に
毛が生えたものでしかないことが分かるから。
255:デフォルトの名無しさん
08/07/31 10:06:38
久々に Windows アプリ書くんで、どうせなら新しめの Delphi 使おうと
『Codegear て何?』とか、『なんでBorland ドメインじゃないん?』と思いつつ TurboDelphi 落とした。
『そんな API 呼ぶなよ』とか警告出るけど、Delphi3.1 で書いたコードも通って一安心なんだけど、
なんで IDE のウインドウサイズ記憶しないの?
起動するたんびに WUXGA 画面いっぱいに広がって困りますわorz
オプションとか見たけどそれらしき項目を見つけられず・・・自動保存の設定じゃないし。
今浦島なおじさんに教えてたもれ!
256:デフォルトの名無しさん
08/07/31 10:08:14
上の方にレイアウトの呼び出し、保存のボタンがある。
何通りでも好きなだけ記憶させると言いい。
257:デフォルトの名無しさん
08/07/31 10:09:30
ウィンドウを好きなように配置して
メニューの右上の方にDefaultLayoutみたいなドロップダウンリストがあるから
その右隣のボタンをクリックして保存
258:デフォルトの名無しさん
08/07/31 10:30:10
>>256 >>257
これは便利。
Classic Undocked で昔の別ウインドウ形式になるんだね。
そこら辺にマウスカーソル当てればわかることに即答ありがとう!
259:デフォルトの名無しさん
08/08/01 12:45:00
delphi7でwindows mobileのソフト作成ってできますか?
260:デフォルトの名無しさん
08/08/01 12:46:20
無理
261:デフォルトの名無しさん
08/08/01 14:53:13
叶姉妹
262:デフォルトの名無しさん
08/08/02 00:56:42
>>239
2007推奨。
旧バージョンは、VCLがVista環境下でいろいろと不都合がでてしまう。
VCL小細工しているせいかね。悲しいかな。
263:デフォルトの名無しさん
08/08/02 09:37:36
>>262
代表的な不都合をお願いします。
時期開発環境の参考にします。
264:デフォルトの名無しさん
08/08/02 10:18:10
ぐぐれよw
265:デフォルトの名無しさん
08/08/02 19:20:31
UNICODE非対応の今はどれでも同じ
Vistaで使いたいなら自分で工夫、妥協するしかない
266:デフォルトの名無しさん
08/08/03 00:22:58
UAC有効だと確認ダイアログが出まくってまともに使えない。
Aero有効にしているとスクロールバーが半分隠れて使いにくくなる。
267:デフォルトの名無しさん
08/08/03 01:44:46
結論としてはVista使ってる奴が悪い、になるんだろうな
268:デフォルトの名無しさん
08/08/03 01:59:56
Vistaが糞なんだろ
269:デフォルトの名無しさん
08/08/03 09:27:44
Vistaがクソとか平気でいう奴は、自分の置かれている立場(言語)がわかっているのかなあ?
270:デフォルトの名無しさん
08/08/03 09:45:41
死んだとか言われてるけど初心者の俺には何が死んだのかよく分からないし普通に使えるので別にどうということはない
271:デフォルトの名無しさん
08/08/03 12:02:01
recordを前方宣言出来るのでしょうか。
出来るのであれば、どうか方法を教えて頂けませんでしょうか。
出来ないのであれば、私を汚らしい言葉で責め立てて頂けませんでしょうか。
272:デフォルトの名無しさん
08/08/03 13:08:51
できないっぽいね。何をしたいのか具体的に書いてごらん?
273:sage
08/08/03 13:46:14
272様。
Builderのバグの
URLリンク(qc.codegear.com)
コレを回避出来ないものかとおいまして。
274:デフォルトの名無しさん
08/08/03 15:23:16
ふ~む、難しいねぇ。つかOpenにしたまま放置かい。
275:デフォルトの名無しさん
08/08/03 15:43:23
都度hppを書き換える方法で行きます。
276:デフォルトの名無しさん
08/08/04 17:39:17
var
d, i: Integer;
begin
d := Windows.GetLogicalDrives();
for i := 0 to 32 do
if ((1 shl i) and d) <> 0 then Str.Add(Chr(i + Ord('A'))+':\');
end;
とやるのと
var
d: Integer;
c: Char;
begin
d := Windows.GetLogicalDrives();
for c := 'A' to 'Z' do
if ((1 shl (Ord(c) - 1)) and d) <> 0 then Str.Add(c + ':\');
end;
とやるのとじゃどっちが賢いんでしょうか
277:デフォルトの名無しさん
08/08/04 23:26:14
TWebBrowserのHttpヘッダを見たいんですが何かいい方法ありませんでしょうか
278:デフォルトの名無しさん
08/08/05 00:54:36
>276
下かな?でも上はそもそもバグっとる。for i := 0 to 25 doにしないと。
>277
つ WireShark
279:デフォルトの名無しさん
08/08/05 00:54:58
>>276
0 to 32 で 33個になるんだけど。
下の Ord(c) - 1 も、Ord(c) - Ord('A')じゃないの?
私は上の方が自然だと思います。
iが26以降になったときに何かやったほうがいいのかもしれません。
280:デフォルトの名無しさん
08/08/05 02:05:24
こんなのはどうだ。 d と c を分離するのはかえって解りづらいかな。
for c := 'A' to 'Z' do
begin
if (d and 1) = 1 then Str.Add(c + ':\');
d := d shr 1;
end;
281:276
08/08/05 02:30:36
こんなにレスありがとうございます
>>278
適当にググって適当にやったのがいけなかったかw
確かに25の間違いです
>>279
ご指摘の通りです
これからは見直しは1時間だな・・・
>>280
うーん、なんかすっきりしないですね
282:デフォルトの名無しさん
08/08/05 04:11:15
280に一票
283:デフォルトの名無しさん
08/08/05 08:07:05
with BitArray(GetLogicalDrives) do with Each do while Loop do
Str.Add(Char_Add('A', It.Value) + ':\');
欠点はうちの環境でしか動かないことだがw
284:277
08/08/05 09:22:39
>>278
ああいや、外部からではなくDelphi内でモニタできないものかなあと思いまして、
Headerプロパティのようなものが見当たらず、代替するにも見当がつかなかったので聞いてみたのですが、
もしやindy経由で手の込んだことしないといけないんでしょうか…
285:デフォルトの名無しさん
08/08/05 15:46:47
>>284
ここにあった
URLリンク(blog.goo.ne.jp)
286:デフォルトの名無しさん
08/08/05 22:34:59
nkf32.dllやjconvertなりで文字コード自動検出してエンコードするソフトを作っているんですが、ほぼ英字のテキストだとたまに自動検出に失敗します。
失敗するのはいいんですが、失敗して文字化けした文字を検出するにはどうすればいいんでしょうか?
EmEditorの自動検出でもよく失敗するのですが、そういうとき開くと「指定したエンコードで変換できない文字が含まれています。編集を続行して保存するとファイルの中身が破壊されます。 」と出るので検出は出来ると思うんですが、どうやったらいいのか見当もつきません・・・
287:デフォルトの名無しさん
08/08/05 22:48:40
全文スキャンするしかないんじゃない?
文字コード検出のってファイル先頭部分しか見てないんじゃないかな
288:デフォルトの名無しさん
08/08/06 00:09:51
(c)文字は変換できないんじゃないの?
289:286
08/08/06 00:30:02
自動検出で全文してみたんですけど無理みたい(失敗)です。。
EmEditorで検出失敗してもエラーが出ないときがあるので難しいのかもしれません。
けど、失敗エンコードのままの文をFireBird2.1DBのテーブルにインサートしてその文をクエリで検索するとエラーが今のとこ確実に出ます・・・
2.0ではエラーはでずクエリできるので、2.0を使うしかないみたいです、自分の今の力では。。
(c)って著作権のマークのやつでしょうか
290:デフォルトの名無しさん
08/08/06 00:48:34
自前変換ならエンコする時に全文字見る訳で
その時に検出するだけでしょ
WideCharToMultiByteとかならlpUsedDefaultCharで検出できるかと
291:デフォルトの名無しさん
08/08/06 11:12:20
>>285
うーん、headタグの取得については記述がありますが、
httpヘッダに関しては書いてないみたいです
TWebResponseとかあるのにTWebBrowserでは使えないんてくやしいっ
大人しくTcpServer経由しますか…
292:286
08/08/06 11:54:16
>>290
なるほど、エンコ時にやればいいのか
ありがとうございます!
293:デフォルトの名無しさん
08/08/06 16:38:17
というかぁ、完璧な自動って不可能だからぁ。
文字コードが重なっていて、自動判断できない領域があるしぃ。
294:デフォルトの名無しさん
08/08/06 18:57:59
その文書作った人がそうだといったらどう見ても違う文字コードでもその文字コードになっちゃうだろうしなあ
295:デフォルトの名無しさん
08/08/08 16:12:21
指定のビットが0か1かを判定する関数またはクラスの作成をよろしくお願いします。
入力するデータはビット番号とデータなのですが、元のデータのサイズが決まっていなくて、
32ビットデータ4個(ビット0-127)だったり2個(ビット0-63)だったと可変です。
296:デフォルトの名無しさん
08/08/08 16:18:29
そこまで速度にこだわってないので、関数でいいのかな。
function TestBit(BitNum: Integer; Data: array ): Integer;
Data引数が可変引数だったりするとうれしいです。以上よろしくお願いします。
297:デフォルトの名無しさん
08/08/08 16:20:22
ああ、32ビットと固定長でないかもしれません。16ビットや8ビットの場合もあるかもです。
298:デフォルトの名無しさん
08/08/08 16:21:58
ここは丸投げスレではありません
お引き取りください
299:デフォルトの名無しさん
08/08/08 16:23:47
>>298
今日は暑いですが、よろしくお願いします。
300:デフォルトの名無しさん
08/08/08 16:25:33
>>299
本当に暑いですね
クーラーつけなきゃやってらんないです
お引き取りください
301:デフォルトの名無しさん
08/08/08 16:30:44
>>300
そんな寂しい事を言って私を涼しくしなくてもいいので、TestBitの中身の方をお願いします。
302:デフォルトの名無しさん
08/08/08 16:44:51
解決しました。
function TestBit(Stream: TStream; BitNum: Integer): Integer;
var
B: Byte;
OldPosition: Int64;
begin
OldPosition := Stream.Position;
try
if (BitNum < 0) or (BitNum > Stream.Size*8) then
raise Exception.Create('error');
Stream.Position := BitNum div 8;
Stream.ReadBuffer(B, SizeOf(B));
Result := (B shr (BitNum mod 8)) and 1;
finally
Stream.Position := OldPosition;
end;
end;
でいくことにしました。アドバイスありがとうございました。
303:デフォルトの名無しさん
08/08/08 17:37:35
>>302
どういたしまして、お役に立てて光栄です。
304:デフォルトの名無しさん
08/08/09 02:42:51
ゼロサプレスって言うんだっけ。桁数指定して、桁数に満たない場合は頭に0を埋めてくれるヤツ。
formatでできるかと思ったらできないんだね?
どうすればいいのか教えて? まさか自作関数?
305:デフォルトの名無しさん
08/08/09 08:53:26
マニュアルのformat関数のところにちゃんと書いてあるよ
306:デフォルトの名無しさん
08/08/09 09:13:41
え? 実数の場合は%8.3fとかでいいんだけど(あと通過型も) 整数の方法がわからないよ
%05dとかにすると、スペースになってしまう。
307:デフォルトの名無しさん
08/08/09 09:17:56
delphi format %05d
でぐぐってみw
308:デフォルトの名無しさん
08/08/09 10:04:36
どーでもいいがゼロサプレスの逆だろ
ちなみに指定桁数を0で埋めるって何ていうんでしょう?
309:デフォルトの名無しさん
08/08/09 10:11:59
URLリンク(www.wdic.org)
310:デフォルトの名無しさん
08/08/09 11:12:28
ゼロパディングなんだ。
パケットとかではパディングってよく使うけど、桁合わせの時には聞いたことがないような。
311:デフォルトの名無しさん
08/08/09 18:28:40
ListView がスクロールされた事を知らせるイベントってないですか?
あるいは、enable が true でスクロールバーをスライド出来なくする方法ありますか?
312:デフォルトの名無しさん
08/08/09 18:48:21
スクロールしないならLabel並べておけ
313:デフォルトの名無しさん
08/08/09 19:01:47
ListViewはウィンドウコントロールだから、
普通に WM_VSCROLL で出来ないか?
WndProc書き換えちゃえ。
314:311
08/08/09 19:14:03
>>312
ListView をクリックすると、そのセル上に同じ大きさで memo を表示して
あたかも編集出来る様にしたんですけど、スクロールすると ListView だけ動いて
memo は置いてけぼりになるんです、だから編集中はスクロール出来ない様にするか
スクロールしたら、なんとか memo が付いて行く様にしたいと思ったんです。
>>313
やったこと無いですけど、何とか出来るか試してみたいと思います、有難うございましたw
315:デフォルトの名無しさん
08/08/09 20:04:36
>>314
Memo使うの?
Editでならやったことあるけど、今はStringGrid使ってるよ
316:311
08/08/09 20:50:14
>>315
なんか memo が使いやすかったのでw
>Editでならやったことあるけど
その時スクロールとか困らなかったですか?
317:デフォルトの名無しさん
08/08/09 22:50:12
>>316
入力後Enterキーを押したらEditが消えるようにした気がする
すぐにStringGridに変えたからよく覚えてない
318:311
08/08/09 23:04:01
>>317
そうですか、じゃあ自分もそうしようかなと思います、有難うございましたw
319:デフォルトの名無しさん
08/08/10 11:39:07
つーか、項目選択したらエディットコントロールを上掛け、
スクロールかEnter感知したらエディット消してListViewに反映でいいんじゃないの?
StringGridはドロップダウンリストとか使えないからなぁ‥‥
320:311
08/08/10 11:46:16
>>319
そうしたいんです、でもスクロールを感知できなくて困ってるんです
Enter感知は出来るけどw
321:デフォルトの名無しさん
08/08/10 12:02:43
>>320
ならWndProcメソッドのオーバーライドがんばれ。
正規の方法でのコンポの継承が面倒なときは↓の方法使うと楽
URLリンク(www.geocities.jp)
322:デフォルトの名無しさん
08/08/10 12:19:11
なんか、最近Delphiのパンフが送られてこない気がするのですが、
次期バージョンの日本語版発売っていつごろになるんでしょうか?
今、BDS2006使いなのだけどもVistaにきちんと対応したい。
2007って今買い時かなのかな・・・?
次期バージョンはどうせ、VCLのUNICODE対応でバグ満載になるだろうし
安いうちに買っておけばよかたとちょっと後悔している
323:デフォルトの名無しさん
08/08/10 12:19:51
>>321
既出なのかもしれないけど、よいTipsですね。
324:311
08/08/10 12:21:07
>>321
やっぱりその方法しかないですかw
なんとか頑張ってやってみます、有難うございました。
325:デフォルトの名無しさん
08/08/10 12:23:02
そんな低レベルなところでがんばっても
.NETに移ったら全部ゴミになっちゃうからやめておいた方がいいよ。
今のうちにC#を学んでいつでも移行できるように準備しておいた方が後々特。
326:デフォルトの名無しさん
08/08/10 12:35:12
>>324
WindowProc差し替えの方が簡単かも。
327:311
08/08/10 13:01:27
>>325
.NET も良さそうですね、便利そうで羨ましいですw
>>326
その方が簡単ですか、その方法も調べて見たいと思いますw
どうしても解からなかったら邪道だけどタイマーで監視します。
みなさん有難う御座いましたw
328:311
08/08/10 15:13:17
なんとか
WindowProc の WM_VSCROLL で出来ました
有難う御座いましたw
329:デフォルトの名無しさん
08/08/10 20:19:38
memo1.lines.loadfromfile(****.txt);
でメモラインに追加してから
memo1.lines.loadfromfile(***2.txt);
のテキストを↓に追加したいのですが、上書きされて***2.txtのデータしか残りません・・・・
上書きせずに追加するにはどうすればいいのでしょうか?
330:デフォルトの名無しさん
08/08/10 20:53:51
add?
331: ◆XcB18Bks.Y
08/08/10 21:15:41
>>329
編集中のテキストにファイルから別のテキストを追加読み込みしたいということですね。
別に文字列リストを用意してそれに読み込んでからMemo1.Linesに追加。
procedure TForm1.Action_AddFromFileExecute(Sender: TObject);
var
Strings: TStringList;
begin
Strings := TStringList.Create;
try
if OpenDialog1.Execute then
begin
// 文字列リストにファイルを読み込む.
Strings.LoadFromFile(OpenDialog1.FileName);
// Memo1のテキストにこの内容を追加.
Memo1.Lines.AddStrings(Strings);
end;
finally
Strings.Free;
end;
end;
332:デフォルトの名無しさん
08/08/11 07:32:07
ClientDataSetに大量のデータ突っ込んだ後、EmptyDataSetでクリアしても、
タスクマネージャのメモリ使用量が変わらないんだけど、これは??
データ突っ込んで、タスクマネージャで100MB近くなったんだけど、ずっとそのまま・・
333:デフォルトの名無しさん
08/08/11 18:05:35
TurboDelphiを先日落とした身です。
例えば
procedure TForm1.Button2Click(Sender: TObject);
var
hoge: string;
begin
end;
でF9実行しようとすると、その変数は使われてないと警告が出てデバッグが実行できません。
警告を残したままデバッグの実行はできないものなのでしょうか。
334:デフォルトの名無しさん
08/08/11 18:08:42
{$WARN SYMBOL_DEPRECATED OFF}
みたいなのを頭に書いとけば消せる。
具体的な指定はヘルプにあるはず。
その警告は残しておいた方がいいとは思うが。
335:デフォルトの名無しさん
08/08/11 19:24:36
Delphiでのアプリケーション間通信のよい方法があったら教えてください。
環境は双方ともDelphi製で、片方VCL GUIアプリ、片方Win32アプリです。
実際にはマップエディタで設定したマップを、別アプリのゲーム側で
リアルタイムに読み込んでプレビュー処理をしたいのです。
そこで、マップエディタで現在編集中のマップをファイルで保存しておいて、
そのファイル名(もしくはマップのIDなり)をゲーム側に伝えたいのです。
336:デフォルトの名無しさん
08/08/11 19:38:34
ファイル名程度ならWM_COPYDATAで十分じゃ?
337:デフォルトの名無しさん
08/08/11 19:39:06
ファイル名程度なら、WM_COPYDATAで十分じゃ?
338:デフォルトの名無しさん
08/08/11 19:40:24
Delphiでのアプリケーション間通信のよい方法があったら教えてください。
環境は双方ともDelphi製で、片方VCL GUIアプリ、片方Win32アプリです。
実際にはマップエディタで設定したマップを、別アプリのゲーム側で
リアルタイムに読み込んでプレビュー処理をしたいのです。
そこで、マップエディタで現在編集中のマップをファイルで保存しておいて、
そのファイル名(もしくはマップのIDなり)をゲーム側に伝えたいのです。
339:デフォルトの名無しさん
08/08/11 19:45:33
SendMessage(WM_COPYDATA でマップデータを送るのはどうか。
使ったこと無いけど、SendMessageTimeout の方がいいのかもしれない。
受け取り側でデータをコピーするから、マップデータが巨大だと
時間がかかる。
340:デフォルトの名無しさん
08/08/11 22:10:29
普通に考えればメモリマップドファイルだろうね。
341:デフォルトの名無しさん
08/08/11 22:11:12
>>339-340
ありがとうございます。WM_COPYDATAが簡単にできそうです。
こちらが参考になりました。
WM_COPYDATA
メッセージによるプロセス間通信
URLリンク(homepage2.nifty.com)
342:デフォルトの名無しさん
08/08/12 00:09:05
警告ならできるだろ >333
原因は別にある
343:デフォルトの名無しさん
08/08/12 00:55:49
変更のあるたびに全部送るんじゃなくて、変更のあったところのみ送れば
速くなりそうですね。
344:デフォルトの名無しさん
08/08/12 13:06:48
>>334>>342
新規でプロジェクト作成してみたら警告が出るようなコードでもデバッグが実行できました。
どうもお騒がせしましたorz
345:デフォルトの名無しさん
08/08/12 20:09:22
>>331
遅くなりましたが、ありがとうございます!
おかげでできました~
346:デフォルトの名無しさん
08/08/13 19:18:29
TMenuItemからTMenuItemに全てのプロパティをコピーするにはどうすればいいんでしょうか
Assignでは「TMenuItem から TMenuItem に代入することはできません.」と例外が発生しました
347:346
08/08/13 20:30:24
自己解決しました
URLリンク(delfusa.main.jp)
このCopyComponentを使えば出来ました
348:346
08/08/13 20:57:39
と思ったけど完全にはコピー出来ないようです
何とかコピー出来ないものでしょうか
349:デフォルトの名無しさん
08/08/13 21:01:06
TStream.WriteComponent/ReadComponentしてみたら。
それかメニュー構造を再帰的にコピーしていくコード書くか。
350:346
08/08/13 22:33:53
>>349
> TStream.WriteComponent/ReadComponentしてみたら。
例外が発生し、動きませんでした
> それかメニュー構造を再帰的にコピーしていくコード書くか。
適当に書いたら普通に出来てしまいましたw
ありがとうございました
351:デフォルトの名無しさん
08/08/14 00:24:35
以前からこのスレを拝見しておりました
いきなりの質問ですみませんがお答えいただけたら幸いです
var
str: array of array of String
i : Integer;
List: TList;
begin
SetLength(str,10);
for i:=0 to 9 do
begin
SetLength(str[i],10)
end; //str[0,0]からstr[9,9]まで領域を作る
List:= TList.create;
としたとき、
TListにstring型の1時配列を格納したいと思い、
List.add(str[Idx])
としたのですが、その後ListからItemsプロパティによって中身にアクセスできないんです・・・どうしたらよろしいのでしょうか?
352:デフォルトの名無しさん
08/08/14 01:42:22
>>351
usesにTypesを追加します。
TStringDynArray(List[x])[y] で str[x, y] にアクセスできます。
353:デフォルトの名無しさん
08/08/14 23:26:38
>>352
お答えありがとうごさいました!とても助かりました。
354:322
08/08/15 20:04:40
Delphi2007Pro版アップグレードの価格比較をみつけたので、こちらで吟味することにします。
ボーランド/Borland Borland Delphi 2007 for Win32 Professional R2 アップグレード版 価格比較 [coneco.net]
URLリンク(www.coneco.net)
amazonとかだと50000円超えててびくりしました
お騒がせしました。
ありがとうございました。
355:デフォルトの名無しさん
08/08/15 20:51:48
直販でUGすれば31500円だろ。
直販のUGってもう終了したんかな。
356:デフォルトの名無しさん
08/08/15 21:50:23
電話してお姉さんに丁寧に説明してもらいなさい。
357:デフォルトの名無しさん
08/08/15 23:04:26
おねいさんに手取り足取り教えてもらいたい。
358:デフォルトの名無しさん
08/08/16 00:16:26
おねいさんに手コキ足コキしてもらいたい。
359:322
08/08/16 06:40:01
>>355
もう直販やってない希ガスCodeGearのページいってもたらいまわしにされる
360:322
08/08/16 07:06:51
製品の購入のページってこれですよねえ。
URLリンク(www.codegear.com)
> バージョンアップ版を購入の方
> 以下のCodeGear製品については、バージョンアップ版も、新規購入と同様に、ソフトウェア流通代理店各社、SEshopのCodeGear専門ショップなどのオンラインショップサイトよりお求めいただけます。
>
> CodeGear RAD Studio 2007
> Delphi 2007 for Win32 R2
> C++Builder 2007 R2
> JBuilder 2007
> 上記製品のバージョンアップ版の詳細については、こちらをご覧ください。その他の製品については、下記までお問い合わせください。
直販やってない?
たらいまわしは、商品詳細とかんちがいしてましたw
問い合わせてみるか・・・
それともTiburon待ったほうがいいのかなあ
361:デフォルトの名無しさん
08/08/16 08:49:32
Unicode が必須じゃなければ2007にしとけ。
BDS2006持ってて2007買うのはどうかと思うがな。
お金持ちならだめもとでTiburonを。
362:デフォルトの名無しさん
08/08/16 08:54:10
こういう業界じゃ、バージョンアップの3万なんて日給分程度だろ?
お金持ちって・・。
363:デフォルトの名無しさん
08/08/16 09:18:41
IT土方をなめるなよ。
ピンハネされまくって、ひ孫受けの土方に渡る金は、元金の1/3以下
364:デフォルトの名無しさん
08/08/16 09:31:53
Delphiできる人少ないから、手が足りない。
バイトで内職してくれる人おらん?
365:デフォルトの名無しさん
08/08/16 09:33:29
思いっきり丸投げしといて
「内規で2割引かないといけないんですよてへへー」が
2つ3つ挟まるとか平気であるしなw
366:デフォルトの名無しさん
08/08/16 09:34:58
3割引かれてテヘヘーだけど、1社しか挟まってないからまだ楽だ。
367:デフォルトの名無しさん
08/08/16 09:36:28
他所でやれ
368:デフォルトの名無しさん
08/08/16 10:09:56
スキルが高まれば高まるほど逃げ出す、それが日本のIT業界。
369:デフォルトの名無しさん
08/08/16 13:10:00
>360
だからとりあえず電話してみなさいって。連絡先は
URLリンク(www.codegear.com)
ここね。ただアップグレード期間は終わってるような気がするので通常の購入になって
高いかもしれないけど、そしたら他のところで買うことを考えてみればいいだけの話。
>366
3割ってよっぽど舐められてるか893か、いずれにしろろくでもないところだと思う。
370:デフォルトの名無しさん
08/08/16 13:25:53
スキルの低い底辺クズがいる、それがIT業界。
371:デフォルトの名無しさん
08/08/16 13:40:40
>>338-339 へぇ、メッセージで投げられるんだ
普通はアプリの通信ってパイプ使うけど
マップデータ自体を送るんじゃなくてファイル名って言ったよね たった数文字送るなら
パイプ通信のほうがいいんじゃないの
372:デフォルトの名無しさん
08/08/16 13:40:50
Form1からForm2へドラッグ&ドロップするにはどうすればいいんでしょうか?
373:322
08/08/16 15:41:26
>>369
電話してみます。
みなさんありがとう。
374:デフォルトの名無しさん
08/08/16 15:57:45
>>372
OnDragOverイベントでAccept設定して出来ないか?
375:デフォルトの名無しさん
08/08/16 18:00:12
>>371 受け取る方はパイプのデータが更新されたことをどうやって知るの?
376:デフォルトの名無しさん
08/08/16 20:41:12
数文字程度でもWM_COPYDATAの方が簡単かもしれない。
377:デフォルトの名無しさん
08/08/16 21:18:38
自前のTMyFormの機能としてWM_COPYDATAをラップして
識別用のDWORD一つとデータ本体を送受信できるようにしておくといろいろ便利。
378:デフォルトの名無しさん
08/08/16 23:16:21
現在Delphi2007を使用しています。
デバッグ機能について教えていただきたいのですが
Visual Studioでいうところの「次のステートメントの設定」は
Delphiに存在しないのでしょうか。
無いととても不便な気がするのですが
どうしても見つかりません。
379:デフォルトの名無しさん
08/08/16 23:30:13
ない。なくても別にそれほど不便じゃないし。
QCに登録したら次の次で採用されるかも。
380:デフォルトの名無しさん
08/08/16 23:45:05
>>379
即レスありがとうございます。探し回っていたのですが
これ以上探さずにすみます。それにしても残念。
381:デフォルトの名無しさん
08/08/17 03:40:24
>>372
VCL標準のD&D機構では出来ないから、
MouseCaptureして自分でやる。
382:372
08/08/17 10:49:16
>>374
>>381
レスありがとうございます。
MouseCaptureググッって、午後からいろいろ試してみようと思います。
383:デフォルトの名無しさん
08/08/17 11:13:40
TFormのDnD、VCLでできないんならOLEDnDのほうがスマートじゃ?
プロセス間でも平気だし、テキストや画像なら未知のアプリケーション間でも出来るし
384:デフォルトの名無しさん
08/08/17 11:30:37
フォーム上にカラーパレットのようなものを配置(カラーグリッドでいいのかな)
お絵描きコントロールを配置(たぶんペイントボックス)
ペイントボックスに、既存のbmpファイルを読み込む(←ここがすでにわからない)
カラーパレットをクリック
で、色を選択
ペイントボックスに読み込まれた絵のどこか適当な場所をクリック
その「クリックした個所と同じ色が」選択した色に塗りつぶされる
(MSペイントの塗りつぶしみたいな感じ。あれは別な色で囲まれちゃってる部分は無視されるけど、
そこもぶち破って塗りつぶしてくれるならなおよろし。あれと同じでも充分)
顰蹙非難罵詈雑言何もかも覚悟でおねがい
以上を実現するコードください
まるごとください
おねがいします
385:デフォルトの名無しさん
08/08/17 11:34:30
どっかでペイントソフト作るチュートリアル無かったか。
丸投げするなら金額も一緒に書いとけよ。
386:デフォルトの名無しさん
08/08/17 11:38:11
大人しくTPaintBox使わずにTImage使えば?
387:デフォルトの名無しさん
08/08/17 11:47:07
, ,:‘. 。 + ,..
’‘ + ,.. . ..; ', ,:‘
. .; : ’ ' ,:‘.
あ あ ,:‘. +
.. ' ,:‘. . ...:: ’‘
’‘ .; こ ん な に お 断 り し た い
。
. 。 気 持 ち に な っ た の は ,:‘. 。
'+。
初 め て で す .. ' ,:‘.
:: . .. .. ' ,:‘.
ハ,,ハ
( ゚ω゚ )
388:デフォルトの名無しさん
08/08/17 11:48:25
/\___/\
/ / ヽ ::: \
| (●), 、(●)、 |
| ,,ノ(、_, )ヽ、,, |
| ,;‐=‐ヽ .:::::|
\ `ニニ´ .:::/ NO THANK YOU
/`ー‐--‐‐―´´\
.n:n nn
nf||| | | |^!n
f|.| | ∩ ∩|..| |.|
|: :: ! } {! ::: :|
ヽ ,イ ヽ :イ
389:デフォルトの名無しさん
08/08/17 12:12:59
お断りします
ハ,,ハ ハ,,ハ ハ,,ハ ハ,,ハ
( ゚ω゚ )゚ω゚ )゚ω゚ )゚ω゚ ) お断りします
/ \ \ \ \ お断りします
((⊂ ) ノ\つノ\つノ\つノ\つ)) お断りします
(_⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ お断りします
ヽ ヘ } ヘ } ヘ } ヘ }
ε≡Ξ ノノ `Jノ `J ノ `J ノ `J
390:デフォルトの名無しさん
08/08/17 15:47:38
再度おねがいにきました
あきらめないで待ってます
391:デフォルトの名無しさん
08/08/17 15:48:24
____ やなこったwwwwwwwww
.ni 7 /⌒ ⌒\
l^l | | l ,/) / ( ゚ ) (。 )\ .n
', U ! レ' / / ::::::⌒(__人__)⌒:::::\ l^l.| | /)
/ 〈 | ヘ / | | U レ'//)
ヽっ ` ⌒´ / ノ /
/´ ̄ ̄ ノ \rニ |
`ヽ l
392:デフォルトの名無しさん
08/08/17 16:19:04
そんなことよりポインタ演算の話しようぜ。
393:デフォルトの名無しさん
08/08/17 22:17:46
もうちょっと待て。ベータブログに出てきてNDAから外れたらな。
394:デフォルトの名無しさん
08/08/17 22:19:01
>390
WindowsのPaint使えばいいんじゃね?
395:デフォルトの名無しさん
08/08/18 00:18:16
お絵かきソフトのサンプルをCDから探して。
396:デフォルトの名無しさん
08/08/18 11:40:11
その1
Image1.Picture.LoadFromFile('hoge.bmp');
以降よろしく。
397:デフォルトの名無しさん
08/08/18 11:58:30
canvas.FloodFill(なんたらかんたら)
398:デフォルトの名無しさん
08/08/18 19:12:39
DEMOSとかというフォルダからサンプルらしきものを発見しました
imageでも絵かけるんですね
>>396
>>397
ありがとうございます
ちょっと自力でがんばってみます
399:398
08/08/19 19:05:38
おかげさまでどうにか以下までは成功しました
procedure TForm1.Image1Click(Sender: TObject);
var
MouseP:TPoint;
MouseX:integer;
MouseY:integer;
GetColor:integer;
begin
GetCursorPos(MouseP);
MouseP:=Image1.ScreenToClient(MouseP);
MouseX:=MouseP.X;
MouseY:=MouseP.Y;
GetColor:=Image1.Canvas.Pixels[MouseX,MouseY];
Image1.Canvas.Brush.Color:=塗りつぶしたい色;
Image1.Canvas.FloodFill(MouseX,MouseY,GetColor,fsSurface);
end;
元のbmpファイルがけっこう小っちゃいので、Imageをめいっぱい大きくとったうえストレッチ表示にしたら
クリック位置を補正しなきゃならなくなってしまいました
MouseX:= Trunc(Image1.Picture.Bitmap.Width*MouseP.X/Image1.Width)
とか、とりあえずやってみたらできたけど、何かこのあたりはまだ考える余地がありそうです
あとちょっとだけがんばります
400:デフォルトの名無しさん
08/08/19 20:27:01
始めたばかりで頑張っていた頃を思い出させるいいレス。
頑張れ!
401:デフォルトの名無しさん
08/08/20 01:07:43
WideStringでのインデックスをAnsiStringでのインデックスに直すにはどうすればいいんでしょうか?
例えば
関数('あああ',3) = 5
みたいな感じです
402:デフォルトの名無しさん
08/08/20 01:25:08
>>401
こんな感じかな
function WideIndexToAnsiIndex(const ws: widestring; index: Integer): Integer;
begin
if (Index < 1) or (Index > Length(ws)) then
Result := 0
else
Result := Length(AnsiString(Copy(ws, 1, index - 1))) + 1
end;
403:デフォルトの名無しさん
08/08/20 01:36:25
>>402
うお、こんな簡単に出来ちゃうんですね
ありがとうございました
404:デフォルトの名無しさん
08/08/20 03:34:47
>>401
なぜユニコードだったりそれをMCBSに変換しなければならないかにもよるけど、
ByteToCharIndexやCharToByteIndexでもっと幸せになれるかもしれない。
405:デフォルトの名無しさん
08/08/20 12:47:33
Button1を押したら
Memo1の書いてる文章を
全て選択
コピー
切り取り
貼り付け
するにはどうやればいいでしょうか?
406:デフォルトの名無しさん
08/08/20 13:36:46
>>405
Memo1.SelectAll;
Clipboard.AsText:=Memo1.SelText;
Memo1.SelText:='';
Memo1.SelText:=Clipboard.AsText;
407:デフォルトの名無しさん
08/08/20 14:00:30
マジありがとうございます。
超助かります!
Memo1.SelectAll;
をしたら、ちゃんと全部選択できるてるみたいですが
選択範囲の色が変わりません。
普通のメモ張だったら
全て選択とかCTRL+Aで選択範囲が青くなりますよね?
青くするのはどうやるんですか?
408:デフォルトの名無しさん
08/08/20 14:17:29
>>407
Memo1.SelectAll;
Memo1.SetFocus;
409:デフォルトの名無しさん
08/08/20 14:24:01
あー。できました。
ありがとうございましたー。
410:デフォルトの名無しさん
08/08/20 20:57:20
SpeedButtonかToolButton使え
411:デフォルトの名無しさん
08/08/21 12:41:16
ファイルネームの最後だけ、たとえば
c:\AAA\BBB\CCC\asdf.html
というファイルなら
OpenDialogやFileListBoxのFileNameは
c:\AAA\BBB\CCC\asdf.htmlになってしまうので
Edit1.Text:=FileNameみたいにすると長くなっちゃうんだけど
c:\からCCCまでいらなくてasdf.htmlだけ取得するにはどうしたらいいんですか?
412:デフォルトの名無しさん
08/08/21 13:00:55
ExtractFileName
413:デフォルトの名無しさん
08/08/21 13:02:45
このくらい考えられないか?
FileName := 'c:\AAA\BBB\CCC\asdf.html';
while pos('\',FileName) > 0 do FileName := copy(FileName,pos('\',FileName)+1);
edit1.Text := FileName;
414:デフォルトの名無しさん
08/08/21 13:10:37
>>413
Pos2回もやってるのって無駄じゃね?
それに「ソ」とかのことも考えたほうがいいぜ
まあLastDelimiter使った方が楽だがww
415:デフォルトの名無しさん
08/08/21 14:53:29
役に立たないスレだな
416:デフォルトの名無しさん
08/08/21 15:46:36
412で答え出てるじゃん。
417:デフォルトの名無しさん
08/08/22 07:16:18
Delphiはchar型って変数じゃないんですか?
418:デフォルトの名無しさん
08/08/22 07:19:56
変数です。整数ではありませんが。
419:デフォルトの名無しさん
08/08/22 08:15:42
checklistbox1
にあるすべての項目にチェックを入れるボタンと
チェックをはずすボタンはどうやればいいんですか?
Seleckallやclearを押してもチェックがはずれたりしなくて困ってます。
ボタンクリック
begin
CheckListBox1.SelectAll;
end;
ってやってもなんも変わらないんですけど、どうすりゃいいですか?
420:デフォルトの名無しさん
08/08/22 08:55:17
>>419
まわしたら?
421:デフォルトの名無しさん
08/08/22 17:00:54
Button2をクリックしたら、Button1クリックと同じ処理をしたいときはどうやるの?
procedure TForm1.Button2click(sender:Tobject);
begin
Button1click(sender)
end;
とかやってもエラーがでてコンパイルできません。
422:デフォルトの名無しさん
08/08/22 17:13:13
>>421
それで間違ってないだろ。つかエラーメッセージくらい読めよ。
423:デフォルトの名無しさん
08/08/22 17:15:56
button1.onclick(sender);
424:デフォルトの名無しさん
08/08/22 17:34:25
Button2のイベントハンドラをButton1Clickに設定する
425:デフォルトの名無しさん
08/08/22 17:37:16
interfaceの宣言の下に書くGUIDはCtrl+Shift+Gで出る奴でいいんですか?
426: ◆XcB18Bks.Y
08/08/22 19:23:55
>>421
エラーメッセージはなんですか?
未定義の識別子 Button1click
と出たなら Button1click という名前のメソッドがないということです。
(このメソッドがあるはずだ!ということなら似たような違う名前になっていないか調べてください)
427:デフォルトの名無しさん
08/08/22 21:20:55
俺俺っていうコードを変換したいんだけど
(俺のコードは89 B4です)
89 B4 89 B4をchrを使って
chr(89)+chr(B4)+chr(89)+chr(B4)ってやっても
エエって出てきちゃいます。(半角のエはB4)
どうやったら89 B4を「俺」になおせますか?
chr(46127)てやっても出来ませんでした。
数値を日本語に変えるやりかたを教えてください!
428:デフォルトの名無しさん
08/08/22 21:29:25
ShowMessage(chr($89)+chr($B4))
で普通に俺って出るぞ
429:デフォルトの名無しさん
08/08/22 21:37:50
なぁんだ、$をつければよかったんだ。
どうもありがとう
430:デフォルトの名無しさん
08/08/22 22:17:39
Chr(B4)でコンパイル通るのかww
431:デフォルトの名無しさん
08/08/22 22:32:41
ListviewのFullDragをtrueにしてドラッグで入れ替えても
見かけ上は入れ替わるんですけど、中身のデータはその場所と一致してないんですけど
ちゃんと一致させる方法ありますか?
432:431
08/08/22 22:35:26
すいませんカラムの並び替えです・・・
433:デフォルトの名無しさん
08/08/23 00:44:16
StringReplaceのWideString版ってありますか?
434:デフォルトの名無しさん
08/08/23 08:36:38
>>421
Button1.Click;
435:デフォルトの名無しさん
08/08/23 09:33:40
>>433
AnsiStringReplaceのことか?
436:デフォルトの名無しさん
08/08/23 14:31:08
Memo1.Linesのそれぞれの行の文字数(全角文字は二文字と数える)を取得するにはどうすればいいですか?
-------
最初
12345
あほ
apple
-------
ならメモ1の最初の行文字数=4
二行目=5
三行目=4
四行目=5
といった感じです!
437:デフォルトの名無しさん
08/08/23 14:34:12
>>436
普通にLength()でいいじゃん。
438:デフォルトの名無しさん
08/08/23 14:36:57
length
439:デフォルトの名無しさん
08/08/23 14:37:01
そんなコマンドがあったのか!ありがとうございます
440:431
08/08/23 19:21:21
>>431の問題ってデフォですか、それともウチだけの不具合ですか
それだけでも教えてください
441:デフォルトの名無しさん
08/08/23 19:32:19
>>435
それでも十分いけるんだけどいちいちWideString→Stringで置換→WideStringってやってるとなんか無駄っぽいので
WideStringのまま出来ないかなって思っただけです
TurboDelphiにWideStrUtilsってのがあったのでその中にある、
WideStringReplaceを使ってみたけどなんか不具合があるっぽくて正常に置換されなくて使えなかったんです
でもTntの関数使ったら出来ました
ありがとうございました
442:デフォルトの名無しさん
08/08/24 01:16:25
>>440
カラムのドラッグによる位置変更で
データそのものの位置が変わっちゃったらえらい事になるでしょうよ
ListView_GetColumnOrderArray
ListView_SetColumnOrderArray
辺りで幸せになれるかもね
443:デフォルトの名無しさん
08/08/24 02:23:50
TTrayIconを使用しているのですが、
TrayIconが表示されている状態でWindowsをシャットダウンすると、
「シェル通知アイコンが削除できません」
というエラーメッセージダイアログが発されて、正常にシャットダウンしません。
ダイアログを閉じるなりすれば、シャットダウンは進行するのですが。
アプリケーションでメッセージを補足して、WM_QUERYENDSESSIONを
受けたときに、TrayIconの表示をFalseにすれば何とかなるかと思ったのですが、
WM_QUERYENDSESSIONを受け取る以前に上記のエラーメッセージが
発されてしまっているようです。
対策をテストするにも、毎回Windowsをログアウトするなりしなければならないので、
非常に非効率的な事態に陥っています。
これらの問題をすでに解決済みの先哲がいらっしゃいましょうや。
なにとぞ愚人に叡智を授けて下されれば、この443、幸いに存じます。
444:デフォルトの名無しさん
08/08/24 05:30:02
SDK32: 通知領域にアイコンが登録されないことがある
URLリンク(support.microsoft.com)
445:デフォルトの名無しさん
08/08/24 05:45:16
どうも、443っす。
結局のところ、自己解決したっす。
原因は、WM_QUERYENDSESSIONを補足しきれてなかったことみたいっす。
WM_QUERYENDSESSIONをちゃんと補足したときにTrayIconを非表示にするだけで何とかなったっす。
つまり、アプローチは間違って無かったっす。
汗顔のイタリーっす。板汚し、失礼したっす。
それじゃ、天上の調べをオリーブの枝に接ぐ作業に戻るっす。
チャオっす。
446:431
08/08/24 06:30:05
>>442
ありがとうございました
447:デフォルトの名無しさん
08/08/26 14:13:11
Excelで管理していたToDoのメモを使いやすくしたいと思い、
愛用のDelphiでDB化できないかと思っています。
可搬性を考え、Delphiの通常のアプリ同様インストールなしでDBを使いたいのですが、
なにかよいエンジンは何かないでしょうか?
手持ちの最新版は Delphi2006です。
448:デフォルトの名無しさん
08/08/26 15:21:06
EmbeddedFirebirdとか
インタフェースはInterbaseそのままだからIBXとかも普通に使える。ただしDLLなので、動作時のカレントディレクトリに注意。
449:デフォルトの名無しさん
08/08/26 15:33:36
プロパティを絶対に変更しないって前提なら
TTodoItem = class
published
にいろいろデータ溜め込んでTStream.WriteComponent, ReadComonentすればいいんだけど
リスク高すぎなんだよな。
ここら辺もうちょっと柔軟にXMLに対して読み書きしてくれるライブラリはないものか。
450:デフォルトの名無しさん
08/08/26 16:05:15
>>447
SQLiteが一番手軽かと
451:デフォルトの名無しさん
08/08/26 16:15:53
>>448-450
ありがとうございます。
Embedded Firebird(Interbase6互換)、Write(Read)Component、SQLite などですね。
あと、MyBaseも使えるようです。こちらが参考になりました。
Delphi@WCIMH
URLリンク(hp.vector.co.jp)
SQLiteはビジュアルコンポーネントと連携できるのでしょうか?
452:447=451
08/08/26 16:28:25
SQLiteのライブラリがいくつかありました。
Tim Anderson’s ITWriting - Tech writing blog ≫ A simple Delphi wrapper for Sqlite 3
URLリンク(www.itwriting.com)
Aducom Software [Delphi SQLite Components]
URLリンク(www.aducom.com)
18385 SQLite DbExpress driver
URLリンク(cc.codegear.com)
Delphi8以降で使えない?
いくつか試してみます。ありがとうございました。
453:322
08/08/26 16:38:56
>>369
遅レスですいません。
エンバカデロ日本に電話してみました。
直販はやってないとのことで、個人の場合は量販店やネットなどで買ってほしいとのことでした。
通販の値段はこちらを参考にすることにします。
ボーランド/Borland Borland Delphi 2007 for Win32 Professional R2 アップグレード版 価格比較 [coneco.net]
URLリンク(www.coneco.net)
42000円前後でしょうか。
アップグレード割引期間内にアップグレードしておけばよかったと後悔してます。
2006の時は期間を延長したりしてくれてたのに・・・
454:デフォルトの名無しさん
08/08/26 19:34:14
>>447
ToDo リスト程度なら、TcrientDataSet でも十分実用になると思います。
455:デフォルトの名無しさん
08/08/26 20:34:40
つかDBいらねぇだろ。
456:デフォルトの名無しさん
08/08/26 20:55:00
URLリンク(enterprise.watch.impress.co.jp)
>価格は、Delphi 2009、C++Builder 2009とも、
>Professional版が10万2900円、Enterprise版が25万2000円、Architect版が44万1000円。
>両製品のバンドルパッケージも用意されており、
>Professional版が13万4400円、Enterprise版が29万4000円、Architect版が50万4000円となっている。
どう考えても、高いよな。
457:デフォルトの名無しさん
08/08/26 20:56:48
日本のPCゲーム業界みたいなことになってるな
458:デフォルトの名無しさん
08/08/26 21:13:14
アカデミック無いのかな
459:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/08/26 21:17:34
オッチャスレ池
461:デフォルトの名無しさん
08/08/26 21:28:23
>>460
ここですか?><
スレリンク(pot板)
462:デフォルトの名無しさん
08/08/27 03:54:49
どんどん高くなっていくなぁ
463:デフォルトの名無しさん
08/08/27 06:16:53
>>459
これは欲しい。
次のバージョンアップが待ち遠しいぜ。
464:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/08/27 08:40:21
高すぎる
466:デフォルトの名無しさん
08/08/27 10:40:51
Vistaがこけたおかげで、Delphi7が今でも現役だぜぇ。
467:デフォルトの名無しさん
08/08/27 10:59:26
割れ厨急増ですねわかります
468:デフォルトの名無しさん
08/08/27 11:03:18
>>466うんうん
助かるよねぇ
ってか2006買ったが7使ってる
469:デフォルトの名無しさん
08/08/27 15:17:18
>>466
というか製品としても現役じゃないか、Del7とCBuilder6
470:デフォルトの名無しさん
08/08/27 16:49:25
2007の拡張に慣れたらもう戻れない。
471:デフォルトの名無しさん
08/08/27 17:06:21
>>470
kwsk
472:デフォルトの名無しさん
08/08/27 17:08:09
以前買った「Delphi DB&Webプログラミング」を読んでいるのですが
DB初心者にすごくわかりやすくてよい本ですね。
ところで、Delphi7時代の本のせいか、いくつか用語かツールが変わっています。
例えば、SQLエクスプローラー相当はBDS2006時代では何にあたるんでしょうか?
473:デフォルトの名無しさん
08/08/27 21:13:03
BDS2006はもう誰も使ってないんじゃないかな・・
474:デフォルトの名無しさん
08/08/27 21:19:07
いや、俺使いまくってるけどw
475:デフォルトの名無しさん
08/08/28 00:05:29
URLリンク(www.geocities.jp)
これを利用して多重起動させないようにしようとしてるんですが
新しい起動パラメータでリスタートさせるにはどうしたらいいでしょうか?
476:デフォルトの名無しさん
08/08/28 00:32:16
起動させるためのexeを作る
477:デフォルトの名無しさん
08/08/28 02:30:28
最初のexe起動。
次のexeをパラメータ付きで起動。
すでに起動済みならパラメータを最初のexeへ渡して自分は終了する。
タイミングによっては難しいかな。
最初のexeを終了させる方がいいかも。 いろいろ試して。
478:デフォルトの名無しさん
08/08/28 02:35:53
>>476>>477
やっぱりそうゆうやり方しか無いんですかね。
やってみます。有難うございました。
479:デフォルトの名無しさん
08/08/28 05:23:51
>>475
自分でExe側をコーディングしているのなら、起動パラメータを弄るのではなく、
多重起動した場合、前のを落として
起動パラメータによって変更されるパラメータを変更するだけではないのかな?
480:475
08/08/28 12:49:11
>>479
すいません。
前のを落とす方法がわかりません。
481:デフォルトの名無しさん
08/08/28 14:22:09
mutexで排他制御をして
すでに起動していたらWM_COPYDATAでパラメータを丸投げして
新しい方が自爆して
すでに起動している方がパラメータを受け取ってリスタートする。
あるいは
WM_COPYDATAで死ねというコマンドを送って古い方を終了させて
新しい方がそのままパラメータを処理する。
前者の方が初期化を省ける分軽くなる可能性はある。
後者の方が実装が楽になる可能性がある。
482:475
08/08/28 14:26:22
いい機会だからWM勉強してみます。
みなさん有難うございましたm(_ _)m
483:デフォルトの名無しさん
08/08/28 14:50:53
TWebBrowserにhtmlでフォームを表示してるんですが
フォームのtextarea内で改行出来ません
ie・fxでは正常に改行できます
484:デフォルトの名無しさん
08/08/28 15:46:53
UIWebBrowserとか使っとけ
485:デフォルトの名無しさん
08/08/28 16:33:06
>>475
DDEを使って、既に起動している方に終了命令を送るかな
後から起動した方が、パラメータを既に起動している方に送って、
すぐに終了ってのはよくあるけど
486:485
08/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
08/08/28 17:02:44
>>485
今回は>>481さんの前者の方で無事成功しました。
DDEは別のところで使えそうなので参考にさせていただきます。
有難うございました。
488:デフォルトの名無しさん
08/08/28 22:11:06
文字列'ABCD'があって、その文字列に1文字置きに'#'を挿入したいのですがどのようにすればいいでしょうか?
こんな感じです。
A#B#C#D
よろしくお願いします。
489:デフォルトの名無しさん
08/08/28 22:13:35
insert
490:デフォルトの名無しさん
08/08/28 23:01:40
Insertとforループでどうにかできました
ありがとうございました
491:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/08/29 03:55:45
速度は遅いかもしれんけど中のループはbreakではなくcontinueで全部終わらせば
外のループへ出れる
493:デフォルトの名無しさん
08/08/29 07:52:05
goto使え
494:デフォルトの名無しさん
08/08/29 08:49:03
>>481
そっちのほうがスマートだな
495:デフォルトの名無しさん
08/08/29 13:36:05
bsNoneに設定したフォームで
Form1.WindowState := wsmaximized
を実行するとタスクバーの領域を浸食してしまうんだがお手軽に
システムメニューの最大化を実装する方法ってあります?
496:デフォルトの名無しさん
08/08/29 21:31:01
こちらのサイトの方法を汎用化する方法はありませんでしょうか?
Delphi VCL継承コンポーネントをインストールなしで使う/Tips & Tricks
URLリンク(www.geocities.jp)
Edti1 := CloneComponent(Edit1);
みたいな方法で使いたいのですが・・・。
Hoge.Createすると、生成されずに、Createだけよばれてしまいます。
class helper使えばできる気もするのですが、class helperの同時に1つしか使えないという制限から困っています。
497:496
08/08/29 21:40:44
Result := TComponent(Original.ClassType).Create(Owner);
でいける気がしました。
ちょっと試してみます。
498:496
08/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:デフォルトの名無しさん
08/08/29 23:08:08
再帰
500:デフォルトの名無しさん
08/08/30 15:57:40
2つのアプリを同じPCで動かしているのですが、
競合する動作があるので片方が動作すつときはもう片方の動作を止めるために
WM_COPYDATAを送っています。
開発環境はxpで正常に動作しますが動作環境は98で
「このプログラムは不正な処理をおこなったので・・・」とゆうエラーが出ます。
このエラーは送信側が送信した瞬間に送信側で出ますが受信側は受信できています。
片方を落として動作させたり、片方の受信機能を外して送信した場合はエラーが出ません。
こちらの1と2をほぼそのまま利用しました。
URLリンク(homepage2.nifty.com)
501:デフォルトの名無しさん
08/08/30 16:12:36
502:デフォルトの名無しさん
08/08/30 16:57:25
>競合する動作があるので片方が動作すつときはもう片方の動作を止めるために
そういうときには「ミューテックス」というモンを使うんですわ。
URLリンク(docs.codegear.com)
503:デフォルトの名無しさん
08/08/30 17:50:03
Win98上での開発・デバッグ環境を用意しろとしか
504:デフォルトの名無しさん
08/08/31 03:59:43
短い文字列型でやってみるとか。 ShortStringね。
送信側のEdit1.Textが空のときも問題ないのかな。
PCharでキャストすると、コード領域にある#0のアドレス返すから、
その辺でおかしくなるのかも。 良く分かりません。
505:デフォルトの名無しさん
08/08/31 11:32:33
>>498
TReaderのメソッドの中に、
コンポーネントの構成を再帰的に追っかけて読み込んでくれるメソッドがあった希ガス
このメソッド使うと、イベントも含めたコンポーネントのクローンを作成することも可能。
506:デフォルトの名無しさん
08/08/31 19:37:44
>>502
そこはもう通り過ぎてるだろw
507:496
08/08/31 19:49:11
>>498のコードは不完全でして、イベントハンドラ等のコピーができません。
それらをカバーするにはこちらが参考になるようです。
DelFusaBlog コンポーネントをインストールせずに使う方法
URLリンク(delfusa.blog65.fc2.com)
TMemoryStreamでイベントハンドラを別のオブジェクトにコピーするには?
URLリンク(hpcgi1.nifty.com)
私はも書いてみようと思います。
508:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/01 11:49:53
>>500
メッセージと一緒にデータも送ってるのか?
サンプルはCDSがローカル変数になってるのが良くないと思われるが
別のやりかたとしては、wmuser,wmapp,resisterwindowmessage()、ファイルマッピングオブジェクト、ミューテックスあたり
510:デフォルトの名無しさん
08/09/01 18:18:00
>>500
CDS.lpData:=PChar(Edit1.Text); がダメじゃないの?
S := Edit1.Text;
CDS.lpData := PChar(S);
でどうだ。
>>508
呼び出し規約が合ってないかもね。
Cならデフォルトはcdecl。
511:508
08/09/01 20:51:26
>>510
function Open(port_no: Integer): Integer; cdecl; external 'hogehoge.dll';
ズバリその通りで上記のようにしたらエラーが出なくなりました。
ありがとうございます!
512:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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
08/09/02 18:02:04
>>513
うまく出来ました
しかし、コラムの内容は位置番号と一致してるけど
それ以下の内容は位置番号と一致しないです
やっぱり一致させるのは無理なのかな
でも、使い方が解かったんで助かりました、ありがとうございますw
515:デフォルトの名無しさん
08/09/03 13:41:01
SpTBXLibを使っている方は、おられませんでしょうか?
Silverpoint Development
URLリンク(club.telepolis.com)
SpTBXLibは標準で便利なドッカブルパネルがあるのですが、
いくつものドッカブルパネルを上に載せて設計時にGUIデザインすると、
画面が狭くなるためフレームを使って分離できないかと考えています。
しかし、TSpTBXMultiDock に載せた TSpTBXDockablePanel 上に
他の出作ったTFrameから継承したフレームを載せると、
載せたフレームが真っ黒になってしまいます orz
いままでSpTBXLib以外でのフレームでこのようなことはなかった気がします。
何か解決方法はないものでしょうか?
SpTBXLib 2.2です。OSは、Vista SP1、XP SP3で確認しました。
516:515
08/09/03 14:23:56
どうやら、TSpTBXDockablePanel以外にも TSpTBXPanel 上にFrameを載せた場合にも起こるです。
上に載せたフレームの
ParentColor := True でも無効な様子で、
Color := clNone から、Color := clBtnFaceにしたところ、通常のように表示されました。
しかし、残念ながらフレーム上では SpTBXLib の Theme設定が効きません。
他の部分がTheme対応なので不恰好になってしまいます。
VCLのソースを覗いてみてわかったのですが、
TXPManifest を載せて ParentBackground を有効にさせると、
設計時はダメですが、実行時は一応、SpTBXLibのThemeが効いてくれます。
しかし、画面リサイズ時などで画面のフレームの描画が崩れることが多々あります。
バグっぽい仕様な気がしてきました。(もしくはFrameに対応してない)
ので公式サイトのリンク先のニュースグループで聞いてくることにします。
もし何かわかりましたら、こちらでも報告いたします。
517:デフォルトの名無しさん
08/09/03 15:25:20
AVGがDelphi7で生成したexeをウィルス扱いしやがったぜというお話
URLリンク(www.delphipages.com)
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:デフォルトの名無しさん
08/09/03 16:11:31
Avast!もDelphiで生成したwin32コンソールアプリをたまに誤認するよ
519:デフォルトの名無しさん
08/09/03 16:28:11
ICSというコンポーネントをインストールしたんですが、いざ使おうとすると
「ユニット名~が解決できません」と出て使えないのです。
何か他に特別なことがいるのでしょうか?
インストールするのにに参照したサイトはここです。
URLリンク(mrxray.on.coocan.jp)
verは2007です
ICS
URLリンク(www.overbyte.be)
520:デフォルトの名無しさん
08/09/03 17:59:24
これIndyとどう違うの?
521:デフォルトの名無しさん
08/09/03 18:05:38
It is yet another internet component.
522:デフォルトの名無しさん
08/09/03 18:08:36
日本語でおk
523:519
08/09/03 18:40:06
なんだか色々と弄ってたらどうにか使えるようになりました!
お騒がせしました
524:デフォルトの名無しさん
08/09/03 18:44:03
.cbkってファイルがいつのまにかできていたのですが・・・?
これは一体どのようなファイル?
なのでしょう
HogeFrameUnit.dfm.cbk
というような
ファイルでした
環境:BDS2006
525:デフォルトの名無しさん
08/09/03 20:05:26
google ブラウザのせいでChromeがOxygeneに名前変わっててワロタ
RemObjects Software: Oxygene 3.0
URLリンク(www.remobjects.com)
526:デフォルトの名無しさん
08/09/03 20:09:20
質問させてください<(_ _)>
Delphiのボタンの色を変える方法ってありますでしょうか??
Bitボタンの文字の色を変えることはできるんですが
ボタン表面自体の色を変えたいです。
imageなどで画像貼り付けも試してみましたが
ボタン全体に被さってしまい、立体感がなくなってしまいます。
どなたかいい方法ご存知の方おられましたらぜひご教授ください。
527:デフォルトの名無しさん
08/09/03 20:24:03
>>526
ボタンにピッタリサイズのimageを作ればいいんじゃないかな
528:526
08/09/03 20:45:28
>>527
全体に合わせてしまうと立体感がなくなってしまうし
表面だけに会わせると、周りの色との違いがでてしまいます。
立体感含むボタンそのものの画像を作るしかないんでしょうか?
それだと大きさによって変わるからたいへんですね^^;
529:デフォルトの名無しさん
08/09/03 21:20:26
>>528
WM_ERASEBKGNDを捕まえて適当に塗る
530:デフォルトの名無しさん
08/09/03 21:29:20
>>528
ちょっと大きいPanelに乗せれば立体的に
531:526
08/09/03 21:41:50
>>529、530
それは実行時にボタンを押したときに
ちゃんと凹みますか??
532:デフォルトの名無しさん
08/09/03 21:44:19
やってみればいいじゃない
533:デフォルトの名無しさん
08/09/03 22:11:47
>>526
TButtonの色変えは、かなーり昔からのFAQくさいw
色変更が可能なボタン
URLリンク(rakasaka.fc2web.com)
534:デフォルトの名無しさん
08/09/03 22:15:04
その手の小細工を効かせたアプリは
大抵センスがよろしくないものになってしまうという
535:526
08/09/03 22:17:04
>>533
おお!
これはいけそうですね!!
どうもありがとうございます♪
536:デフォルトの名無しさん
08/09/04 13:51:28
ここで質問する内容ではなさそうなので躊躇したのですが、他で該当するような
活発なスレが見付からないのでお許しください。
Delphi2009が発表されるので購入を考えているのですが、非常に高いですね・・・。
バージョンアップ版をと思ったのですが、私が以前に購入したのが10年くらい前の
初期バージョンの時代で、その後は会社購入版を使用していたため、私個人の
IDを紛失してしまっています。
会社では業務の都合上Delphiの必要性がなくなったので今後のバージョンアップは
見込めない状態です。
そこで質問ですが、Delphiのバージョンアップ版を使用するにあたって過去製品で個人が
登録したIDが必要になると思うのですが、その必要性はどれくらいありますか?
というのも、Microsoftのバージョンアップ版ではインストール時に過去の製品での
ID等を聞かれないものですから、Delphiも大丈夫かと思いましたので質問させていただきました。
変な質問で申し訳ありませんが、私個人の出費としてはあまりにも大きな差があるもの
ですから質問させていただきました。もしお分かりなられる方がいらっしゃいましたなら
よろしくお願いいたします。
537:デフォルトの名無しさん
08/09/04 13:58:45
某時代はそもそもユーザー登録してないとバージョンアップ版買えなかったから誰も知らないと思うぞ
おそらくアクティベーション時に登録するCDNのアカウントで判断するんだろうけど。
538:デフォルトの名無しさん
08/09/04 18:13:40
会社に電話して事情を説明して購入可能か聞くしかない。
正規ユーザーの条件はIDを持っていることであり
バージョンアップ版は正規ユーザーであることが条件である。
ゆえにバージョンアップは不可能。とか適当なレスはつけられるが
実際に購入可能かどうかとは何の関係もないしな。
539:デフォルトの名無しさん
08/09/04 18:35:34
会社で購入したことを根拠に個人でバージョンアップはどう見ても変でしょ。
540:デフォルトの名無しさん
08/09/04 18:45:09
>>539
初期バージョンの頃に個人で買ったって書いてあるじゃん!
541:デフォルトの名無しさん
08/09/04 19:25:07
それを証明できないから問題なんでしょ。
これが通るなら、新規バージョンの購入者はいなくなる。
542:デフォルトの名無しさん
08/09/04 19:30:42
てか、Delphi2009の販促の封筒かはがきがこないんですけど、
皆さんのところには着ましたか?
プレスリリースだけで後は店で買ってねってことなのかな・・・
543:デフォルトの名無しさん
08/09/04 19:31:58
仕事でつかえないなら、趣味としてつかうの?
Turbo Explorer でいいんじゃないの。
544:デフォルトの名無しさん
08/09/04 19:40:57
仕事で使う人がこんなとこで質問するの?
545:デフォルトの名無しさん
08/09/04 19:56:51
ActionListはどこにおくのがよいものでしょうか?
FrameなどでコードやUIを分離してデザインする場合にユニットがそれぞれ分散しますよね?
それぞれ、DataModuleにActionListおいておいて、
それぞれFrameなどから、
中央集権的にアクセスする感じでよいのかなあ?
それと Frame を使った場合やFormがたくさんある場合に、
ほかのFormを含むユニットの依存関係ってどう処理したものなんでしょうか?
ほかのFormやFrameをそのまま依存(つまり、uses)させてしまうと、分離している意味が少ない気がします。
DataModuleを介すれば、依存ユニットをusesする必要はあまりないですが、
解決になってない気もします。
546:デフォルトの名無しさん
08/09/04 20:03:26
>>545
自分もいろいろ試行錯誤したけど
メインフォームに置くのが最適と判断した。
各フレームに対するアクションをそのフレームに委譲していくと
アプリにとって本質的な状態の管理やらの制御のコードがフォームに残る。
データモジュールだとそのメインフォームに対する処理も冗長になるからちょっと面倒で無駄な感じ。
フォームユニットをスカスカにしても得るものがないしね。
547:デフォルトの名無しさん
08/09/04 20:55:40
デルピィ
548:Delフサギコ ◆A6VzDeLphI
08/09/04 23:41:51
_________
∧,,∧∩ /
ミ,,゚Д゚彡 < 日本がんがれ!
ミつ旦.ミ \
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
やあ、元気っすか?
さて、いきなり、質問っす。
コマンドラインの出力をクリップボードにとりこむような
exeを作りたいんだよ。
dir > clip.exe
みたいな実行ができるexeをつくりたいっす。
誰かおしえてくださいな。
BlueLeaf1336-PROBLEMS-2004_0013
URLリンク(www.geocities.jp)
これを使うといいのかな?
549:デフォルトの名無しさん
08/09/05 00:01:17
それやるとclip.exeが死亡するんだが…
dir|clipだよね?
まあ標準入力をTStringListに放り込んでいって
最後にClipBoard.Text = Strlist.Textでいけると思う。
550:デフォルトの名無しさん
08/09/05 00:56:51
ゴミは消しとけよ>Delフサ
551:Delフサギコ ◆A6VzDeLphI
08/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:デフォルトの名無しさん
08/09/05 01:25:24
APIのGetStdHandleで得てReadFileで読む
RTLのRead関数はCのstdinなんかに比べて貧弱だから使わない方が良い
553:デフォルトの名無しさん
08/09/05 03:32:42
Delphi2009のバージョンアップは、今までより1~2万高そう。
554:デフォルトの名無しさん
08/09/05 04:52:23
dir > clip.exe
ワロタ
555:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/05 18:09:41
このへんのはC++Builderのほうが楽だと思うよー
#include<vcl.h>
#pragma link "rtl.lib"
#pragma link "vcl.lib"
だけしとけば何も考えずにVCL使えるし
558:デフォルトの名無しさん
08/09/05 18:42:07
パイプで繋ぐのはシェルの役目であって
プログラム自体はただの標準入出力するだけのコンソールアプリだろ。
言語選ぶようなもんでもない。
559:Delフサギコ ◆A6VzDeLphI
08/09/06 00:44:14
∧,,∧ ♪
ミ,,゚∀゚彡 ♪
ミつ[|lllll]).
@ミ ミ ♪
∪''∪
すっげー、
ありがとう。
でも、cbinだと、こういうエラーが出るんだ。なんでかな?
---------------------------
デバッガ例外が発生
---------------------------
プロジェクト ClipboardIn.exe が EInOutError クラスの例外を生成しました。
'I/O エラー (6)'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
---------------------------
OK ヘルプ(H)
---------------------------
560:デフォルトの名無しさん
08/09/06 00:48:23
{$apptype console}が抜けてるんじゃね
561:Delフサギコ ◆A6VzDeLphI
08/09/06 00:56:59
んん?ちゃんと動きました。>>560さん。原因、そうかも。
∧,,∧ ありがとう
ミ゚Д゚*彡 ございます。
ミ(旦⊂ ミ
(~,,(~,,,ミ~
こんどは、ping -t 192.168.0.1 というずっと続く
コマンドを、Memo1コントロールあたりに
DOSプロンプトと同じ風に、1行つづ、出力したかったりするんですが
こういうのはどのようにしたらよろしかりけり?
それにしても、cbin、かっこいいな。
こういう実装もあるようです。どぞどそ。
File Area
URLリンク(www.slis.keio.ac.jp)
562:デフォルトの名無しさん
08/09/06 02:56:02
>>561
CreateProcess, CreatePipeのサンプルがMLにあったはず。
中村氏だか戸田氏のコード。
それをサブスレッドで動かしてやれば標準出力を一行ごとに取れるだろう。
標準入力も受け付けるようなコンポーネントもあったな
T*Dos*だかなんだか。かなり大昔の話だけど。
delphi component pipeあたりで探してれば見つかるんじゃねーの。知らんけど。
にしてもコマンドラインもパイプもネットワークもまるで興味なさそうだったのに
猫も進化するもんだなw
563:デフォルトの名無しさん
08/09/06 07:33:05
フサギコは犬だよ
564:デフォルトの名無しさん
08/09/06 08:35:50
Ω ΩΩ ナ、ナンダッテー!!
565:Delフサギコ ◆A6VzDeLphI
08/09/07 00:56:56
わ・・・わん・・・・・・・
∧.,,∧ >>562さん
ミ.,,゚Д゚彡
ミ つ目(ミ . 相変わらずですね。
~ミ,,O,,,,,,つ まあ、いいけど。
Autch.netさんところや、
[プロセスコミュニケートコンポーネント(適当w)]さんのところで
かかれているような応用すれば
> こんどは、ping -t 192.168.0.1 というずっと続く
> コマンドを、Memo1コントロールあたりに
> DOSプロンプトと同じ風に、1行つづ、出力したかったりするんですが
こういうのできるのかなあ。
んーー、ちょっとコーディングの感覚を取り戻す必要があるなあ。
566:デフォルトの名無しさん
08/09/07 05:12:03
TMemIniFileのUNICODE対応版(WideString)はどこかにありませんでしょうか?
567:デフォルトの名無しさん
08/09/07 09:56:55
INIファイル自体MS非推奨だからPrivate~W系APIはない。
ついでに言えばUNICODE≠WideStringな。
MemInifileのソース抜いて頭にtype String = WideString;入れて再コンパイルしたら。
568:デフォルトの名無しさん
08/09/07 11:14:50
TMemIniFileはAPI非依存だから、改造すればいけそうだね
569: ◆XcB18Bks.Y
08/09/07 15:32:45
>>566
ワイド文字列の値を保存するだけなら
UTF8Encode関数でUTF-8に変換すればよいと思います
ワイド文字列のファイル名だと大変そうですね。
>>545
アクションリストは基本的にメインフォームに置いています。
データモジュールはユーザーインターフェース(U/I。表示や編集)と無関係な
内部情報や内部処理を置く場所に徹するべきだと思います。
フォームを複数使うプログラムでは
サブフォームやフレームがメインフォームを参照しないようにしています。
570:545
08/09/07 15:56:17
>>569
UIに関するものはメインフォームに置く、ということですが、その場合
サブフォームやフレームがメインフォームを参照しないようにできるんでしょうか?
571:デフォルトの名無しさん
08/09/07 16:56:06
Frame側でFileExecuteなんてpublicメソッドを用意して
メインフォーム側のFileExecuteイベントハンドラから呼び出せば依存関係がなくなる。
publicをpublishedにしてSender.Name + 'Execute'を検索すれば少し楽になる。
572:545
08/09/07 20:04:55
いやそうでなく、フレーム側からメインフォームを参照するって話なのですが・・・
動的にメソッド呼ぶのはなんか違くないですか?
573:571
08/09/07 20:31:26
(その逆はともかく)どうしてもフレーム、サブフォーム側からフォームを参照したくなければしなくてすむという話をしたつもりだったんだが。
動的かどうかはあまり本質的ではないと思うが。
574:デフォルトの名無しさん
08/09/07 23:22:24
Delphi2007にUpdate3を当てると、System.pasが見つかりませんという
DCCエラーが出るのですがどうすればいいんでしょうか?
他のUpdateも必要なのかと思い、
December2007 UpdateとApril08 Hotfixも当ててみましたが改善されません。
誰かご存知でしたら、教えてください
575:デフォルトの名無しさん
08/09/08 12:29:46
System.pasが見つからないは大抵コンパイラ起動する引数が多かったりするだけ
ライブラリパスとか減らせば直ると思うよ
こっちはd6per(笑)だから参考になるか分からんけども
576: ◆XcB18Bks.Y
08/09/08 15:35:41
>>570
・内部情報と内部処理は全てデータモジュールに置く
・内部処理クラスや汎用関数は別のユニットに書く
とやるようにしたらメインフォームを参照することはなくなりました。
ただ、メインフォームにデータの保持とUIが一体化しているコンポを置く場合は
難しいかもしれません。
577:デフォルトの名無しさん
08/09/08 21:53:44
>574
この件はローカライズの不具合で対応パッチがあったと思うけど。これか。
URLリンク(hiderin.air-nifty.com)
578:574
08/09/08 22:19:48
>575
アドバイスありがとうございます。
手動でライブラリパスを変更して、Delphiを再起動するとうまくいきました
>577
あ、問題はたぶんそれです
でも、それ今はアップデートリストに出てこなくなってるようです。
一応手動ではありますが、解決しました
ありがとうございました
579:デフォルトの名無しさん
08/09/09 07:57:56
Delphi最新版の予約語一覧をネットから見られるとこないですかね。
580:デフォルトの名無しさん
08/09/09 13:02:45
イメージ上でMouseDownしたときの処理A
同じくDlClickしたときの処理B
処理B実行後に時折Aが発動するんですが回避方法あります?
Bの端末にReleaseCapture入れてみたがダメだった。
581:デフォルトの名無しさん
08/09/09 13:45:56
マウス操作ミスじゃないのか?
ダブルクリック後一定時間以内ならMouseDownを無視してはどうでしょう?
582:デフォルトの名無しさん
08/09/09 17:26:47
マウスがチャタリング起こしてたりしない?
583:デフォルトの名無しさん
08/09/09 21:00:44
>579
つ URLリンク(docs.codegear.com)
584:デフォルトの名無しさん
08/09/09 21:30:02
出勤前、帰宅後で自作自演、ご苦労さん
585:デフォルトの名無しさん
08/09/10 08:24:08
>>580
処理Aで↓
if not (ssDouble in Shift) then
586:デフォルトの名無しさん
08/09/10 21:59:09
>>581>>582>>585どもです。
操作ミスではないようです。チャタリング?は調べてみたところ大丈夫みたい。
>>585で問題なく動作しました。ありがとうございます。
ssDubleについてはこれから調べてみます。
587:デフォルトの名無しさん
08/09/12 19:13:43
少し相談にのっていただけないでしょうか?
TFrameをつくり、
フレームを使ってみる - DelWiki
URLリンク(delwiki.info)
こちらの方法で動的生成しているのですが、
実行時に以下のようなエラーが出てしまいます。
.dfmを見ると、ClientHeightが確かにあるのですが、削除しても
フレームを表示すると、ClientHeightが再生成されてしまいます。
(ClientHeightを一時的に削除しても、同様に PixelsPerInch、OldCreateOrderプロパティでも同じようにエラーがでます)
どのような対処したらよいものでしょうか?
---------------------------
mogemage
---------------------------
PropertyToolFrame.ClientHeight の読み込み中のエラー : プロパティ ClientHeight は存在しません.
---------------------------
OK
---------------------------
588:デフォルトの名無しさん
08/09/12 19:16:04
環境を書き忘れていました。
BDS2006 OS: Vista SP1
です。
589:デフォルトの名無しさん
08/09/12 19:38:52
>>587
おまいら、教えろ!
まで読んだ。
590:587
08/09/12 20:08:04
>>587 です。
実は、Frameにこちらの TSpTBXFrame を、
Web interface to jrsoftware.org newsgroups - Re: Does SpTBXLib support TFrame ?
URLリンク(news.jrsoftware.org)
使っておりまして、どうも 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
08/09/12 20:31:37
> モジュール '(パス)hoge.pas' は継承またはリンクされたモジュールで使われています。.閉じること はできません。
の件は、どうやら フレーム名とフレームの型が .dfm と.pasで異なっていた(入力ミス?)
のための影響でした。整合性をたもちましたら、解消されました。
592:587
08/09/12 20:41:59
何度もすいません。原因がわかってきました(´д`;)
こちらの TSpTBXFrame、
Web interface to jrsoftware.org newsgroups - Re: Does SpTBXLib support TFrame ?
URLリンク(news.jrsoftware.org)
つまり、これなのですが、
gist: 8945 ? GitHub
URLリンク(gist.github.com)
デザイン時にTFrameを新規作成から生成し、
THogeMyFrame = class(TSpTBXFrame)
という風に書き換えて、コンパイルし、いったん閉じて再度ひらいたところ
デザイン画面がTFormのものになっており(TFrameの場合、枠がないはずなのに枠がある)、
.dfmの保存時もあたかもTFormのように振舞ってしまい、ClientHeight以下、
その他もろもろが保存されてしまうようです。
(ちなみに、TTnTFrameに置き換えた際は大丈夫でした)
これは一体どのような現象なのでしょうか?
593:デフォルトの名無しさん
08/09/12 21:39:56
もう日記にでも買いたら。そんな一般性のない自問自答はしらんがな
594:デフォルトの名無しさん
08/09/12 22:56:07
>>592
おそらくIDEのバグ
回避方法はもう忘れた
発生のタイミングはフレーム上のコンポを弄って保存した時。なのであまり弄るなw
595:デフォルトの名無しさん
08/09/13 09:08:18
TMainmenuのソース眺めてたらコンストラクタがなかったんだけど
こいつを弄りたいときはドコ見れば良いんでしょ?
複数のペインがあるソフトでToolBarとかじゃなく個々にメインメニューを
置けないもんかとふと思ってね。縦置きとか下段置きとかやれんもんかと。
596:デフォルトの名無しさん
08/09/13 10:07:57
継承して弄りたいなら
TMyMainMenu = class(TMainMenu)
public
constructor Create(AOwner: TComponent); override;
でいいんじゃないの。TMainMenuになければその親~TComponentのコンストラクタがそのまま使われる。
597:デフォルトの名無しさん
08/09/13 10:38:08
メニューそのものはウィンドウズのメニューだよ。ウィンドウズのメニュー
そのものの振るまいをかえることはできない。
598:デフォルトの名無しさん
08/09/13 17:08:49
ToolBarのMenuBar := Trueにする方法がなかったけ?
599:デフォルトの名無しさん
08/09/14 02:42:51
フォーム画面での「パネル」コンポーネントについて質問です。
すでにフォーム上に置いてあるコンポーネントを、
新たに配置したパネルの上に乗せたいのですが、
どうすればいいでしょうか?
画面左上の「構造」ウィンドウでドラッグしても、
駐車禁止マークみたいなものが出て、ドラッグできません。
(出来る時もあったように思うのですが・・・・)
600:デフォルトの名無しさん
08/09/14 02:50:45
カット&ペースト
601:599
08/09/14 03:08:38
できました!ありがとうございます。
602:デフォルトの名無しさん
08/09/14 07:46:48
コンポーネントからParentのFormのイベントに対して反応することや、メソッドをフックするようなことは可能でしょうか?
具体的には、あるコンポーネントをFormに置くと、
CreateParamsを上書きして設定を書き換える、といったようなことです。
普通は、TMyForm.CreateParamsを定義して、
コンポーネントで定義したUpdateCreateParamsみたいなのを呼ぶものと思います。
ただ、もっと簡単にコンポーネントを利用できるようにならないかと思った次第です。
603:デフォルトの名無しさん
08/09/14 18:33:57
継承のメカニズムに外部から干渉できるとすると大問題。
コンポーネントはポトペタができるクラスに過ぎない。
過大視するのは危険。
イベント横取りやメッセージフックは簡単にできる。あらかじめ外部から
干渉可能なメカニズムはコンポーネント化が有効かもね
604:602
08/09/14 18:50:09
>>603
サンクス。
>>602には書いていなかったのですが一部やりたかった、
ウインドウメッセージの横取りは MakeObjectInstance でいけました。
調べたらサブクラス化といってDelphiでは定番の方法みたいですね。
CreateParamsはさすがにprotectedだし、というか普通のメソッドの横取りは無理だよなあ・・・
CreateParams時に、コンポーネントから呼び出してとドキュメントに書くしかないか。
どっかでアセンブラ使ってフックするような方法をみたんだけどあれはどこだったかなあ?
単なるWin32API呼び出しのフックだったかもしれない・・・。
605:602
08/09/14 18:53:18
ありました。
madshi.net - madCodeHook description
URLリンク(www.madshi.net)
前にQuality CentralでVCLのバグを修正するのに利用されているのをみました。
606:デフォルトの名無しさん
08/09/14 20:18:53
Delphi8あたりから導入された class helper ですが、
2つのhelperが同時に使えないのが痛いと感じています。
これって、改善の要望みたいなのってどこかに出ていないのでしょうか?
607:デフォルトの名無しさん
08/09/15 21:43:14
すいません質問なのですが、Delphiには、任意の単語を登録して自動的にハイライトしてくれる機能を持ったテキストコントロールクラスがあると聞きました。
それってTRichEditというやつでしょうか??
教えて頂けると幸いです。
608:デフォルトの名無しさん
08/09/15 21:51:43
>606
そういう積極的な使い方は非推奨だから…QCに出しても相手にされないと思う。
つかInterfaceとか使うべきなんじゃね?
>607
少なくともTRichEditではない。TRichEditはWindowsのWordPad相当のrtfエディタ。
TEditorとかSynEditとかかなぁ?
609:デフォルトの名無しさん
08/09/15 22:21:25
RichEditも指定した単語をハイライトしたりというのは出来るけど
全部自分でコード書いてやらないといけないんだよな。
610:デフォルトの名無しさん
08/09/15 22:49:15
DelphiIDEに使われてる16x16のツールバーのビットマップってどっかにないですか?
C:\Program Files\Common Files\Borland Shared\Images
のは数が少なかったり古臭かったりで微妙なんで
611:607
08/09/15 23:39:52
ありがとうございます。
>>TEditorとかSynEditとかかなぁ?
ああ、調べてみるとどうやらTEditorのことだったようです。ありがとうございました。
>> RichEditも指定した単語をハイライトしたりというのは出来るけど
全部自分でコード書いてやらないといけないんだよな。
そなんですよね!なのでTEditorのようなのがあるといいんのですが、DelphiじゃなくてC++(MinGW)で使いたいんですよね。
TEditorみたいののC++版みたいのがあればいいんですが・・ってDelphiスレで聞くことではないですね。。
612:デフォルトの名無しさん
08/09/15 23:42:11
C++BuilderならTEditorとか使えるがな
613:607
08/09/15 23:43:50
URLリンク(www.kanazawa-net.ne.jp)
ここにBCBでも使えるって書いてありますね。MinGWじゃだめなのかしら。。
614:デフォルトの名無しさん
08/09/15 23:45:30
BCB(CCB?ECB?)だとDelphiのコードがコンパイルできる
なので他のコンパイラじゃ無理ぽ
615:607
08/09/15 23:46:25
>>614
ああ、そうなのですか・・知りませんでした。ありがとうございますm(_ _)m
616:デフォルトの名無しさん
08/09/16 14:41:18
C++Builderは、コンパイラがC++クラスとDelphiクラス両方のクラス扱えるようになってたりと、結構特殊な環境。
617:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/16 16:28:33
>>617
TWebBrowserからIHTMLDocument2取ってきてDOMで操作するのは?