[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 02/07 11:17 / Filesize : 190 KB / Number-of Response : 625
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Delphi初心者のための寺子屋



1 名前:デフォルトの名無しさん mailto:sage [2005/11/23(水) 23:31:08 ]
Delphi初心者が問題をコツコツと解きながらレベルアップするためのスレです。


477 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:13:05 ]
くだらん。
どうしても転化したければ、inline使え

478 名前:デフォルトの名無しさん [2008/02/24(日) 05:53:01 ]
TImage に 上から半透明のセロファンがかかってるような
フィルタをかけたかったらどうすりゃいいですかね?

俺が思いつくのは同じ大きさのBitmapを用意して
それを一色で塗りつぶした上で半透明化とかなんですけど
これってすんげえ無駄にメモリ食いますよね?

もっといい方法ってあります?

479 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:02:23 ]
>>478
DIBにして、ScanLineでBITMAPのデータを直でいじくる

480 名前:デフォルトの名無しさん [2008/02/24(日) 06:18:28 ]
>>479
うわ、検索してみたけど難しそうだこれは
1時間ほど挑戦してムリポだったら>>478の方法使うことにします

481 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:37:09 ]
そんなに難しく考えるなよ

srcが元の色
colorがセロファンの色
destが書きこむ色
αが半透明のアルファの度合いだとしたら、

dest = color * α + src * (1 - α)
これをrgb各それぞれで計算してやるだけだぞ

こういうのは「αブレンド 計算式」ででてくればすぐにでてくるよ

482 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:47:50 ]
符号無し64bit、いわゆるulonglongを使用したいのですが何か良い方法
は無いのでしょうか?



483 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:55:55 ]
符号無し64bitで何がやりたいの? 加減算の結果は同じだよ
掛け算の場合も
(Amsb + A63)*(Bmsb + B63) = Amsb*Bmsb + Amsb*B63 + Bmsb*A63 + A63*B63

で、Amsb が符号付きだろうが符号無しだろうが、下位64bitの結果には影響しない。

484 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:52:05 ]
>>483
ulonglongを使用している構造体があったんでどう実装しようかと・・・
現状では下位32bitしか使用していないのでDWORDでも問題無いとは
思うのですが、手を抜いて将来トラブルと嫌だなぁ・・・と思った次第です


485 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:37:38 ]
単にInt64にしたらいいんじゃないの? 除算や右シフトをやらない限り問題ない



486 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:47:31 ]
ゴメン 算術右シフトってのがソモソモ無かった。
だから  SHR 演算は 符号無し右シフトと等価だった

487 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:01:28 ]
UInt64使えばいいだろ。

488 名前:デフォルトの名無しさん [2008/02/27(水) 20:44:10 ]
>>481
ありがとうございます
何をすればアルファブレンドできるかは理解できたんだけども

見つかったページがそれをシフト演算で行ってて
それの意味がわかんなくて困ってます

ページを貼らせてもらうと
www.sm.rim.or.jp/~shishido/delmono.html
> r:=cl and $ff; // RGB成分に分解
> g:=cl and $ff00 shr 8;
> b:=cl and $ff0000 shr 16;
必要な色成分以外を $ff なんちゃらでマスクして消しちゃってるんでしょうが
$の記号が何をするのかわからないのがひとつめ

> cl:=Round(r*0.3+g*0.59+b*0.11); // 明るさを計算
cl って RGB値じゃなかったでしたっけ? なんで明るさだけを入力できるかさっぱりなのが2つめ

> pp^:=cl+cl shl 8+cl shl 16; // (j,i)に明るさを書き戻す
さっきRGB値を明るさに変えたのになんでこんな処理ができるのか意味不明なのが3つめ

とわからないことだらけです。助けて

489 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:55:42 ]
>488
$は16進数のプレフィクス。C/C++の0xに相当。
明るさは人間の目のRGBに対する感度の違いを考慮して計算している。昔の白黒テレビで
カラー画像を見ているのと同じ。
その明るさを持つグレーの値を計算している。

490 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 04:03:23 ]
>>488
下の二つは輝度を計算するときの公式みたいなものでアルファブレンドとは全然関係ないよ

491 名前:478 mailto:sage [2008/03/01(土) 05:18:35 ]
ヤターできたよー!
もっともほんとにやりたい事は
フィルタの範囲指定したり戻したりなんで
これからもうひと頑張りいるけど、あとはなんとかなるでしょ。

ところでRGB値ってbgrの順で保存されてるんだね。変なの
>>489-490
dです

492 名前:749 mailto:sage [2008/03/01(土) 20:27:17 ]
>>491
BGRの順番で格納されているのはTColor

実際には速度の面からPixelでは無くScanLineでBMPに直接アクセスする
ことになるが、その場合の格納方法はまた違う

493 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 21:25:24 ]
バイト単位でアクセスしたら32bit色の場合、bgrだわな

494 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 13:12:38 ]
>>493
32bit DWORDだとrgbだな

>>478はメモリの格納順では無くて上位ビット->下位ビットで話してるからな

495 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 03:36:32 ]
>>494
何をわけの分からないこと言ってるんだ
同じことだろ



496 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 04:23:57 ]
サーセンw

497 名前:デフォルトの名無しさん [2008/03/04(火) 15:49:44 ]
こんにちは。
WriteProcessMemoryのAPIを使って値を書き込んだのですが、
おもう値が書き込まれません。以下がコードです。

GetMem(buf, 1);
buf^ := Chr($3D);
WriteProcessMemory(WindowHandle, ptr(Address), buf, NumberOfBytes, Write);

これを行うと、値が35901というのが書き込まれてしまいます。61という値を書き込みたいのですが、どのようにすればよろしいのでしょうか?


498 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:18:08 ]
>>497
35901 = $8C3D

正常に動いてるじゃないか

499 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:40:25 ]
>>498

いえ、普通に$3D(61)という値を書き込みたかったんですが、その場合はどうすればよろしいでしょうか?


500 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:35:44 ]
>>499
そりゃ1Byteしか書き込んでいないから。

501 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 18:29:49 ]
>>500
NumberOfBytes

を2という値に設定はしたのですが、これでは設定不足でしょうか?


502 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 20:08:37 ]
何で1バイトしか書き込んでいないのに読み込むときは2バイトになってるんだよ

503 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:04:31 ]
>>502
すいません、私のレベルが低くていまいちよくわかりません・・・。

WriteProcessMemory(WindowHandle, ptr(Address), buf, Sizeof(buf), Write);

上のようにすればいいという事でしょうか?
読み込む時というのがわかりません・・・。


504 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:47:00 ]
>>503
>値が35901というのが書き込まれてしまいます。
これが確認できたってことはその書き込んだアドレスから読み込んだんだろ?
その時35901だったってことは、少なくとも2bytes読み込んでいるということ。

505 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:55:22 ]
>>504
いえ書き込んだアドレスから読んだんではなくて、
表示されている値が変化したので確認できたという事です。

えとつまりは61という値にはできないという事でしょうか?



506 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:55:41 ]
>表示されている値が変化したので確認できたという事です。

意味不明なんだよ、質問が。なにをどうしたらなんの表示が変化したの?

WriteProcessMemory() の第一引数が WindowHandle って時点でどうかしてる。

507 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:48:37 ]
>>505
理解できてないから予期しない結果になるんだよ。
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdebug/html/_win32_writeprocessmemory.asp

508 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 07:13:00 ]
>>506
>>507

すいません、書き忘れていました。

OpenProcessでもってきたハンドルを第一引数に入れています。
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);

質問をまとめると、
var
buf: PChar;
WindowHandle: Integer;
Write: Cardinal;

WindowHandle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
GetMem(buf, 1);
buf^ := Chr($3D);
WriteProcessMemory(WindowHandle, ptr(Address), buf, Sizeof(buf), Write);

で対象のプロセスの31という値を61に書き換えようとしたところ、35901という値に誤って(?)表示されてしまった。
というわけです。わかりにくくてすいません・・・。
たぶんbufの値に問題があると思いますが・・・。


509 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 08:04:08 ]
ヒント:bufのサイズをコンパイラが知れるわけがない

510 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 08:06:03 ]
初心者向けだからもう少しいえば
動的に確保されたバッファーのサイズをコンパイラが知ってるはずない

511 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 08:58:03 ]
>>509
>>510

bufのサイズを指定すればよろしいのでしょうか?
Sizeof(buf)
で行っている作業でサイズは取得できてると思うのですが、これとはまた別の話でしょうか?


512 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 09:29:57 ]
var buf:PChar つまりポインタなのだから、
Sizeof(buf)  は、ポインタのサイズを取得してるので、作業領域のサイズを得ているわけじゃない

513 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 09:39:40 ]
1、WindowHandleは適切な名前ではない。 hProces 等にする事
2、Writeも適切な名前でない。WriteSize とか cbWriteとか
3、Sizeof(buf)はポインタサイズで現在は4を返してる筈。

よって、
var
buf: string;
hProces : THandle;
WriteSize:DWORD;

WindowHandle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
SetLength(buf,1);
buf[1] := Chr($3D);
WriteProcessMemory(WindowHandle, ptr(Address), PChar(buf), length(buf), Write);

ただし、35901が表示されたという事は、ホントは書きたい値は1バイトではなく2バイトか4バイト
の可能性が大。

514 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 11:00:22 ]
>>495
TColorと32bitRGBじゃRGBの順序が逆だよ?
そのまんまキャストは不可

ごっちゃにしてない?

515 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 11:36:40 ]
?
メモリ上の並びとしては R,G,B で、それを32bitの変数に読むと
エンディアンの関係で [xx ,RR , GG , BB] となるだけで、同じだろ?



516 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 13:53:56 ]
>>512
>>513

こんにちは。
ご教授感謝致します。以下が修正コードです。
var
buf: string;
hProces : THandle;
WriteSize:DWORD;

hProces := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
SetLength(buf,1);
buf[1] := Chr($29A);
WriteProcessMemory(hProces, ptr(Address), PChar(buf), length(buf), WriteSize);
CloseHandle(hProces);

これで望む結果を出すことができました。ありがとうございます。
SetLength はメモリを再確保してくれる関数らしいですね、てっきりSizeOfで領域まで確保してくれているとばかり思っていました。
このような初心者に手を差し伸べてくださり本当にありがとうございます。
またこれでひとつ勉強になりました。それではm(_ _)m


517 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 19:02:16 ]
Delphiヘルプより
> TColor を Graphics ユニットに定義された定数で指定せずに,4 バイトの 16 進数で指定した場合,
> 下位の 3 バイトはそれぞれ青,緑,赤の RGB カラーの輝度を表します。
> $00FF0000 という値は最高の輝度,つまり純粋の青を示し,$0000FF00 は純粋の緑を示し,
> $000000FF は純粋の赤を示します。$00000000 は黒,$00FFFFFF は白です。

>>514
これ以上に何か意見があるなら聞こうか?(笑)

518 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 20:01:01 ]
>>517
痛いヤツだな
>>493=>>495=>>517なのか?

DIB32はメモリ上はBB GG RR 00って順番で並んでいる
コレをDWORDでアクセスすると$00RRGGBBになるだろ?
TColorの$00BBGGRRとは逆になるんだよ

初心者スレで無知を晒すのは恥じゃ無いが、学ぶ能力が無いのは恥るべき

519 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 00:55:23 ]
BSWAPして8だけRORして…

520 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 02:29:10 ]
>>518
なんか必死だけどちゃんと仕様見てきて言えよ

521 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 05:12:31 ]
>TColorの$00BBGGRRとは逆になるんだよ

????

522 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 09:27:41 ]
>>513

昨日メモリについて質問した者です。
気になる事がありましたので、お聞き致します。
仮に

SetLength(buf,1);
buf[1] := Chr($29A);
WriteProcessMemory(hProces, ptr(Address), PChar(buf), length(buf), WriteSize);
CloseHandle(hProces);

をbuf[1] := Chr($29A);としたい場合は、
function StrToByte(const s: string): byte;
var
i, n : integer;
begin
result := 0;

n := 1;
i := Length(s);
while (i > 0) and (n <= 128) do begin
if s[i] = '1' then
Inc(result, n);

n := n *2;
Dec(i);
end;
end;

を使ってbuf[1] := Chr(StrToByte('$29A'));を使って同様の結果がでないのはなぜでしょうか?


523 名前:522 mailto:sage [2008/03/06(木) 10:13:29 ]
質問間違えました、FF(250)以上の値を書くときは、
SetLength(buf,1);
buf[1] := Chr($29A);
WriteProcessMemory(hProces, ptr(Address), PChar(buf), 3, WriteSize);
CloseHandle(hProces);

こう書いたのですが、うまくいきませんでした。上の質問意味不明ですねOrz



524 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 10:40:08 ]
ええと、255=$FF 以上は1バイトで表現出来ません。
2バイトを書きたいなら $29A なら $02 と $9Aに分けて

SetLength(buf,2);
buf[1] := Chr($9A);
buf[2] := Chr($02);
WriteProcessMemory(hProces, ptr(Address), PChar(buf), length(buf), WriteSize);

または、
var
 SendInt:WORD;

として
SendInt := $029A

WriteProcessMemory(hProces, ptr(Address), @SendInt , SizeOf(SendInt), WriteSize);


525 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 12:17:08 ]
色んな理解が足りない。

どうして PCharではなくて string を使ってるかというと、
PCharだとメモリ確保した後、開放しなければいけないけど
stringなら自動開放されるからtry〜finally を使わなくてもいいから便利だから。

PCharやstringを使うのは、可変サイズに対応する為。
3バイトでも4バイトでも同じコードで対応出来るからね。

でも固定サイズなら、ポインタで処理する必要はない。
渡す時にポインタを渡せばいい。
byte,WORD,DWORDのそれぞれの引数用の関数3つを作る方がスマートだよ




526 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 15:50:39 ]
>>524
>>525

ご回答ありがとうございます。
必要な事はできたのですが、純粋に疑問になったので思い切って質問してみた所存です。
二つに分けてやるのは知りませんでした。

Stringは自動開放されるのを知っていましたが、Pcharも自動で開放されるかと思ってました(汗

私はbyte,WORD,DWORDとかの三つの関数作るなんて思わないでがつがつ書いていましたOrz
あとこれは余談ですが、GetMEMとSetLengthとは同じなんですかね?
私がGETMEMで確保してましたが、回答してくださった方はSetLengthでやっていました。
これはアセンブラのCMPとTESTみたいな感じで好みによってでしょうか?
別にこれには答えてくださらなくても構いません。

回答者のお二人ありがとうございました、目からウロコです><



527 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 17:38:22 ]
>>526
ヘルプを読めばGetMemとSetLengthの違いがわかります

528 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 21:07:30 ]
>>527
ほんとだ・・・いつもメモリ扱う時はPchar使ってたから、意識しないで使ってたけど、
違いあったんですね・・・。
どうもでした。


529 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 11:01:59 ]
Fizz-Buzz 問題:
ttp://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
 1から100までの数をプリントするプログラムを書け。
 ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、
 3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

ヒント
 GUIアプリでも AllocConsole; を入れておけばコンソールを出して write/wrilteln を使う事が出来ます
 TMemoを貼ってLines.Add をプリント代わりとしてもいいです。


530 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 13:51:19 ]
>>517-521
結局どっちなんだよw


531 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 14:04:56 ]
bitmap.PixelFormat := pf32bit;
bitmap.Canvas.Pixels[0,0] := TColor($0000FF);
PDWORD(bitmap.ScanLine[1])^ := DWORD(TColor($0000FF));
PDWORD(bitmap.ScanLine[2])^ := DWORD($0000FF);
で試してみた
結果




嘘つきばっかだなw

532 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:39:54 ]
もう放置したら?

533 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 17:40:34 ]
>DWORD(TColor($0000FF));
>DWORD($0000FF);

意味ねぇーー

534 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:35:55 ]
>>533
「意味が無い」ことを説明してるんでは?

