Image1の描画範囲が変更できない


AS  2016-03-30 15:45:39  No: 48130

「質問を二つ」では、長年のバグを消すことができました。
もう一つ長年苦労している問題を質問させていただきます。
Formサイズを変更して描画範囲を広くしても、表示させると、元の
範囲と変わりません。下のプログラム以外に追加すべきことがあり
ますか??

プログラムをコンパイル、実行してもエラーはありません。別のプ
ログラムを作って、これを実行させると、6本以上縦線が引けるので
すが、このプログラムの中では元は計6本縦線を引くのですが、変更
して10本引こうとしても6本しか縦線が表示されていません。Imege1
の描画範囲が増えていないような気がします。表示させる範囲を指定
する文などのような、私の知らないことがあるような気がして、質問
させていただきます。よろしく、お願いします。

     Image1.Width:=width;    Image1.height:=Height;
     Canvas.rectangle(0,0,Image1.width,Image1.Height);
     Canvas.MoveTo(120,500); CanVas.LineTo(120,30);      //縦線
     begin
       for C:=1 to 10 do      //trunc((habaWD-26)/26) do
       begin
         CanVas.MoveTo(120+26*5*C,500);
         CanVas.LineTo(120+26*5*C,30);
       end;
     end;


take  2016-03-30 17:15:27  No: 48131

とても初歩的なミスが多いので
書籍などを購入して各コンポーネントやクラスの
基本的な使い方を学ばれてはいかがでしょうか?


igy  2016-03-30 18:06:48  No: 48132

>下のプログラム以外に

挙げられたコードは、どのイベントに書いていますか?

>Formサイズを変更して描画範囲を広くしても、

OnResize イベントでは、何か記載していますか?

あと、(面倒くさいかもしれませんが)Delphiのバージョン等は、
質問するごとに、書いたほうがよいかと思います。


tor  2016-03-30 19:44:45  No: 48133

これが本物のコードだとしたら、そもそもノアョテに描いていないので
ノアに覆い隠されて何も見えなくなると思うんですけど。

ヤノは元来、アイコンなど静的なイメージを表示するためのものです。
動的な描画をやりたいのならヤミツを使って、それのマミで描画しましょう。

必要なのが本当に縦線と横線だけだったら、わざわざ描画なんてしないで
ヤツなりヤモなりを貼り付けとくというのもありかもしれませんよ。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアカッーウッウーィ水ゥ アイコイーコーー  書込者ノト:ロ 「・「   ン

ヤノに描きたいのであれば、こんな感じですかね。

ヲサヲサテコヲササ

ヲサヲサノアョラヲサコスヲサラサ
ヲサヲサノアョネヲサコスヲサネサ
ヲサヲサノアョミョツョラヲサコスヲサノアョラサ
ヲサヲサノアョミョツョネヲサコスヲサノアョネサ
ヲサヲサヲサノアヲサヲサ
ヲサヲサヲサヲサテョヘヤィアイーャオーーゥサ
ヲサヲサヲサヲサテヨョフヤィアイーャウーゥサ

ヲサヲサヲサヲサヲサテヲサコスヲサアヲサヲサアーヲサヲサ
ヲサヲサヲサヲサヲサヲサテヨョヘヤィアイーォイカェオェテャオーーゥサ
ヲサヲサヲサヲサヲサヲサテヨョフヤィアイーォイカェオェテャウーゥサ
ヲサヲサヲサヲササ
ヲサヲササ

スススススススススススススススススススススススススススススススススススススススス
ニコ チモ
トコ イーアカッーウッウーィ水ゥ アクコウエコエー  書込者ノト:ロ 」。ァ。」 ン
モコ 

皆さん、ありがとうございます。

さん、私も基本を学びたいとは思っていますが、そうする時間ももう残って
いないような?また、この年では新しいことを学ぶことはできないと思います。
私は英語の本を読むのが好きで、普段は辞書を使わずに読んでいます。アー年ほど前、
これではいけないと思って、1冊辞書引きながら読み終えましたが、覚えていた
単語はイ個だけでした。もう記憶は出来ないのだなあと実感しました。確かに
クラスとか継承とかちんぷんかんぷんです。

さん、すみません。ついこの間の「二つの質問」の中のマと同じですので、
ついつい、省略しました。気を付けます。

さん、元の変更前の範囲は見えるんですよ。

さん、ありがとうございます。を使わなくても、新規に
プログラムして表示させたらちゃんと表示します。何故でしょうか??

また、新しいことを学べました。ありがとうございました。
基本的な質問が多いと思いますが、今後もよろしくお願いします。
スススススススススススススススススススススススススススススススススススススススス
ニコ ヒ
トコ イーアカッーウッウーィ水ゥ イーコウーコーカ  書込者ノト:ロ 「。ィ。 ン

解決済みですが、過去に私が勘違いしていたのと同じ事が質問として
取り上げられていた様ですので、書かさせて頂きます。

ロチモ様のコードン
ヲサヲサヲサヲサヲサノアョラコスサヲサヲサヲサヲサノアョコスネサ
ヲサヲサヲサヲサヲサテョィーャーャノアョャノアョネゥサ
ヲサヲサヲサヲサヲサテョヘヤィアイーャオーーゥサヲサテヨョフヤィアイーャウーゥサヲサヲサヲサヲサヲサヲサッッ縦線
ヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサテコスアヲサヲサアーヲサ      ッッィィラトュイカゥッイカゥヲサ
ヲサヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサテヨョヘヤィアイーォイカェオェテャオーーゥサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサテヨョフヤィアイーォイカェオェテャウーゥサ
ヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲササ

(1)ノのサイズ変更

ノアの描画領域が増えていないとの事ですが、
実はノアのラやネを変えてもツのラとネは変わらないのです。

ヲサヲサヲサノア
┌────┐
│ヲサヲサヲサヲサヲサヲサヲサヲサ│
│ヲサヲサヲサヲサ←─┼──ヲサノアョラヲサ&ヲサノアョネ
│ヲサヲサヲサヲサヲサヲサヲサヲサ│ヲサヲサヲサヲサヲサノアョミョツョラヲサ&ヲサノアョミョツョネ
│ヲサヲサヲサヲサヲサヲサヲサヲサ│ヲサヲサヲサヲサヲサ2つは一致している
└────┘

フォーム上にノコンポーネントを置いた時点では、
ノアョラヲサヲサスヲサノアョミョツョラ
ノアョネヲサスヲサノアョミョツョネ
になっています。

次に、チモ様のコードを拝見した所、
プログラムからノコンポーネントの
ラとネは変更されていますが、
ノアョミョツのラとネは変更されていない為、
次の様になります。

ヲサヲサヲサヲサヲサヲサヲサノア
┌────┬───┐
│ヲサヲサヲサヲサヲサヲサヲサヲサ│ッッッッッッ│
│ヲサヲサヲサヲサ←─┼───┼──ヲサノアョミョツョラヲサ&ヲサノアョミョツョネ
│ヲサヲサヲサヲサヲサヲサヲサヲサ│ッッッッッッ│
│ヲサヲサヲサヲサヲサヲサヲサヲサ│ッッッッッッ│
├────┘ッッッッッッ│
│ッッッッッッッッッッッッッッッッ│
│ッッッッッッッヲサ←───┼──ヲサノアョラヲサ&ヲサノアョネ
│ッッッッッッッッッッッッッッッッ│ヲサヲサヲサヲサヲサッッの部分は真っ白
└────────┘
※ヲサもし図がズレている場合は等幅フォントでご覧下さい。

フォームのサイズに変更があった時、
様のコードにあるように、

ヲサヲサノアョラヲサコスヲサラサ
ヲサヲサノアョネヲサコスヲサネサ
ヲサヲサノアョミョツョラヲサコスヲサノアョラサ
ヲサヲサノアョミョツョネヲサコスヲサノアョネサ

と、2つとも同じサイズを設定するか、

再描画の為に最初から描画処理を行うなら、

ヲサヲサノアョミヲサコスヲササ
ヲサヲサノアョラヲサヲサヲサコスヲサ更新後の幅サヲサヲサ
ヲサヲサノアョネヲサヲサコスヲサ更新後の高さサ

で、正しく描画される様になるはずです。

(2)気になった点

チモ様のコードで気になった点があるのですが、

ロ1行目ンヲサフォームの幅と高さでノアコンポーネントの大きさを設定した。

ロ2行目以降ンヲサノアの大きさを設定したのに、描画している先はフォーム。

文を使っているのかが不明でしたが、私にはその様に映りました。

もし混乱が発生する場合があるのでしたら、少々面倒でも

1行目は、ノアョラヲサコスヲサニアョラサ
2行目は、ノアョテョィーャーャノアョャノアョネゥサ

と、書いておいた方が読みやすくなり、何を対象としているのかが明確になります。

チモ様の一助となれば幸いです。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアカッーウッウーィ水ゥ イイコアーコーア  書込者ノト:ロ 「」「  ン

ヲサヲサさん、元の変更前の範囲は見えるんですよ。
ィ略ゥ
ヲサ新規にプログラムして表示させたらちゃんと表示します。何故でしょうか??
元々やってることがおかしいから「たまたま」じゃないですかね……

なんか解決したようだからまあいいとして、
気になってウズウズしてたところをちょっとフォローしておきます。

・ノがフォーム全体を占めるようにしたいのなら、
チヲサスヲサテヲサに設定しとけばわざわざ自分でリサイズしなくていいです。

ヲサヲサヲサテコスアヲサヲサアー
このアをーからに変えれば、最初のヘヤとフヤはいらなくなりますよ。
あと、本当に線がアー本必要なのだとしたら、ア本余分に引いてますね。私なら最後をケにするかな。
スススススススススススススススススススススススススススススススススススススススス
ニコ チモ
トコ イーアカッーウッウアィ木ゥ ーカコウーコエー  書込者ノト:ロ 」。ァ。」 ン

ヒさん、さん、ありがとうございます。

文を使っていました。
このプログラムを作った時参考にしたのは、「はじめてのト」です。
などということは出ていませんでした。今は「ト逆引き大全」
というのも持っていますが、それの「描画のコードを書くには」にも出て
いません。こうしてみると、本当に知らないことばかりです。これからの
参考にさせていただきます。

本数は、本当は後ろにッッで残している計算式です。また、本当になんで
ーからにしないんだろうと思われるでしょうが、縦線はこの場合の等間隔に
引くのと、もう一つの引き方があって、最初に引いたのは基準線だと思って
ください。ッッ縦線の行の下にノ文があるんですが消していました。

実は、子フォームに孫ファームが隠れる現象が時たまラクのア台で起こ
ります。これを解決するために孫ファームの大きさを子ファームより大き
くするようにしました。すごく原始的でしょう?

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加