Re: 「増やしながら繰り返す」について

投稿者:ゆうと 投稿日:2018/01/23(Tue) 02:50:06 No.1966

こんにちは。お世話になっています。

繰り返しでの増減数は今のところ整数のみとなっています。

少し工夫して次のように書いて工夫してください。
----------------
数は、1
回数を0から1ずつ増やしながら数*10まで繰り返す
  回数/10を表示
繰り返し終わり
----------------

それでは

「増やしながら繰り返す」について

投稿者: 投稿日:2018/01/20(Sat) 17:36:49 No.1965

 こんにちは、お世話になります。

 「増やしながら繰り返す」で、下記のようなソースを書いてみたんですが、エラーになってしまいます。
 少数で増やすのはできないんでしょうか。

----------
回数を0から0.1ずつ増やしながら1まで繰り返す
回数を表示
繰り返し終わり
----------

 以上、よろしくお願いいたします。

通知アイコンの件に関して

投稿者: 投稿日:2018/01/20(Sat) 17:32:54 No.1964

 こんにちは、お世話になります。

 とりあえず、最新版1.5.878をインストールして、通知アイコンのほうを試してみましたが、クリックした後に上下矢印キーとかでメニュー項目を変更しようとすると、フォーカスが飛んでしまうようです。
 何か対処法はありますでしょうか。

 よろしくお願いいたします。

Re: メニュー関係で2つほどご質問

投稿者:ゆうと 投稿日:2018/01/20(Sat) 02:14:29 No.1963

こんにちは ゆうとです。
お返事遅くなりました。本年も宜しくお願い致します。

>  1.タスクトレイにメニューを作成して、マウスの左クリックやキーボードのEnterキーでメニューを表示させるにはどうしたらよいでしょうか。

「通知アイコン」種類を使うことで、タスクトレイにアイコンを表示させることができます。
https://rdr.utopiat.net/docs/reference/wincontrol/mics/notifyicon.htm

左クリックでメニューを出す場合には、通知アイコンの「左クリックされた」ときの手順を定義した上で、「コンテキストメニュー」種類の「表示する」手順を実行させてください。

以下、例文です。
-------------------
タスクトレイ1という通知アイコンを作る
タスクトレイ1のアイコンを(「shell32.dll」の45番目からアイコン画像を抽出したもの)に変える
タスクトレイ1の左クリックされた時の手順は、表示する

メニュー1というコンテキストメニューを作る
メニュー1にメニュー項目を追加する
  その内容を「閉じる」に変える
  そのクリックされた時の手順は、閉じる

タスクトレイ1を表示する
待機する

閉じる手順
  タスクトレイ1を隠す
  終了する
終わり

表示する手順
  メニュー1を表示する
終わり
------------------------

>  2.ホットキーを押したら、現在のカーソル位置にメニューを表示させたいんですが、何か良い方法はありますでしょうか。

同じように「コンテキストメニュー」種類の「表示する」手順で、マウスカーソルがある位置にメニューを表示できます。
なお、「表示する」手順で、1.5.877よりも古いバージョンでは、マウスカーソルがある位置にメニューが表示されない不具合がありますので、最新版でお試しください。

以下、例文です。
------------------------
窓というウィンドウを作る
メニュー1というコンテキストメニューを作る
メニュー1へ終了項目というメニュー項目を追加する
  その内容を「終了する」に変える

テストキーというホットキーを作る
テストキーのキーは、「P」
テストキーのシフトキーは、○
テストキーのコントロールキーは、○
テストキーを登録する
待機する

終了項目がクリックされた時の手順
  終了する
終わり

テストキーが押された時の手順
  メニュー1を表示する
終わり
-----------------

参考になれば幸いです。

Re: データの列の一覧を取得したい

投稿者:ゆうと 投稿日:2018/01/20(Sat) 01:54:57 No.1962

こんにちは ゆうとです。
お返事遅くなりました。