TColorが上位、下位逆なのを説明されても理解できていない&認めようと
しないのが多数居たのが驚き。
いや、それだけ初心者向けの言語ってことなんだろうな。

535 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:38:44 ]
多数じゃなくて、一人だけだろw



536 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:15:36 ]
DLLを1つだけ LoadLibrary で読んでGetProcAddressして動かしてるプログラムがあります
このDLLをリソースには入れれたのですが実行時にDLLをHDDに書き込まずに動かす方法があれば教えてください
環境は、WinXP,Delphi6です。。。ファイルをEXE1つだけにしたいだけなのですがお願いします

537 名前:536 mailto:sage [2008/03/15(土) 16:18:06 ]
わざわざファイルに書き込まなくてもそのままでいけました。。。

538 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:09:45 ]
GPL逃れですか?

539 名前:デフォルトの名無しさん [2008/03/27(木) 17:33:47 ]
ほしゅ

540 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 06:48:24 ]
>>534
間違っています。
以上。
↓次どうぞ

541 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 15:44:57 ]
ビルドした日付を埋め込むにはどうしたらいいですか?
BCBの__DATE__みたいな奴です。

542 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:47:59 ]
できないので手動で埋め込んでください。

543 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 10:01:18 ]
$Iで埋め込んだらどうかな。
実験コード
procedure TForm1.FormCreate(Sender: TObject);
begin
with TStringList.Create do try
Add(''''+formatDateTime('yyyy/mm/dd',now)+'''');
SaveToFile('Test.dat');
finally free end;
Caption:={$I test.dat};
end;

名前付きパイプで、日付データを返すようなのを作って走らせて
{$I \\.\pipe\DatePipe } とか

544 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 11:30:32 ]
名前付きパイプは上手くゆかなかった。
APIで読めば読めるけど、LoadFromFileでは読めない。
たぶんLoadFromFileではサイズを先に読んでから処理するからなんだろう。

だから $Iでも読めないかも

545 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 18:58:18 ]
フォームに並べた10個のラベル
(名前が label1,label2..label10 とかだとして)
それぞれのラベルのCaptionにループを使ってアクセスするにはどうしたらいいんでしょう。




546 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:02:21 ]
(FindComponent('Label'+IntToStr(LabelNum))as TLabel).Caption

547 名前:545 mailto:sage [2008/04/17(木) 21:33:34 ]
助かりました、ありがとうございました!

548 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:51:42 ]
>>543
それを埋め込んだデルファイを起動するアプリを作っていいかんじになりました、どうも。

549 名前:デフォルトの名無しさん [2008/05/14(水) 16:04:58 ]
TDrawGridのColやRowプロパティが変更する場合の、
イベントハンドラを教えてくださいorz

550 名前:549 mailto:sage [2008/05/14(水) 16:16:32 ]
OnClickでできますた。

551 名前:デフォルトの名無しさん [2008/05/17(土) 13:45:07 ]
Delphianが行方不明なのでこちらに質問させてください;;
Stringでなく数値で操作できるGridコンポ探しています。
どなたかご存じないですか?

552 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 02:03:35 ]
>数値で操作できる

いみふめ

数値と文字列は相互可変なんだから TStringGrid でなにが不足なんだ?

553 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 10:57:12 ]
セルの値を直接数値で入れたり出したりしたいんだろう。素人がしたがりたそうなことだ。

554 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 11:09:12 ]
'0'..'9'のみ入れさせたいなら
StringGridKeyPressイベントで

if not (Key in ['0'..'9']) then Key := #0;
とかやって入力を潰してしまえばいい。

ペーストも含めて対策したいならSetEditTextでゴミを取り除いてCells[]にセットしてやればいい。
他にもなんか対策すべきだったと思うが忘れた。

まあそこらへんのノウハウ込みのコンポを探してるんだろうが。

555 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 12:02:23 ]
はい、日曜ど素人でございます(T_T)
StringGridKeyPressとSetEditTextで新しいコンポを作れそうです。
ありがとうございました。



