[表示 : 全て 最新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初心者が問題をコツコツと解きながらレベルアップするためのスレです。


331 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 12:07:54 ]
>>328
たぶん出来ない。
右ボタンメニュを出すには TrackPopupMenu を呼び出すわけで
エディットコントロールにはデフォルトのWM_RBUTTONUP内部でコレを呼び出してる部分があるのだろう

TrackPopupMenuを呼び出すにはhMenuが必要だけど、EDITでコレを入手する方法が見つからない。
親窓なら、GetMenuでhMenuを呼び出せるけど、小窓ではそれが出来ないから。


332 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 12:38:35 ]
そうですか(´・ω・`)ショボーン

>親窓なら、GetMenuでhMenuを呼び出せるけど、小窓ではそれが出来ないから。

親窓を取得したりできないですかね。

差し替えたPopupMenu1のイベントハンドラを実行すると、
EditのデフォルトのPopupMenuを開きなおしたり、
とかでも良いのですが。



333 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 12:53:09 ]
>>332 後半なら
var SaveMenu:TPopupMenu;
begin
 SaveMenu:=Edit1.PopupMenu;
 Edit1.PopupMenu:=nil;
  SendMessage(Edit1.Handle,WM_RBUTTONDOWN,Edit1.Left,Edit1.Height);
  SendMessage(Edit1.Handle,WM_RBUTTONUP,Edit1.Left,Edit1.Height);
 Edit1.PopupMenu:=SaveMenu;
end;

と、いったんメニューを外して、右ボタンを押して離してを送りつければ出るよ

334 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 12:57:32 ]
有難うございます。それでやってみます。(*`∀´*)

335 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 13:28:00 ]
メニューを外さなくても、直接小窓にメッセージを送ると出るみたい

var pt:TPoint;
begin
pt:=ClientToScreen(Point(Edit1.Left,Edit1.Height));
PostMessage(Edit1.Handle,WM_CONTEXTMENU,Edit1.Handle,pt.x+(pt.y shl 16));
end;


336 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 13:49:46 ]
thx! >>333 >>335

両方おk、でした。

TPointを指定するのメンドウだから、333でやるかも。

PopupMenu1のメニューの一つに編集っていうメニューを用意して、それだとデフォメニューをオープン、
という動作でカコヨクできました。

337 名前:デフォルトの名無しさん [2007/09/21(金) 20:03:36 ]
>>326
ひょっとしてあたしを騙したの?

338 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 20:47:23 ]
勝手な思いこみ

339 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 02:55:26 ]
今からでるふぁい



340 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 18:11:26 ]
もう死んデルファイ

341 名前:デフォルトの名無しさん [2007/09/24(月) 00:52:44 ]
みなさん
多言語化(日本語/英語)
をするときはどうしてますか?おしえてください


342 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 00:58:53 ]
>>341
TNT+dxgettext

343 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 03:36:29 ]
素直にリソースDLLウィザード。日本語/英語以外の言語サポートが必要ならTNTも併用。

344 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 04:17:57 ]
標準VCLって役立たずだな

345 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 12:17:20 ]
>>341
Delphiに国際化対応のツールが付属してるでしょ、

346 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 07:52:39 ]
61 名前:34[] 投稿日:2007/09/24(月) 19:13:21
お久しぶりです。TThreadでボヤいてた者です。
TThreadをプールして使い回してみたところ問題なさそうなのでこれで行くことにしました。
あとスレッドで処理中にフォームを操作するとCPU100%のまま帰ってこなくなる現象が出ましたが、
TThreadの方にpublicで作ったAnsiStringに渡した文字列が原因だったようで、
スレッドの変数をAnsiString.Unique()して参照を切り離してやったら問題無くなりました。
これから先に嵌る人が居るかもしれないので書いておきます。

改めてありがとうございましたorz



347 名前:デフォルトの名無しさん [2007/09/27(木) 14:25:29 ]
みなさんありがとうございます。
>国際化、リソースDLL

