ab.com コミュニティ https://www.activebasic.com/forum/ |
|
アラームソフト作りました。 https://www.activebasic.com/forum/viewtopic.php?t=801 |
ページ 1 / 1 |
作成者: | MH35 [ 2006年3月09日(木) 17:21 ] |
記事の件名: | アラームソフト作りました。 |
アラームソフトを作りました。ソースを書きます。 #N88BASIC 10 dim hour As Integer 13 dim min As Integer 15 dim sec As Integer 20 dim chk As String 23 dim chk1 As String 25 dim chk2 As String 28 dim chk3 As String 29 dim chk4 As String 30 print "何時"; 40 input hour 50 If hour<0 or hour>23 Then goto 30 60 print "何分"; 70 input min 80 If min<0 or min>59 Then goto 60 90 print "何秒"; 100 input sec 110 If sec<0 or sec>59 Then goto 90 112 If hour<10 Then chk1="0"+Str$(hour As Double) Else chk1=Str$(hour As Double) 115 If min<10 Then chk2="0"+Str$(min As Double) Else chk2=Str$(min As Double) 117 If sec<10 Then chk3="0"+Str$(sec As Double) Else chk3=Str$(sec As Double) 120 chk=chk1+":"+chk2+":"+chk3 130 print chk 140 print "この時刻でよろしいならyを、そうでなければnを入力してください。"; 150 input chk4 160 If chk4="n" or chk4="N" Then goto 30 170 If chk4<>"y" and chk4<>"Y" Then goto 140 180 If chk<>Time$() Then goto 180 200 print "時間です。" 210 beep 改良するにはどうすればよいのでしょうか。GUIにしたいと思っているのですが、自分ではできません。どうすればよいのでしょう。 |
作成者: | MH35 [ 2006年3月21日(火) 17:20 ] |
記事の件名: | 補足 |
このソフトの肝は、時刻の設定形式です。 時・分・秒ともに1桁の場合は常に10の位に0が補われる。…(イ) 例1.11時14分27秒→11:14:27 例2.11時14分3秒→11:14:03 例3.11時9分16秒→11:09:16 例4.11時9分7秒→11:09:07 例5.8時16分19秒→08:16:19 例6.8時16分3秒→08:16:03 例7.8時9分19秒→08:09:19 例8.8時9分3秒→08:09:03 50行・80行・110行がないと無限ループに陥るおそれがあります。 なぜならここで入力値のチェックを行っているからです。 112行から117行までは(イ)に従ったフォーマットに変形する手順です。 無効な入力のチェックは150行での入力でも必要でそれが 160行・170行です。あとは180行で時間がくるまで待たせるだけです。 時間がきたら190行・200行が実行されておしまいというわけです。 |
作成者: | konisi [ 2006年3月28日(火) 12:43 ] |
記事の件名: | 170行目 |
180行目前後において、後何秒であるかを出力し続ける機能を追加してみました。 コード: '差分 16 Dim Time As String 17 Dim st As SYSTEMTIME 18 Dim Remainder$ As String 19 Dim Remainder As Long 171 If Time=Time$() Then goto 171 172 GetLocalTime(st) 173 Remainder=((hour-st.wHour)*3600+(min-st.wMinute)*60+(sec-st.wSecond)+24*3600) Mod (24*3600) 174 Remainder$=Str$(Int(Remainder/3600))+"時間"+Str$(Int(Remainder/60) Mod 60)+"分"+Str$(Remainder Mod 60)+"秒" 175 Locate 0,5 176 Print Remainder$+" " '書き換え 180 If chk<>Time$() Then goto 171 '差分 181 Locate 0,5 182 Print "0時間0分0秒 " 全体のソースはこちら [ここをクリックすると内容が表示されます]
しかし行番号が久しいですね。
コード: #N88BASIC 10 dim hour As Integer 13 dim min As Integer 15 dim sec As Integer 16 Dim Time As String 17 Dim st As SYSTEMTIME 18 Dim Remainder$ As String 19 Dim Remainder As Long 20 dim chk As String 23 dim chk1 As String 25 dim chk2 As String 28 dim chk3 As String 29 dim chk4 As String 30 print "何時"; 40 input hour 50 If hour<0 or hour>23 Then goto 30 60 print "何分"; 70 input min 80 If min<0 or min>59 Then goto 60 90 print "何秒"; 100 input sec 110 If sec<0 or sec>59 Then goto 90 112 If hour<10 Then chk1="0"+Str$(hour As Double) Else chk1=Str$(hour As Double) 115 If min<10 Then chk2="0"+Str$(min As Double) Else chk2=Str$(min As Double) 117 If sec<10 Then chk3="0"+Str$(sec As Double) Else chk3=Str$(sec As Double) 120 chk=chk1+":"+chk2+":"+chk3 130 print chk 140 print "この時刻でよろしいならyを、そうでなければnを入力してください。"; 150 input chk4 160 If chk4="n" or chk4="N" Then goto 30 170 If chk4<>"y" and chk4<>"Y" Then goto 140 171 If Time=Time$() Then goto 171 172 GetLocalTime(st) 173 Remainder=((hour-st.wHour)*3600+(min-st.wMinute)*60+(sec-st.wSecond)+24*3600) Mod (24*3600) 174 Remainder$=Str$(Int(Remainder/3600))+"時間"+Str$(Int(Remainder/60) Mod 60)+"分"+Str$(Remainder Mod 60)+"秒" 175 Locate 0,5 176 Print Remainder$+" " 180 If chk<>Time$() Then goto 171 181 Locate 0,5 182 Print "0時0分0秒 " 200 print "時間です。" 210 beep |
作成者: | konisi [ 2006年3月28日(火) 13:57 ] |
記事の件名: | GUI化 |
暇だったのでGUI化もしてみました。 アラームとタイマーの書き分けができずにプロジェクト名がおかしくなってますがご愛嬌^^ http://web1.nazca.co.jp/himajinn13sei/BasicTimer.zip (最終更新:2006年3月28日14時20分) 内部のコードで分からない所があったら説明しますので気楽にソースコードを読み進めてください。そして自分のものにしてください。 |
作成者: | MH35 [ 2006年3月30日(木) 17:52 ] |
記事の件名: | ありがとうございました |
ありがとうございました。ダウンロードしましたので後でゆっくり研究します。そういえば、ホームページから見るとリンクから孤立しているようですが何か理由でもあるのでしょうか。 |
作成者: | konisi [ 2006年3月30日(木) 18:43 ] |
記事の件名: | |
さすがに、人の作ったものを改良して発表するような真似はできませんよ。 作るなら関数を全て調べ上げて、コピーによる転載をせずに0から手打ちで打つほうが個人的にしっくり来るソフトが作れるのでね。 関数の使い方も頭に入るし。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |