[戻る]
一括表示

定義ファイルで交信データ欄を任意の場所に表示 投稿者:JS1BRX/深井 投稿日:2025/06/11(Wed) 10:08:00 No.6180

https://yuito.sakura.ne.jp/cgi/topics/topics.cgi

いつもありがとうございます。
昨日にひき続き、交信データ欄を任意の場所に表示するサブルーティンを作ってみました。
今回は、hQSLの定義ファイルです。

紙QSLの定義ファイルのときにご指摘を受けた点を改めて、
#Mov $$X=0
#Mov $$Y=0
を基準点にして作成しました。

今回も、色々と無駄な手続を経ているかもしれません。
お気づきの点がございましたら是非ご指摘ください。

Re: 定義ファイルで交信データ欄を任意の場所に表示 投稿者:JG1MOU浜田 投稿日:2025/06/11(Wed) 13:12:02 No.6181

> いつもありがとうございます。
> 昨日にひき続き、交信データ欄を任意の場所に表示するサブルーティンを作ってみました。
> 今回は、hQSLの定義ファイルです。

すごい、力作ですね。参考にさせていただきます。

#Mov $$Y = $$Y+22  というような足し算もできますので、そうすれば各行で
#Print $$X+20, $$Y+22 と書く必要もなくなります。

Re^2: 定義ファイルで交信データ欄を任意の場所に表示 投稿者:JS1BRX/深井 投稿日:2025/06/11(Wed) 15:15:19 No.6182

> #Mov $$Y = $$Y+22  というような足し算もできますので、そうすれば各行で
> #Print $$X+20, $$Y+22 と書く必要もなくなります。

ありがとうございます。
お世辞でもそう言っていただけると嬉しいです。
ご指摘いただいたやり方ですが、何カ所か使える場所がありますね。
早速、修整させていただきます。

Re^3: 定義文の変数の使い方について 投稿者:JS1BRX/深井 投稿日:2025/06/11(Wed) 17:08:54 No.6183

> > #Mov $$Y = $$Y+22  というような足し算もできますので、そうすれば各行で
> > #Print $$X+20, $$Y+22 と書く必要もなくなります。
>
> ありがとうございます。
> お世辞でもそう言っていただけると嬉しいです。
> ご指摘いただいたやり方ですが、何カ所か使える場所がありますね。
> 早速、修整させていただきます。

お世話になっております。
変数の使い方について
浜田さんから教えていただいた
#Mov $$Y=$$Y+25
などと加減できるとのことで早速使って見たのですが
同じ変数を使い回すと、代入した値にさらに加減された値が代入されて行ってしまうようです。
色々と試行錯誤しているのですが解決に至らないでいます。
冒頭で宣言した変数の値を引き継いだまま加減する方法はないものでしょうか?

Re^4: 解決しました 投稿者:JS1BRX/深井 投稿日:2025/06/11(Wed) 18:28:45 No.6184

> > > #Mov $$Y = $$Y+22  というような足し算もできますので、そうすれば各行で
> > > #Print $$X+20, $$Y+22 と書く必要もなくなります。
> >
> > ありがとうございます。
> > お世辞でもそう言っていただけると嬉しいです。
> > ご指摘いただいたやり方ですが、何カ所か使える場所がありますね。
> > 早速、修整させていただきます。
>
> お世話になっております。
> 変数の使い方について
> 浜田さんから教えていただいた
> #Mov $$Y=$$Y+25
> などと加減できるとのことで早速使って見たのですが
> 同じ変数を使い回すと、代入した値にさらに加減された値が代入されて行ってしまうようです。
> 色々と試行錯誤しているのですが解決に至らないでいます。
> 冒頭で宣言した変数の値を引き継いだまま加減する方法はないものでしょうか?

#Mov $$Y = $$Y+22

と代入して処理したら末尾に

#Mov $$Y = $$Y-22

と記述することで解決しました。
お騒がせしました。

Re^5: 解決しました 投稿者:JG1MOU浜田 投稿日:2025/06/11(Wed) 20:16:28 No.6185

#Mov $$Y = 0
#Mov $$V = $$Y+22
・・・のようにしておいて、$$V を使いまわしたらいかがでしょうか。

$$U 〜 $$Z が数値用として使えます。

Re^6: 解決しました 投稿者:JS1BRX/深井 投稿日:2025/06/11(Wed) 21:39:55 No.6186

> #Mov $$Y = 0
> #Mov $$V = $$Y+22
> ・・・のようにしておいて、$$V を使いまわしたらいかがでしょうか。
>
> $$U 〜 $$Z が数値用として使えます。


ありがとうございます。
今回は、冒頭で交信データ欄の表示位置を

#Mov $$X = 0
#Mov $$Y = 0

と宣言してそれぞれの項目のパラメータを設定しました。
例えば

#Print $$X,$$Y+22

と設定して、冒頭の座標を下記のように変更したとします。

#Mov $$X = 185
#Mov $$Y = 450

すると

#Print $$X,$$Y+22は


#Mov $$Y = $$Y(450)+22

ということになり、$$Yの値は472となるので

処理が終わったら

#Mov $$Y = $$Y(472)-22

と、$$Yの値を冒頭の値に戻してから
次の処理に進みます。

これで、交信データ欄の位置指定を画面内のどこに移しても表示が崩れることがなくなりました。

しかし浜田さんのご指摘のとおり

Mov $$V = $$Y+22

として$$Vを使い回すということにすると、やはり処理が終わったら

Mov $$V = 0

と$$Vの値を払う必要があり、さらにMov $$V = $$Y+??と代入することになるので結果的に二行程増えることになるような気がするのですが如何でしょうか?

生意気なことを申しあげてすみません。

またわかりにくい説明で申しわけありません。

Re^7: 解決しました 投稿者:JS1BRX/深井 投稿日:2025/06/11(Wed) 22:37:42 No.6187

> > #Mov $$Y = 0
> > #Mov $$V = $$Y+22
> > ・・・のようにしておいて、$$V を使いまわしたらいかがでしょうか。

#Mov $$Y = 0
#Mov $$V = $$Y+22

すみません勘違いしていました。
上記の一行目は、#Mov $$(V )= 0

のタイプミスなんですね。

これなら、$$Vの値を払うのが1回で済みますし
直前の$$Yの値を処理後に払うよりも確認事項が減りますから
私のやり方よりも合理的と思います。
失礼しました。

- WebForum -