> 「あは データの2列目」の部分を「あは データの2行目」にしても同じ結果が表示されます。
ご指摘の通り、同じ結果になっておりましたので、正しく取得できるように修正しました。
最新版1.5.877でお試しください。

Re^2: SQLiteのUNIQUE使用時のエラー

投稿者:ゆうと 投稿日:2018/01/20(Sat) 00:42:19 No.1961

こんにちは ゆうとです。

例外監視文は、「例外監視」の後に、エラーが起こる可能性があるプログラムを書きます。

例外監視文については、次のアドレスに簡単な説明があります。
https://rdr.utopiat.net/docs/onepage/syntax.html#trycatch

SQLiteのエラーメッセージを無視させたい場合には、次のようにプログラムを書いてください。
------------
例外監視
  SQL文をバインド値としてSQLiteで実行する
発生した場合
監視終わり
------------

参考になれば幸いです。

Re: DLLを追加する事で解決しました。

投稿者:うなぎいぬ 投稿日:2018/01/17(Wed) 23:23:58 No.1960

プログラムに下記のDLLを追加する事で解決しました。
お騒がせいたしました。

「Produire.Data.Base.dll」を利用する
「Produire.Data.SQLite.dll」を利用する
「Produire.Data.Grid.dll」を利用する


> 度々の質問で申し訳ありません
> 昨日質問した場所で停滞していても仕方が無いので読み取りのプログラムを作り始めました。
> そこで、次のようなエラーをクリアできずに悩んでおります。
> SQLiteでselect文を実施した結果を一覧に指定のですが下記のようなエラーが発生します。
> 配列ではないとの事なのでリストビューなどでも試してみたのですが
> 方法に問題があるらしく報告で出力できる結果を表にして得ることが出来ませんでした。
> やり方をお教えください。
>
> 配列をデータ表へ変換できませんでした。
> [エラー番号900] [メイン画面.ボタン1がクリックされた時:50行目]」
>
> 添付画像は「報告でselectされた結果」のデータ
>
> //
> // 郵便番号SQLで検索・画面
> //
> // プロデルからSQLiteデータベースを操作する例 //
> //SQLiteを利用するには、System.Data.SQLite.dllが必要です
> 「Produire.Data.SQLite.dll」を利用する
>
> SQLiteというSQLiteデータベースを作る
> SQLiteのデータソースを、「test01.db」に変える
> SQLiteへ接続する
>
> データというデータ表を作る
>
> メイン画面を表示する
>
> 待機する
>   
> メイン画面とは
>   ウィンドウを継承する
>   はじめの手順
>     初期化する
>     ーー貼り付けた部品に対する操作をここに書きます
>     //表部品1のデータ表をデータに変える
>   終わり
>   初期化する手順
>   ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
>   この内部領域大きさを{782,491}に変える
>   この内容を「メイン画面」に変える
>   このドラッグドロップを○に変える
>   ボタン1というボタンを作る
>     その位置と大きさを{58,42,75,33}に変える
>     その内容を「ボタン1」に変える
>     その移動順を1に変える
>   表部品1という表部品を作る
>   表部品1を初期化開始する
>     その位置と大きさを{51,101,653,344}に変える
>     その列見出し高さを18に変える
>   表部品1を初期化終了する
> 終わり
> /*
>   リストビュー1というリストビューを作る
>     その位置と大きさを{0,0,782,491}に変える
>     その表示方法を「詳細」に変える
>     その見出し一覧を{「郵便番号」,「都道府県」,「市町村」,「町名」}に変える
>     その見出し幅を{61,80,307,279}に変える
>     そのドッキング方向を「全体」に変える
> 終わり
> */
> ボタン1がクリックされた時の手順
> データを、取得する
>   終わり
>
>
> データを、取得する時の手順
> /*
>   SQLiteで「CREATE TABLE yubin (
>     ycode1 TEXT,
>     ken TEXT,
>     city TEXT,
>     machi TEXT);」を実行する
> */  
>     ーーデータの取得
>   SQLiteから「SELECT * FROM ubin2 where machi="以下に掲載がない場合"」を取得してデータとする
>   表部品1のデータ表をデータに変える
>     //リストビュー1の詳細一覧を結果に変える
>   終わり
> 終わり

Re: メール送信でエラーが起こると、落ちます。

投稿者:うなぎいぬ 投稿日:2018/01/15(Mon) 23:00:10 No.1959

お世話になっております。

>エラーが起こると、実行しているプログラム自体だけでなくソースプログラムも巻き込んで落ちてしまいます。

この現象につきましてはSQLのエラー発生時にも同様な現象が発生しています。
ご報告まで。

> お世話になっております。
> メール送信でエラーが起こると、実行しているプログラム自体だけでなくソースプログラムも巻き込んで落ちてしまいます。
> エラーコード451でも同じく落ちます。
>
> 例外監視で回避することもできますが、そのままだと送信失敗したときに、プログラム自体が消えてしまうので困ります。
>
> また、送信しようとする文面が一緒でも改行コードや文字コードのせいなのか、エラー451や521が発生する場合があります。
> サーバ名などはきちんと設定していますが、一定の条件で起こるエラーのようです。
>
> 安定してメール送信できる方法はありますでしょうか?
>
> バグなのかなんなのかわからないので、こちらに書かせていただきました。
> 以下、エラーメッセージと動作環境です。
>
> ◆動作環境情報◆
> プロデル 1.5.867
> Windows 10(64)
> メモリ:7.82 GB
>
> (Code = 521)本文の送信に失敗しました。
> 場所 TKMP.Net.SmtpClient.SendMail(IMailWriter mailWriter)
> 場所 Produire.Network.Mail.送信サーバ.  (送信メール )
> 場所 送る(Object , Object[] )
> 場所 Produire.TypeModel.外部手順定義.Call(Object baseObject, Object[] args)
> 場所 Produire.TypeModel.外部手順定義.2(PTypePlugin 0, IProduireClass 1, Object[] 2, 8 3)
> 場所 Produire.TypeModel.PTypePlugin.10(IProduireValue 0, ICallSite 1, 15 2)
> 場所 Produire.Model.StaticCallExpression.Invoke(IPrototypeExpression protoExpr, 8 scope)
> 場所 Produire.ScriptEngine.44(IStatement 0, 8 1)
> 場所 Produire.RuntimeModel.8.22(StatementCollection 0)
> 場所 Produire.ScriptEngine.46(IStatement 0, 8 1)
> 場所 Produire.RuntimeModel.8.22(StatementCollection 0)
> 場所 Produire.RuntimeModel.11.1(IProduireValue[] 0)
> 場所 Produire.Model.Construct.10(IProduireValue 0, ICallSite 1, 15 2)
> 場所 Produire.Model.StaticCallExpression.Invoke(IPrototypeExpression protoExpr, 8 scope)
> 場所 Produire.ScriptEngine.44(IStatement 0, 8 1)
> 場所 Produire.RuntimeModel.8.22(StatementCollection 0)
> 場所 Produire.ScriptEngine.34(IStatement 0, 8 1)
> 場所 Produire.RuntimeModel.8.22(StatementCollection 0)
> 場所 Produire.ScriptEngine.34(IStatement 0, 8 1)
> 場所 Produire.RuntimeModel.8.22(StatementCollection 0)
> 場所 Produire.ScriptEngine.34(IStatement 0, 8 1)
> 場所 Produire.RuntimeModel.8.22(StatementCollection 0)
> 場所 Produire.12.7(10 0)
> 場所 Produire.11.5(Object 0, EventArgs 1)
> 場所 Produire.WinControl.ウィンドウ部品.2(Object 0, EventArgs 1)
> 場所 System.Windows.Forms.Control.OnClick(EventArgs e)
> 場所 System.Windows.Forms.Button.OnClick(EventArgs e)
> 場所 System.Windows.Forms.Button.WndProc(Message& m)
> 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
> 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
> 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
>
> コレクションが変更されました。列挙操作は実行されない可能性があります。
> 場所 System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()
> 場所 System.Windows.Forms.Application.ExitInternal()
> 場所 System.Windows.Forms.Application.Exit(CancelEventArgs e)
> 場所 Produire.Designer.    . (Object , ThreadExceptionEventArgs  )
> 場所 System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
> 場所 System.Windows.Forms.Control.WndProcException(Exception e)
> 場所 System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
> 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
> 場所 System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
> 場所 System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
> 場所 System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
> 場所 System.Windows.Forms.Control.WmCommand(Message& m)
> 場所 System.Windows.Forms.Control.WndProc(Message& m)
> 場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
> 場所 System.Windows.Forms.Form.WndProc(Message& m)
> 場所 Produire.WinControl.ウィンドウ.WndProc(Message& m)
> 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
> 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
> 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

SQLでselectした後のデータ表示

投稿者:うなぎいぬ 投稿日:2018/01/15(Mon) 22:53:09 No.1958

度々の質問で申し訳ありません
昨日質問した場所で停滞していても仕方が無いので読み取りのプログラムを作り始めました。
そこで、次のようなエラーをクリアできずに悩んでおります。
SQLiteでselect文を実施した結果を一覧に指定のですが下記のようなエラーが発生します。
配列ではないとの事なのでリストビューなどでも試してみたのですが
方法に問題があるらしく報告で出力できる結果を表にして得ることが出来ませんでした。
やり方をお教えください。

配列をデータ表へ変換できませんでした。
[エラー番号900] [メイン画面.ボタン1がクリックされた時:50行目]」

添付画像は「報告でselectされた結果」のデータ

//
// 郵便番号SQLで検索・画面
//
// プロデルからSQLiteデータベースを操作する例 //
//SQLiteを利用するには、System.Data.SQLite.dllが必要です
「Produire.Data.SQLite.dll」を利用する

SQLiteというSQLiteデータベースを作る
SQLiteのデータソースを、「test01.db」に変える
SQLiteへ接続する

データというデータ表を作る

メイン画面を表示する

待機する
  
メイン画面とは
  ウィンドウを継承する
  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
    //表部品1のデータ表をデータに変える
  終わり
  初期化する手順
  ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
  この内部領域大きさを{782,491}に変える
  この内容を「メイン画面」に変える
  このドラッグドロップを○に変える
  ボタン1というボタンを作る
    その位置と大きさを{58,42,75,33}に変える
    その内容を「ボタン1」に変える
    その移動順を1に変える
  表部品1という表部品を作る
  表部品1を初期化開始する
    その位置と大きさを{51,101,653,344}に変える
    その列見出し高さを18に変える
  表部品1を初期化終了する
終わり
/*
  リストビュー1というリストビューを作る
    その位置と大きさを{0,0,782,491}に変える
    その表示方法を「詳細」に変える
    その見出し一覧を{「郵便番号」,「都道府県」,「市町村」,「町名」}に変える
    その見出し幅を{61,80,307,279}に変える
    そのドッキング方向を「全体」に変える
終わり
*/
ボタン1がクリックされた時の手順
データを、取得する
  終わり


データを、取得する時の手順
/*
  SQLiteで「CREATE TABLE yubin (
    ycode1 TEXT,
    ken TEXT,
    city TEXT,
    machi TEXT);」を実行する
*/  
    ーーデータの取得
  SQLiteから「SELECT * FROM ubin2 where machi="以下に掲載がない場合"」を取得してデータとする
  表部品1のデータ表をデータに変える
    //リストビュー1の詳細一覧を結果に変える
  終わり
終わり

メール送信でエラーが起こると、落ちます。

投稿者:ヒロ 投稿日:2018/01/15(Mon) 21:18:28 No.1957

お世話になっております。
メール送信でエラーが起こると、実行しているプログラム自体だけでなくソースプログラムも巻き込んで落ちてしまいます。
エラーコード451でも同じく落ちます。

例外監視で回避することもできますが、そのままだと送信失敗したときに、プログラム自体が消えてしまうので困ります。

また、送信しようとする文面が一緒でも改行コードや文字コードのせいなのか、エラー451や521が発生する場合があります。
サーバ名などはきちんと設定していますが、一定の条件で起こるエラーのようです。

安定してメール送信できる方法はありますでしょうか?

バグなのかなんなのかわからないので、こちらに書かせていただきました。
以下、エラーメッセージと動作環境です。

◆動作環境情報◆
プロデル 1.5.867
Windows 10(64)
メモリ:7.82 GB

(Code = 521)本文の送信に失敗しました。
場所 TKMP.Net.SmtpClient.SendMail(IMailWriter mailWriter)
場所 Produire.Network.Mail.送信サーバ.  (送信メール )
場所 送る(Object , Object[] )
場所 Produire.TypeModel.外部手順定義.Call(Object baseObject, Object[] args)
場所 Produire.TypeModel.外部手順定義.2(PTypePlugin 0, IProduireClass 1, Object[] 2, 8 3)
場所 Produire.TypeModel.PTypePlugin.10(IProduireValue 0, ICallSite 1, 15 2)
場所 Produire.Model.StaticCallExpression.Invoke(IPrototypeExpression protoExpr, 8 scope)
場所 Produire.ScriptEngine.44(IStatement 0, 8 1)
場所 Produire.RuntimeModel.8.22(StatementCollection 0)
場所 Produire.ScriptEngine.46(IStatement 0, 8 1)
場所 Produire.RuntimeModel.8.22(StatementCollection 0)
場所 Produire.RuntimeModel.11.1(IProduireValue[] 0)
場所 Produire.Model.Construct.10(IProduireValue 0, ICallSite 1, 15 2)
場所 Produire.Model.StaticCallExpression.Invoke(IPrototypeExpression protoExpr, 8 scope)
場所 Produire.ScriptEngine.44(IStatement 0, 8 1)
場所 Produire.RuntimeModel.8.22(StatementCollection 0)
場所 Produire.ScriptEngine.34(IStatement 0, 8 1)
場所 Produire.RuntimeModel.8.22(StatementCollection 0)
場所 Produire.ScriptEngine.34(IStatement 0, 8 1)
場所 Produire.RuntimeModel.8.22(StatementCollection 0)
場所 Produire.ScriptEngine.34(IStatement 0, 8 1)
場所 Produire.RuntimeModel.8.22(StatementCollection 0)
場所 Produire.12.7(10 0)
場所 Produire.11.5(Object 0, EventArgs 1)
場所 Produire.WinControl.ウィンドウ部品.2(Object 0, EventArgs 1)
場所 System.Windows.Forms.Control.OnClick(EventArgs e)
場所 System.Windows.Forms.Button.OnClick(EventArgs e)
場所 System.Windows.Forms.Button.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

コレクションが変更されました。列挙操作は実行されない可能性があります。
場所 System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()
場所 System.Windows.Forms.Application.ExitInternal()
場所 System.Windows.Forms.Application.Exit(CancelEventArgs e)
場所 Produire.Designer.    . (Object , ThreadExceptionEventArgs  )
場所 System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
場所 System.Windows.Forms.Control.WndProcException(Exception e)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
場所 System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
場所 System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
場所 System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
場所 System.Windows.Forms.Control.WmCommand(Message& m)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
場所 System.Windows.Forms.Form.WndProc(Message& m)
場所 Produire.WinControl.ウィンドウ.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

▲ページの先頭へ

- WebForum -