こちらに書いてあることでしょうか?
www.wwlnk.com/boheme/delphi/tips/tec1550.htm
最後に書いてある、一度設定したらもう変更できないみたいな
ことが気になるのですが、
修正が入ったり、言語が変わると文字列の幅が変わるので
画面の調整も必要に思うんですが
みなさんどうしているのでしょうか?

何度も修正する場合
TNT+dxgettextが使われるのでしょうか。


348 名前:デフォルトの名無しさん [2007/10/04(木) 12:21:13 ]
アプリ全体のフォントサイズを大きくするって簡単ですか?

349 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 15:10:25 ]
Formのフォントサイズをでかくすれば
その上に貼り付けたコントロールも一緒にでかくなる。
ParentFont参照。
ウィンドウキャプションとかはWindowsが描いてるものだから無理。



350 名前:348 mailto:sage [2007/10/04(木) 15:20:04 ]
サンクス>>349

351 名前:デフォルトの名無しさん [2007/10/04(木) 16:38:18 ]
JPEG2000を表示する方法を教えて頂けないでしょうか?

352 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 22:53:42 ]
>>351
Susie Plug-in + SPIS

353 名前:デフォルトの名無しさん [2007/10/10(水) 11:38:53 ]
実行中のexeのリストを取得するコンポはありまつか?

354 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 14:59:41 ]
すれ違い

>Delphi初心者が問題をコツコツと解きながらレベルアップするためのスレです。

355 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 16:31:39 ]
>>353
マジレスするとDelphiでは無理

356 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 18:38:07 ]
>>353
コンポは知らないけど
NtQuerySystemInformation
を googleさんに begin とか pas と and で聞いたら 教えてくれるんじゃないかな

357 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 19:06:35 ]
>>353
コンボはないけど、
多分、TookHelp関数を使えば割と簡単にできると思う。
具体的にはTHelp32.pasに宣言されている、
Process32FirstとProcess32Nextを使えばいいんじゃない。

358 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 23:55:39 ]
>>355
お前の持ってるでるふゃいではな。

359 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 00:26:35 ]
API使える言語ならどれでも出来る
逆にこれをライブラリ化してる製品ってないんじゃないかな



360 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2007/10/11(木) 01:04:52 ]
   ∧,,∧   これつかってちょ。
  ミ,,゚Д゚彡 
   U  つ   
 @ミ  ミ    
   ∪''∪ 

DelFusa Library - Delphi OpenSource - DelFusa Floor
delfusa.main.jp/delfusafloor/opensource/delfusa_library_f.html

GetProcExeNameList


361 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 05:28:29 ]
おまいら、すれ違い

>Delphi初心者が問題をコツコツと解きながらレベルアップするためのスレです。

362 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 06:37:28 ]
問題
インチをセンチメートルに変換するプログラムを作って
細かい仕様は自由
ヒント:1in = 2.540cm 、StrToFloat

363 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 07:36:26 ]
program Project1;
{$APPTYPE CONSOLE}

function InchToMetre(Value:Double):Double;
const
  INCH_UNIT=0.0254;
begin
  Result := Value * INCH_UNIT;
end;

begin
  writeln(InchToMetre(0.050)); //12.7
  writeln(InchToMetre(0.045)); //7.62
  writeln(InchToMetre(0.030)); //5.56
end.


364 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 07:36:56 ]
嘘が書いてあるorz

365 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 09:15:41 ]
DelphiでJpeg2000を表示する方法を教えて下さいでつ。

366 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 09:48:48 ]
しつこい

367 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 09:53:58 ]
codecentral.borland.com/Item/22123

368 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 11:44:07 ]
DelphiでJpeg2000を表示する方法を教えて下さいでつ。

369 名前:365 mailto:sage [2007/10/11(木) 11:51:18 ]
368はニセモノでつ。









でも、実は未だに解決してなくて知りたかったりして。



370 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 13:22:13 ]
普通に>>367ので表示できたけど?

371 名前:365 mailto:sage [2007/10/11(木) 14:23:02 ]
サンクス>>370

実は自分もDel7出来ました。

が、実際の環境である、














C++ Builder 6だと上手くコンパイルできないんでつ><

372 名前:デフォルトの名無しさん [2007/10/11(木) 16:41:56 ]
Delphiアプリのメインフォームのウィンドウクラスって、TApplication固定でしたっけ?

373 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 19:19:37 ]
でつでつ言うなよ

374 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 22:14:07 ]
でつな

375 名前:デフォルトの名無しさん [2007/10/12(金) 15:44:09 ]
(a+3)^
ってある^はどういう意味?

376 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 16:43:45 ]
ObjectPascalの場合 後ろの^は ポインタの参照
C言語の *(a+3) と同じ

377 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 17:52:24 ]
なるほどサンクス

378 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 18:39:09 ]
よく見かける、
エディットボックスにファイルをD&Dしてそのパスを取得
はどのようにやればよいですか?

379 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 19:29:56 ]
質問はこちらにどうぞ
くだすれDelphi(超初心者用)その44
pc11.2ch.net/test/read.cgi/tech/1191657968/l50



380 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 05:15:36 ]
答えられんからって誘導とは酷いな!

381 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 17:21:40 ]
vb.netでそこそこは作れるレベルだけど、delphi始めようと思ったら最初に買うべき
本は何がいい?
それかどぼんみたく、そこだけ見ればそこそこのものは作れるようになるサイトか

382 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:12:41 ]
何を作りたいかだろ
ファイラ作りたいとか、MMO作りたいとか(スレがあっったりするが)

383 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 08:44:22 ]
ドトネトみたく環境設定も要らないし、コンポーネントも要るものはあるし。
いきなり始めて、躓いてから質問してみたら?

384 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 15:17:32 ]
VB2005はヘルプがすごく使いやすい

385 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 15:30:47 ]
ヘルプだけかよw

ネイティブアプリが作れるようになったら試しに触ってやるよ。

386 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 23:24:20 ]
ま、C#からやったらいいよ。DelphiもIDEは.NETが必要だし。
C#は良い本もヘルプもMSDNもWEBサイトも腐るほどあるし。

387 名前:デフォルトの名無しさん [2007/11/09(金) 01:23:20 ]
Del5。XPで、

Ctrl+Alt+Delを無効にする方法。
右クリックを無効にする方法。

教えて。


388 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:40:40 ]
>Ctrl+Alt+Delを無効にする方法。
マルウェアでも作るつもりですか?

389 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 05:38:41 ]
そーゆーことしたいなら自分で調べろww



390 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 06:47:53 ]
>>387
いちばん簡単なのは、DirectXのフルスクリーンモードで、そういうモードがある。
やり方は自分で調べろ

391 名前:387 [2007/11/09(金) 06:48:48 ]
いや、調べてもわからないから聞いてるんで。

ちなみに、会社のIT担当委員ってのをやってて、社員にサイバーテロの対処について教育するんだが、
本物のウィルスを使うわけにはいかないんで、ジョークウェアを作ろうと思っている。


392 名前:387 [2007/11/09(金) 06:49:39 ]
書き忘れた。

一定の時間が経過したら自動的に終了させるつもりだ。

393 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:31:11 ]
Ctrl-Alt-Deleteのキーストロークは最優先でシステムが捕捉するので、これを
無効にすることはできない。無理。不可能。Deleteキーの軸を折っちゃえ。
右クリックはマウスの右クリックのスイッチを(ry

394 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 06:56:12 ]
無理ではない。教えたいところだけど、>>391が本当か分からないし
教える立場だったら自分で調べて欲しいところ。

ヒント:海外

395 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 07:35:04 ]
ソフトウェア板の各所でも、キーロガーとか、スパウウェア用途に使われるものは紹介しないというルールだしな
おしえる側も、最低限のことは守らないと

396 名前:デフォルトの名無しさん [2007/11/10(土) 08:46:07 ]
391だけど、不正ソフトばらまくのは犯罪だってことくらい知ってるよ。
けどまぁ、信用してもらえないのも仕方がないからなんとかするわ。

397 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 07:10:16 ]
2chで信用しろといわれても・・・

398 名前:delphi初心者 [2007/11/12(月) 13:48:03 ]
ご質問いたします。

1.コンマ区切りの文字列をばらして配列にセットしてくれる関数はありませんか?
2.functionで配列は返せないのですか?





追伸: 「そんなこと自分で調べろ!」 と云う罵倒はおことわり。

399 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 13:50:46 ]
TStringList.CommaText



400 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 13:51:22 ]
それかTStringList.Textに入れれば、バラしてくれたかも

401 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:10:08 ]
>398
配列の型を宣言してそれを戻り値の型にすればおk


402 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 14:33:42 ]
>>401
それ、何てTStringList?

403 名前:デフォルトの名無しさん [2007/11/13(火) 18:48:49 ]
【Borland Delphi 6 Personal日本語版 入手先】
www.vector.co.jp/soft/dl/win95/prog/se205882.html
【Delphi 6 導入手順 】
www.wikihouse.com/DelphiVIP/index.php?%C6%B3%C6%FE%BC%EA%BD%E7
【インターネットダイレクト(Indy)コンポーネント導入手順 】
homepage3.nifty.com/KENCH/open/indy/delphi_indy.htm

動作確認は、メモとIdHttpコンポーネントを貼り付けて以下のコードを書いて実行してみる。
うまくいくとこのスレがメモにダウンロードされる。
Memo1.Lines.Text := IdHttp1.Get('live19.2ch.net/test/read.cgi/stock/1144395454/l50');

【デルファイの質問所】
hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi
leed.t.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi
groups.google.com/groups/search?hl=ja&q=delphi+

404 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:01:32 ]
上げ荒らしうぜえ

405 名前:初心者++ [2007/11/18(日) 11:09:49 ]
UpdateSQLがうまくいきません。以下のようなコードで実行すると、例外エラー'アップデート失敗'がでます。
propertyの設定は
cachedupdate true /requestlive true /updateobject updatesql

updatesqlのsql設定文もできてると思うんですが、、、


begin
database1.open;
database1.StartTransaction;
query1.Open;
end;

procedure TSDIAppForm.Button1Click(Sender: TObject);
begin

if query1.UpdatesPending then begin
query1.ApplyUpdates;
end;
database1.Commit;
query1.CommitUpdates;
query1.Close;
database1.Close;

end;

どこが間違ってるのでしょうか?教えてください
Turbo Delphi for wind32
OS : wind2000です。


406 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:36:44 ]
残念、スレちがいです。

>Delphi初心者が問題をコツコツと解きながらレベルアップするためのスレです。

407 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 17:54:22 ]
糞なテンプレでスレ立てて必死に粘着交通整理してる奴ってなんなの?

408 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:45:04 ]
自分の居場所なんだから、そりゃ必死だろう。

自分の居場所をキチンとメインテナンスするのは、それは当然ではあるまいか?

409 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 17:32:32 ]
自分の居場所ならグダグダ「スレ違い」とか言ってないで、問題を出題すべきだと思うんだな。
問題と解答、それに議論が無いから、過疎ってスレ違いと基地外の巣窟と化してるんだな。
問題:おみくじ
randomを使って大吉、吉、凶のいずれかを表示するプログラムを作れ



410 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 17:36:13 ]
>>409

あまりにも簡単すぎるプログラム出題でワロタw

せめて、n回凶が出る確率を計算するプログラムとかにすればいいのに。

411 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 17:47:39 ]
>>405