556 名前:デフォルトの名無しさん [2008/05/28(水) 18:57:24 ]
TFileStreamでファイルをオープンして、
別のストリーム、たとえば、TContentStreamにファイルの中身を設定しようとすると、
どういった記述となりますか?

557 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:55:36 ]
Assignを使う。どちらもTStream派生だから。

558 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:59:25 ]
LoadFromStream はないの?

559 名前:デフォルトの名無しさん [2008/05/31(土) 02:17:47 ]
グーグルマップに自分のブックマーク(っての?)残せるやん?

ローカルの地図画像であんな感じのアプリを、db連動で作ってみたいんだけど、何を参考にすればいい? グラフィック関係かと思って、ゲーム関係見たけど、あまり参考になりそうにない。

560 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 11:48:36 ]
超初心者ですまん。

juni := member_suu + 1;

for t := 0 to member_suu - 1 do
begin
for k := 0 to member_suu - 1 do
begin
if StrToInt(ListBox1.Items[t]) >= StrToInt(ListBox1.Items[k]) then
juni := juni - 1;
end;
ListBox2.Items[t] := IntToStr(juni);
juni := member_suu + 1;
end;

上の関数で整数の特典に対して順位をつけたのだが、同点がおおくて1位等が重複してしまうので、
重複しないようにしたい。1位と2位の差はあまりこだわっていなく、名前順でいいしランダム(条件なし)でもいい。
アドバイスください。

561 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 14:38:25 ]
・名前順なら得点と名前をソートのキーとする
・ランダムなら、得点とランダム値をソートのキーとする

562 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 03:10:21 ]
Jane Doe Styleのスレッド本文の表示には何のコンポーネントを使っているのでしょうか?

563 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 03:11:13 ]
すみません、他で聞きます。

564 名前:デフォルトの名無しさん [2008/07/23(水) 17:05:00 ]
Form に Formを貼り付けると、MainMenuが表示されませんねorz

表示させる方法はあるのでしょうか?
無ければ、Menuライクなコンポーネント?

565 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 19:25:23 ]
何がやりたいの?



566 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 13:42:48 ]
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet***\Enum以下の
レジストリを操作(キー・値の変更・削除)したいんですが
SYSTEMユーザーしか操作権限がない状態です

これらを操作する方法などありますか?

567 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 22:03:58 ]
いやそれ操作したら駄目だろ。

568 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 11:06:01 ]
やっぱりタブーなのね(´・ω・`)サーセンでした

569 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:37:09 ]
なにしたいのよ?

570 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:57:37 ]
テスト環境で設定したソフトの登録情報を
本番環境とごっそり置き換える作業をプログラム化したいんです。

今、それをするのに手作業(設定時なのでAdministrato)で
レジストリのアクセス権つけて不必要な登録を消したりとかしてます。

571 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:14:04 ]
それにしてもHKLM\System以下を書き換えるなんてのはありえないと思うが?

572 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:17:13 ]
Enum\LEGACY*のいくつかにマシン名やコンピュータの設定が
刻まれているので消しているということらしいんですが
(この辺がテスト環境と本番環境で変わってくるので変更したい)

実際には、その環境の情報を見てはいないんですが
消す必要がないのかな・・・

573 名前:デフォルトの名無しさん [2008/08/29(金) 00:44:34 ]
画像ファイル(bmp、jpg)をテキストデータとして扱うことはできませんか。
MIMEとか、ishのような感じで、当然、可逆変換で。

574 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 08:19:15 ]
そのMIMEとかいshで変換すりゃあいいやん。意味不明。

575 名前:573 [2008/08/29(金) 19:31:44 ]
ん〜と、簡易データベースみたいなのをつくろうとしてて、テキストフィールドに画像を「テキストデータとして格納」したいってことなんだけど、意味不明?



576 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:25:36 ]
やっぱり意味不明かも。
まともなRDBMSならBLOB使うべきだし、
BLOB使えないなら別の名前を与えてファイルのまま保存、使うときは逆参照汁。

577 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:29:26 ]
まあどうしてもやりたいなら止めない。

ttp://www.google.com/codesearch?q=BASE64+lang%3Apas

この辺りでも参考にしてくれ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<190KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef