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


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

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



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

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

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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


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

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

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



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

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

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

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

>>55
意味が分からん

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

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

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

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

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



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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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



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

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


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



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

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


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

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


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

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

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

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



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


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


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

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

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

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

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

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

お願い!

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

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

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

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

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

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

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

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

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

はいつぎの質問



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






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

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

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