Queryの更新エラーは、
query1.RequestLiveのtrue/falseが
結構関係している。

412 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 22:53:35 ]
Gandomを使って大吉、吉、凶のいずれかを表示するプログラムを作れ


413 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 23:05:26 ]
>>412
CGは専門外なんで無理ですw

414 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 23:21:52 ]
Gandom はすれ違い。

415 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:02:34 ]
問題:呼び出すたびに1と0を交互に返す関数を書け。グローバル変数を使っても良い。

416 名前:初心者++ [2007/11/21(水) 02:06:06 ]
UpdateSQLのエラーが解決しました。レスを下さった方ありがとうございました。
SQL文のキー違反でした。
 SQLの勉強をもっとしないと阿寒と思いました。
 Accessのビューで作ったSQL文を貼り付けたりしておったのですが、、、。
 エラー続出でした。

417 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:30:12 ]
問題:マウスクリックすると、クリックしたマス目とその上下左右のマスが反転する。
    マス目を全て塗りつぶしたらクリアとなるゲームを作る

□□□□□             □□□□□            ■■□□□
□□□□□             □□■□□            ■□■□□
□□□□□             □■■■□            □■■■□
□□□□□             □□■□□            □□■□□
□□□□□の真ん中を押すと  □□□□□左上クリックで   .□□□□□

■■□□□           ■□□□□
■○■□□           □■□□□
□■■■□           □□■■□
□□■□□           □□■□□
□□□□□ ○を押したら  □□□□□


全部塗りつぶしたらゲームクリア
■■■■■
■■■■■
■■■■■
■■■■■
■■■■■

418 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:43:16 ]
>>417
ライツアウト懐かしいな

419 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 00:58:06 ]
俺には作れねぇ



420 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:03:28 ]
頑張れば作れなくもなさそうだけど、とてつもなく無駄が多くなりそう・・。

421 名前:1/2 mailto:sage [2007/11/22(木) 01:33:44 ]
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
    procedure FormClick(Sender: TObject);
  private
    FTable: array[0..4, 0..4] of Boolean;
  end;

procedure TForm1.FormPaint(Sender: TObject);
const
  B2S: array[Boolean] of String = ('□', '■');
var
  x, y: Integer;
begin
  for x := 0 to 4 do
    for y := 0 to 4 do
      Canvas.TextOut(x*12, y*12, B2S[FTable[x, y]]);
end;

422 名前:2/2 mailto:sage [2007/11/22(木) 01:34:15 ]
procedure TForm1.FormClick(Sender: TObject);
var
  pt: TPoint;
begin
  pt := Self.ScreenToClient(Mouse.CursorPos);
  pt.X := pt.X div 12;
  pt.Y := pt.Y div 12;

  if (0 <= pt.X) and (pt.X <= 4) and (0 <= pt.Y) and (pt.Y <= 4) then
  begin
    FTable[pt.X, pt.Y] := not FTable[pt.X, pt.Y];

    if 1 <= pt.X then FTable[pt.X-1, pt.Y] := not FTable[pt.X-1, pt.Y];
    if pt.X <= 3 then FTable[pt.X+1, pt.Y] := not FTable[pt.X+1, pt.Y];
    if 1 <= pt.Y then FTable[pt.X, pt.Y-1] := not FTable[pt.X, pt.Y-1];
    if pt.Y <= 3 then FTable[pt.X, pt.Y+1] := not FTable[pt.X, pt.Y+1];
  end;
    
  Invalidate;
end;

423 名前:2/2 ver.2 mailto:sage [2007/11/22(木) 01:40:47 ]
クリア判定忘れてた。

procedure TForm1.FormClick(Sender: TObject);
var
  pt: TPoint;
  x, y: Integer;
  Clear: Boolean;
begin
  pt := Self.ScreenToClient(Mouse.CursorPos);
  x := pt.X div 12;
  y := pt.Y div 12;

  if (0 <= x) and (x <= 4) and (0 <= y) and (y <= 4) then
  begin
    FTable[x, y] := not FTable[x, y];

    if 1 <= x then FTable[x-1, y] := not FTable[x-1, y];
    if x <= 3 then FTable[x+1, y] := not FTable[x+1, y];
    if 1 <= y then FTable[x, y-1] := not FTable[x, y-1];
    if y <= 3 then FTable[x, y+1] := not FTable[x, y+1];
  end;

424 名前:3/2 mailto:sage [2007/11/22(木) 01:41:18 ]
  Clear := True;
  for x := 0 to 4 do
  begin
    for y := 0 to 4 do
      if not FTable[x, y] then
      begin
        Clear := False;
        Break;
      end;

    if not Clear then
      Break;
  end;

  if Clear then
    ShowMessage('おめ');

  Invalidate;
end;

425 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:02:47 ]
すげー!参考にさせて頂きますm(_ _)m

426 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 11:33:40 ]
implementation
{$R *.dfm}

//スペースの都合上ここに記述本当ならTForm1のprivateが望ましい
var
BTable:array of array of Boolean; 

procedure CheckComplete();
var
X,Y:Integer;
begin
for X:=1 to High(BTable)-1 do
for Y:= 1 to High(BTable[X])-1 do
if Not BTable[X,Y] then Exit;

ShowMessage('Mission Complete!');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetLength(BTable,DrawGrid1.ColCount+1,DrawGrid1.RowCount+1);
end;


427 名前:修正1/2 (426は放置推奨 ) mailto:sage [2007/11/23(金) 11:43:25 ]

//●最初にDrawGridを貼り付け、プロパティを以下のようにセット
  Align = alClient
  DefaultDrawing = False
  ColCount = 6
  RowCount = 6

//●FormのPrivateに以下のフィールドとメソッドを追加
  BTable:array of array of Boolean; //動的二次元配列
  procedure CheckComplete();
  
//●CheckComplete関数を書く
procedure TForm1.CheckComplete();
var
  X,Y:Integer;
begin
  for X:=1 to High(BTable)-1 do
    for Y:= 1 to High(BTable[X])-1 do
      if Not BTable[X,Y] then Exit;

  ShowMessage('Mission Complete!');
end;

//●FormCreateを書く
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetLength(BTable,DrawGrid1.ColCount+1,DrawGrid1.RowCount+1);
end;

428 名前:修正(2/2) mailto:sage [2007/11/23(金) 11:43:59 ]
//●DrawGrid1DrawCellを書く
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
const
  COLORPALS:array[Boolean] of array[Boolean] of TColor = ((clWhite,clBlack),(clSilver,clSilver));
begin
  DrawGrid1.Canvas.Brush.Color := COLORPALS[(gdFixed in State) , BTable[ACol,ARow] ];
  DrawGrid1.Canvas.FillRect(Rect);
end;

//●DrawGrid1SelectCellを書く
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;var CanSelect: Boolean);
begin
  BTable[ACol-1,ARow] := Not BTable[ACol-1,ARow];
  BTable[ACol ,ARow] := Not BTable[ACol ,ARow];
  BTable[ACol+1,ARow] := Not BTable[ACol+1,ARow];
  BTable[ACol,ARow-1] := Not BTable[ACol,ARow-1];
  BTable[ACol,ARow+1] := Not BTable[ACol,ARow+1];
  DrawGrid1.Invalidate;
  CheckComplete();
end;


429 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 18:34:16 ]
>>417
7行スレで盛り上がりそうな内容だなw



430 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 17:46:32 ]
25ボタンの処理を全部書くことで初心者でも作れてしまうが、まじめにやれば7行に・・・・なるな多分

431 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 23:00:38 ]
>>157
D6からそうなったのか?
パスなしだとWINDOWSフォルダにつくられるんじゃなかった?






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

前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