__group__ ticket summary component version type owner status created _changetime _description _reporter 76 Usingステートメントでリソース管理を可能にする Compiler タスク イグトランス (egtra) assigned 2007-03-08T22:55:26+09:00 2008-10-19T01:39:14+09:00 "オブジェクトの開放がGCの仕事になったので、別途リソース管理のためのステートメントとしてUsingを導入する。 '''コード例:''' {{{ Using file = File.Create( ""c:\test.txt"" ) ' 処理 ... End Using }}} " dai 173 関数ポインタが正常に呼び出せない Compiler バグ dai assigned 2008-07-05T15:24:10+09:00 2008-07-05T15:59:53+09:00 "{{{ Function MyFunc1() As Long return 1 End Function Dim lpFunc = AddressOf(MyFunc1) Dim i As Long Dim buf[100] As SByte i=lpFunc() wsprintf(buf,""%d"",i) MessageBox(0,buf,""test"",MB_OK) }}} 戻り値がおかしい。" dai 174 関数ポインタを呼び出そうとするとコンパイルエラー Compiler バグ dai assigned 2008-07-05T15:25:58+09:00 2008-07-05T16:15:16+09:00 "{{{ Sub MySub1(arg As String) End Sub Dim lpSub = AddressOf(MySub1) lpSub(""hello"") }}} {{{ Sub MySub1(arg As String) End Sub Sub MySub1(arg As Double) End Sub Dim lpSub = AddressOf(MySub1) lpSub(""hello"") lpSub(1.4) }}} これらのコードをコンパイルすると、「文法が間違っています。」エラーになってしまう。" dai 14 Controlの実装 (ActiveBasic.Windows.UI) ablib タスク イグトランス (egtra) assigned 2006-12-26T17:26:01+09:00 2008-10-18T13:04:13+09:00 Form クラスの基底であるControl クラスを実装する。当面ユーザ補助、イベントなど一部の機能は実装を見送る。http://dev.activebasic.com/dev_wiki/index.php/Control_%E3%82%AF%E3%83%A9%E3%82%B9 イグトランス (egtra) 89 GCをDLLコンパイルに対応させる Compiler タスク dai new 2007-03-13T20:04:27+09:00 2007-03-13T20:04:27+09:00 "β15現在のGCはDLL作成のことを考えていない。DLL内で生成されるオブジェクトはどこのGCが管理するのか、または呼び出し元モジュールがGCを搭載していないとき、DLL自らがGCの処理を発動させければならない。 この辺りの制御の方法を明確にし、実装に移る" dai 190 型パラメータを指定せずにジェネリッククラスをNewしても、エラーにならない。 Compiler タスク dai new 2008-08-14T00:50:33+09:00 2008-08-14T00:50:33+09:00 "問題のコードを下記に示す。 {{{ ' エラーにならない Dim list1 = New System.Collections.Generic.List ' エラーになる Dim list2 As System.Collections.Generic.List }}}" dai 225 IDEのコード生成でWindows.UIを使用するようにする IDE タスク イグトランス (egtra) new 2008-10-23T00:35:21+09:00 2008-10-23T00:35:21+09:00 RADツールで作ったウィンドウに対して、ActiveBasic.Windows.UI以下を使ったコードを生成できるようにする。 イグトランス (egtra) 238 FormsにTimerを追加する ablib タスク NoWest new 2009-01-19T09:10:27+09:00 2009-01-19T18:15:34+09:00 "タイマーイベントが使えるといろいろとFormで遊べるようになるので早めに追加する 機能的にSetTimerとKillTimerでは難しいと思われる Timerクラスの実装には是非ともコールバック関数を使いたいが、 SetTimer関数はコールバックにユーザーデータを渡せないようです。 そこでウィンドウハンドルにオブジェクトポインタをこっそり渡す方法を考えましたが どうやらウィンドウハンドルがNULLではない場合、 指定されたウィンドウハンドルが所属するスレッドにメッセージがポストされ そこからコールバック関数が呼び出されるようです。 SetTimerではそのあたりの実装がやりにくいのでtimeSetEventでの実装を試みています。 " NoWest 191 外部で生成されたスレッドでの例外処理に対応する ablib バグ イグトランス (egtra) new 2008-08-14T00:54:55+09:00 2008-08-14T00:54:55+09:00 現在、プロセス起動と同時に開始されたスレッドとThreadクラスで作られたスレッド以外では、スレッド情報の初期化が行われません。このため、例外処理が使用できないなどの弊害が起こっています。これに対処するため、例外処理周り(必要ならGCの方も)の修正を行います。 イグトランス (egtra) 195 テンプレート展開されたクラスをインターフェイスにキャストできない Compiler バグ dai new 2008-08-16T06:10:26+09:00 2008-08-16T06:11:07+09:00 "{{{ Function GetHoge () As System.Collections.Generic.IList GetHoge = New System.Collections.Generic.List End Function }}} 例えば、上記のコードがコンパイルエラーとなる。" dai 44 レジストリ書き込みに失敗したときにメッセージを表示する IDE タスク dai new 2007-02-01T03:47:08+09:00 2007-10-05T02:40:47+09:00 "VistaのUACが有効なときはレジストリへの書き込みができず、関連付けが正常に行われない。 ユーザが混乱する恐れがあるので、きちんとメッセージを表示する必要がある。" dai 64 BinaryWriterクラスの実装(System.IO) ablib タスク NoWest assigned 2007-02-23T02:07:22+09:00 2008-03-17T16:52:21+09:00 NoWest 65 BinaryReaderクラスの実装(System.IO) ablib タスク NoWest assigned 2007-02-23T02:07:46+09:00 2008-02-27T01:38:52+09:00 NoWest 81 com.VBObjectクラスの作成 ablib タスク イグトランス (egtra) assigned 2007-03-10T23:01:22+09:00 2007-03-25T13:38:57+09:00 これはIDispatchのラッパークラスです。VBでObject型と呼ばれているものに近いです。クラスの詳細はhttp://dev.activebasic.com/dev_wiki/index.php/VBObject_%E3%82%AF%E3%83%A9%E3%82%B9へ。 イグトランス (egtra) 117 符号無整数型に対してMod演算子が正しく機能しない Compiler タスク dai new 2007-06-04T21:09:57+09:00 2007-06-04T21:09:57+09:00 "次のコードでは、2-3行目が正しい値、最終行が-2、残りは-1が出力されます。符号無整数型をModの演算対象にした場合、対応する符号付整数型で演算されているのではないでしょうか。DWord→Int64のようにより大きい符号付整数型へ型変換すると問題を回避できます。 {{{ #prompt Dim dw = &hffffffff As DWord Print dw Mod 10 Print dw As Long Mod 10 Print dw As QWord Mod 10 Print dw As Int64 Mod 10 Print dw As Word Mod 10 Print dw As Byte Mod 10 Dim qw = &hffffffffffffffff As QWord Print qw Mod 10 dw = &hfffffffe Print dw Mod 10 '-2 Sleep(-1) }}}" イグトランス (egtra) 122 定数マクロを名前空間に対応させる Compiler タスク dai new 2007-07-11T02:49:47+09:00 2007-07-11T02:49:47+09:00 dai 135 x64版のInterlockedIncrement関数の類を整備する Compiler タスク dai new 2007-09-08T16:04:45+09:00 2007-09-08T16:04:45+09:00 "{{{ Declare Function InterlockedIncrement Lib ""kernel32"" (ByRef lpAddend As Long) As Long Declare Function InterlockedDecrement Lib ""kernel32"" (ByRef lpAddend As Long) As Long Declare Function InterlockedExchange Lib ""kernel32"" (ByRef Target As Long, Value As Long) As Long Declare Function InterlockedCompareExchange Lib ""kernel32"" (ByRef Destination As Long, Exchange As Long, Comperand As Long) As Long Declare Function InterlockedExchangeAdd Lib ""kernel32"" (ByRef Addend As Long, Value As Long) As Long Declare Function InterlockedCompareExchangePointer Lib ""kernel32"" Alias ""InterlockedCompareExchange"" (ByRef Destination As VoidPtr, Exchange As VoidPtr, Comperand As VoidPtr) As VoidPtr Declare Function InterlockedExchangePointer Lib ""kernel32"" Alias ""InterlockedExchange"" (ByRef Target As VoidPtr, Value As VoidPtr) As VoidPtr }}} これらの関数がKernel32に含まれなくなっているので、別途ネイティブコードで生成可能にする。" dai 181 #requireをワイルドカード指定できるようにする。 ablib タスク dai new 2008-07-19T12:52:05+09:00 2008-07-19T12:59:37+09:00 "例えば、今までこう書いていたところを、 {{{ #require ""./System/Xml/XmlAttribute.ab"" #require ""./System/Xml/XmlCharacterData.ab"" #require ""./System/Xml/XmlDeclaration.ab"" #require ""./System/Xml/XmlDocument.ab"" #require ""./System/Xml/XmlElement.ab"" #require ""./System/Xml/XmlLinkedNode.ab"" #require ""./System/Xml/XmlNode.ab"" #require ""./System/Xml/XmlText.ab"" }}} こう書けるようにする。 {{{ #require ""./System/Xml/*.ab"" }}}" dai 194 継承時の型パラメータ指定のチェックを厳密に行うようにする Compiler タスク dai new 2008-08-15T23:54:31+09:00 2008-08-15T23:54:31+09:00 "{{{ Interface I End Interface Interface J Inherits I End Interface Class A End Class Class B Inherits A End Class }}} 上記のコードはエラーにすべし。" dai 208 Dnsクラスの実装 ablib タスク OverTaker new 2008-10-04T13:08:38+09:00 2008-10-04T13:08:38+09:00 OverTaker 209 Socketクラスの実装(System.Net.Socket) ablib タスク OverTaker new 2008-10-04T13:09:28+09:00 2008-10-04T13:09:28+09:00 OverTaker 210 IPHostEntryクラスの実装 ablib タスク OverTaker new 2008-10-06T09:57:16+09:00 2008-10-06T09:57:16+09:00 OverTaker 212 GroupBoxの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:06:00+09:00 2008-10-18T13:06:00+09:00 AcitveBasic.Windows.UIのグループボックス イグトランス (egtra) 213 ラジオボタンの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:06:51+09:00 2008-10-18T13:06:51+09:00 AcitveBasic.Windows.UIのラジオボタン イグトランス (egtra) 214 コンボボックスの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:08:16+09:00 2008-10-18T13:08:16+09:00 AcitveBasic.Windows.UIのコンボボックス イグトランス (egtra) 215 アップダウンコントロールの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:08:55+09:00 2008-10-18T13:08:55+09:00 AcitveBasic.Windows.UIのアップダウンコントロール イグトランス (egtra) 216 トラックバーの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:09:37+09:00 2008-10-18T13:09:37+09:00 AcitveBasic.Windows.UIのトラックバー イグトランス (egtra) 217 プログレスバーの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:10:17+09:00 2008-10-18T13:10:17+09:00 AcitveBasic.Windows.UIのプログレスバー イグトランス (egtra) 218 スクロールバー(コントロール)の実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:10:59+09:00 2008-10-18T13:10:59+09:00 AcitveBasic.Windows.UIのスクロールバー イグトランス (egtra) 219 リストビューの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:11:35+09:00 2008-10-18T13:11:35+09:00 AcitveBasic.Windows.UIのリストビュー イグトランス (egtra) 220 ツリービューの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:12:44+09:00 2008-10-18T13:12:44+09:00 AcitveBasic.Windows.UIの イグトランス (egtra) 221 イメージボックスの実装 ablib タスク イグトランス (egtra) new 2008-10-18T13:13:25+09:00 2008-10-18T13:13:25+09:00 AcitveBasic.Windows.UIのイメージボックス イグトランス (egtra) 223 NetworkStreamクラスの実装 ablib タスク dai new 2008-10-18T18:23:35+09:00 2008-10-18T18:23:35+09:00 OverTaker 226 モジュールのベースアドレスを指定できるようにする Compiler タスク イグトランス (egtra) new 2008-10-26T19:20:19+09:00 2008-10-26T19:20:19+09:00 現在、ベースアドレスは指定できないが、将来的にはコンパイラオプションか何かで指定できるようにしたい。 イグトランス (egtra) 232 UTF16Encodingクラスの実装 ablib タスク イグトランス (egtra) new 2008-11-09T14:25:14+09:00 2008-11-09T14:25:14+09:00 UTF-16でエンコーディングを行うクラスを実装します。 イグトランス (egtra) 233 IMultiLanguageベースのエンコーディングクラスを実装する ablib タスク イグトランス (egtra) new 2008-11-09T14:32:49+09:00 2008-11-09T14:32:49+09:00 #227を受けて実装します。これにより、EUC-JP (CP51932)やISO-2022-JP (CP50220)が使用可能になるはずです。 イグトランス (egtra) 237 組込型の要素でのForeachを可能にする Compiler タスク イグトランス (egtra) assigned 2009-01-10T00:46:21+09:00 2009-01-10T00:46:31+09:00 内部的に、Foreachされる変数(Foreach e In xのe)がNothingで初期化されているため、これが組込型になる場合、エラーが発生するでしょう。これに対処し、要素が組込型でもForeachできるようにします。 イグトランス (egtra) 242 画像関係の整備 (System.Drawing) ablib タスク イグトランス (egtra) new 2009-04-02T21:58:17+09:00 2009-04-02T21:58:17+09:00 Image/Bitmap/Metafileなどのクラスの作成。BMP/PNG/JPEG/GIFでの保存もできるようにしたい。 イグトランス (egtra) 249 エディタでTabキーを押すと強制終了する場合がある IDE タスク イグトランス (egtra) new 2011-06-04T22:34:51+09:00 2011-06-04T22:34:51+09:00 http://www.activebasic.com/forum/viewtopic.php?t=2501 イグトランス (egtra) 197 ファイナライザが親クラスを辿って呼ばれない ablib バグ イグトランス (egtra) new 2008-08-21T00:02:04+09:00 2008-08-21T00:02:04+09:00 "{{{ #console Class Hoge Sub ~Hoge() Print ""~Hoge()"" End Sub End Class Class Foo Sub ~Foo() Print ""~Foo()"" End Sub End Class Dim o = Nothing As Object o = New Foo o = Nothing System.GC.Collect() Sleep(-1) }}} このプログラムの出力は次のようになることを期待した。 {{{ ~Foo() ~Hoge() }}} しかし、実際にはこうだった。 {{{ ~Foo() }}} 誰か直しちゃってください。" イグトランス (egtra) 198 整数から列挙体への変換ができない Compiler バグ dai new 2008-08-21T10:14:33+09:00 2008-08-21T10:14:33+09:00 "次のプログラムでは、e = E.Bとなることを期待しましたが、そうなりません。デバッガで見る限り、eのオブジェクト参照そのものが1になっているようです。 {{{ Enum E A = 0 B = 1 End Enum Dim dw = 1 As DWord Dim e = dw As E Debug }}}" イグトランス (egtra) 205 参照型のグローバル変数に定義前で代入するとうまくいかない。 Compiler バグ dai new 2008-10-02T01:39:05+09:00 2008-10-02T01:39:05+09:00 "期待どおりになる例(整数型) {{{ #console Sub f() x = 42 End Sub f() Dim x = 0 As Long Print x }}} 期待どおりになる例(Object型) {{{ #console Sub f() x = New Object End Sub Dim x = Nothing As Object f() Print ObjPtr(x) As ULONG_PTR 'アドレスらしき意味不明な値 }}} 期待どおりにならない例(Object型) {{{ #console Sub f() x = New Object End Sub f() Dim x = Nothing As Object Print ObjPtr(x) As ULONG_PTR '0 }}} 最後の例でも、2つ目と同様にアドレスが出力されると期待しましたが、そうではありませんでした(初期化子の値の0が出力されます)。 ようするにこれは、初期化をいつ行うかということが明確でないという問題と考えます。言語の仕様としてどうあるべきかを決定しないといけないと思います。" イグトランス (egtra) 211 メンバ関数名とプロパティ名が同一のときに起こる不具合 Compiler バグ dai new 2008-10-08T22:04:23+09:00 2008-10-08T22:04:35+09:00 "メンバ関数名とプロパティ名を同一にしてgetterだけ宣言していると、メンバ変数に値が代入できなくなる。 {{{ #console Dim c = New ClassA(20) System.Console.WriteLine(c.Value) System.Console.ReadLine() Class ClassA Value As Long Public Sub ClassA(v As Long) Value = v End Sub Function Value() As Long Return Value End Function End Class }}} " OverTaker 224 出力先の空き容量が足りなかったらコンパイルエラーを出すようにする Compiler バグ イグトランス (egtra) new 2008-10-21T01:40:21+09:00 2008-10-21T01:40:21+09:00 現在は、空き容量が足りなくても何も言わず、ディスクが一杯になるまでの中途半端な出力を行う。特に、その状態でデバッグ実行を始めようとすると、一向に何も起こらず不親切。そこで、コンパイラが出力を行う時点でエラーを出すようにする。 イグトランス (egtra) 239 オブジェクト参照からインタフェース参照へキャスト可能にする Compiler バグ イグトランス (egtra) new 2009-02-27T20:10:31+09:00 2009-02-27T20:10:31+09:00 "次のコードがコンパイルできない問題を修正します。 {{{Class Hoge Implements IUnknown Public Function AddRef() As DWord End Function Function Release() As DWord End Function Function QueryInterface(ByRef riid As IID, ByRef pv As Any) As HRESULT End Function End Class Dim o = New Hoge Dim u = o As IUnknown '""Operator As"" は定義されていません。}}}" イグトランス (egtra) 246 Constで文字列の\0以降が切れているおそれがある Compiler バグ イグトランス (egtra) new 2011-06-04T22:11:42+09:00 2011-06-04T22:12:28+09:00 "http://www.activebasic.com/forum/viewtopic.php?p=10884 参照。 再現コード {{{ Const STR = Ex""A\0B"" MessageBox(NULL, STR + 2, """", MB_OK) }}}" イグトランス (egtra) 247 可変個引数の省略が機能しなくなっている Compiler バグ イグトランス (egtra) new 2011-06-04T22:30:49+09:00 2011-06-04T22:34:08+09:00 詳細: http://www.activebasic.com/forum/viewtopic.php?t=2669 イグトランス (egtra) 248 行番号を付けると正常に動作しない問題の調査 Compiler バグ イグトランス (egtra) new 2011-06-04T22:33:37+09:00 2011-06-04T22:33:37+09:00 詳細: http://www.activebasic.com/forum/viewtopic.php?t=1871 イグトランス (egtra) 43 Input #ステートメントでエラー ablib バグ(ケアレスミス) dai new 2007-01-30T02:04:07+09:00 2007-01-30T02:04:07+09:00 "command.sbp(230) - ""Length"" のパラメータ指定が間違っています Input #ステートメントで文字列型に代入すると上記のエラーが出る模様。 Stringクラスのメソッド呼び出しに対応していないので、修正する。" dai 60 Inkey$内部で仮想キーコードの値を元に文字列を構築している ablib バグ(ケアレスミス) dai new 2007-02-18T23:15:35+09:00 2007-02-21T19:28:50+09:00 "prompt.sbpのInkey$では、戻り値となる入力文字を_PromptSys_KeyCharから得ている。 _PromptSys_KeyCharへは、PromptProcでWM_KEYDOWNが来たときにwParamの値をそのまま代入している。 WM_KEYDOWN時のwParamは仮想キーコードであり、これを基に文字列を構築するのは問題だと思われる。 ただし数字とアルファベットの仮想キーコードがASCIIコードと一致しているため、今まで問題とならなかったのだろう。 個人的には、最後にWM_CHARで読み取った文字を返すことにしたら良いと思う。" イグトランス (egtra) 62 インタフェースのメソッドにConstを指定できない Compiler バグ(ケアレスミス) dai new 2007-02-22T17:55:19+09:00 2007-02-22T17:55:19+09:00 "例えば次のようなコードで発生します。 {{{ Interface IFoo Const Sub Method() '文法が間違っています End Interface }}}" イグトランス (egtra) 79 プロンプトウィンドウの入力でバッファオーバーフローが発生する ablib バグ(ケアレスミス) イグトランス (egtra) new 2007-03-10T22:39:00+09:00 2007-03-10T22:39:00+09:00 行毎に文字数を固定してあり、しかも文字数を超えての書き込みを阻止していない(はずの)ためバッファオーバーフローが発生します。現在_System_mallocを使っているので、必要に応じて_System_reallocでバッファを延ばすことで解決させようと思います。 イグトランス (egtra) 101 非静的メソッドと静的メソッドで多重定義できない Compiler バグ(ケアレスミス) dai new 2007-04-06T18:38:37+09:00 2009-07-31T15:09:00+09:00 "{{{ Class Test Sub SomeMethod() End Sub Static Sub SomeMethod() '""SomeMethod"" はすでに定義されています。 End Sub End Class }}}" イグトランス (egtra) 145 Blittableクラス型の変数を作れない Compiler バグ(ケアレスミス) dai new 2007-11-19T23:09:30+09:00 2007-11-19T23:09:30+09:00 "次の3例から、System.Int32型の変数を作ろうとしてもLong型になってしまうことが推測される。ここはSystem.Int32型の変数として存在できるようにして欲しい。 {{{ Sub Proc(o As Object) End Sub Dim i As System.Int32(100) Proc(i) '""Proc""の第1パラメータが、LongからSystem.Objectに変換できません。 }}} {{{ Sub Proc(o As Object) End Sub Dim i = New System.Int32(100) '[警告] *System.Int32からLongに強制変換されています。 Proc(i) '""Proc""の第1パラメータが、LongからSystem.Objectに変換できません。 }}} {{{ Sub Proc(o As System.Int32) '[警告] ""Proc""の第1パラメータが、*System.Int32からLongに強制変換されています。 End Sub Proc(New System.Int32(100)) }}} 次のようにObject型とするとうまくいく。 {{{ Sub Proc(o As Object) End Sub Dim i = Nothing As Object i = New System.Int32(100) Proc(i) }}}" イグトランス (egtra) 146 エラーメッセージで表示される当該ファイル及び行と実際のそれとが異なる Compiler バグ(ケアレスミス) dai new 2007-11-20T00:09:44+09:00 2007-11-20T00:09:44+09:00 "@385でStringBuilder.ab、385行目、replaceCoreメソッド内、ArgumentExceptionを誤ってArgument'''l'''Exceptionと書いてライブラリをコンパイルしたところ、「basic.sbp(17) - ""ArgumentlException"" 無効な識別子です」となってしまった。 使用コンパイラは、現時点での最新、@382の32ビット版。Debug/Release双方で発生。" イグトランス (egtra) 155 _System_CGarbageCollection.__realloc内でTryを使うと落ちる ablib バグ(ケアレスミス) イグトランス (egtra) new 2008-01-21T19:16:52+09:00 2008-01-21T19:16:52+09:00 [http://www.activebasic.com/forum/viewtopic.php?t=1934#9410 ライブラリ開発/原因不明のバグ報告/realloc内でのTryスコープ]の原因調査。可能なら修正まで。 イグトランス (egtra) 163 基本型とEnumの真偽が判定できないことがある Compiler バグ(ケアレスミス) dai new 2008-03-12T23:01:58+09:00 2008-03-12T23:01:58+09:00 "左側に基本型、右側にタイプセーフなEnumを置いた場合のみ、真偽が判定されない。 {{{ #console Enum E x = 1 End Enum Dim x = 1 As Long If x = E.x Then 'おかしいところ Print ""true"" Else Print ""false"" End If If E.x = x Then '正常 Print ""true"" Else Print ""false"" End If Console.ReadLine() }}} " OverTaker 178 デリゲートに関数へのポインタを追加できない Compiler バグ(ケアレスミス) イグトランス (egtra) new 2008-07-16T02:19:58+09:00 2008-07-16T02:19:58+09:00 "#149の関連として、次のコードがコンパイル・実行できるようになってほしいです。 {{{ Delegate Sub Callback1() Sub P1() End Sub Dim pfn As *Sub() pfn = AddressOf(P1) Dim c = New Callback1(pfn) c += pfn }}} 試しに、ab5.0\system\templates\delegate.tabに次のコンストラクタを挿入して試してみましたが、メンバ関数をAddressOfしている箇所でコンパイルエラーとなってしまいました。それに、これではFunctionに対応できていません。 {{{ Sub #name#(pfn As *Sub(#params#)) simpleDelegates.Add( New System._SimpleDelegate( pfn As VoidPtr ) ) End Sub }}} なお、上のコードの*Sub(#params#)をVoidPtrにすると、New PaintDCEventHandler(p)として関数ポインタからのデリゲートの生成に成功しましたが、これだと型チェックがないので、正式版でこれを採用したくはありません。" イグトランス (egtra) 111 Declareで引数・戻り値にタイプセーフ列挙型・クラス・インタフェースを使用可能にする Compiler バグ(未実装) dai new 2007-05-07T01:22:10+09:00 2007-05-07T01:22:10+09:00 詳しくはhttp://www.activebasic.com/forum/viewtopic.php?p=8475を参照してください イグトランス (egtra) 2 IDEのMDIウィンドウを汎用的なものへ変更。 IDE 機能拡張 dai new 2006-12-23T02:26:44+09:00 2007-10-05T02:39:44+09:00 現状のIDEが搭載するコンパイルビューやデバッグビューはGUI固定で汎用性が乏しい。ドッキングまたはフローティングが可能なタブ型コントロールを用意し、各種画面要素を配置しなおす。 dai 3 プロジェクト内の全文検索を可能にする。 IDE 機能拡張 dai new 2006-12-23T15:11:16+09:00 2007-10-05T02:39:57+09:00 dai 4 関数またはメソッドの呼び出し元を検索できるようにする。 IDE 機能拡張 dai new 2006-12-23T15:17:11+09:00 2007-10-05T02:40:04+09:00 dai 5 変数の参照元を検索できるようにする。 IDE 機能拡張 dai new 2006-12-23T15:23:02+09:00 2007-10-05T02:40:18+09:00 dai 6 識別子の定義を検索できるようにする。 IDE 機能拡張 dai new 2006-12-23T15:35:08+09:00 2007-10-05T02:40:27+09:00 識別子(型、変数、関数、メンバ、メソッドなど…)の定義を検索できるようにする。 dai 13 プロジェクト内ファイルのインクルードの順序を指定できるようにする。 IDE 機能拡張 dai new 2006-12-25T15:11:45+09:00 2007-10-05T02:40:34+09:00 プロジェクト内ファイルのインクルードの順序を指定できるようにする。 dai 204 デバッガでToStringの内容を表示させる Debugger 機能拡張 イグトランス (egtra) new 2008-09-28T21:00:59+09:00 2008-09-28T21:00:59+09:00 クラスの場合、メンバ変数だけ見せられるよりも分かりやすいと思います。 イグトランス (egtra) 140 エディタにCtrl+Gで指定行にジャンプする機能がほしい IDE 要望 dai new 2007-11-11T18:20:31+09:00 2007-11-11T18:20:31+09:00 "Visual StudioをはじめとしたIDEに存在する便利な機能。 報告されたコンパイルエラーを見てジャンプするときなどに役立つ。 ビルド結果をダブルクリックするのが面倒なときにはおすすめだと思う。" OKUMURA Yoshio 54 ショートサーキット演算子(AndAlso、OrElse)を追加する Compiler タスク dai new 2007-02-12T20:01:34+09:00 2007-03-13T04:40:07+09:00 dai 59 SoundPlayerクラスの実装(System.Media) ablib タスク NoWest new 2007-02-18T21:25:51+09:00 2007-02-18T21:25:51+09:00 "個人的に必要なだけで需要がどれだけあるかは未知数ですが、 wavファイルくらいは再生できないと芸がないでしょうね。 DirectSound使えってな突っ込みもありそうですが、アレはアレで面倒なので " NoWest 123 objidl.sbpの実装 ablib タスク イグトランス (egtra) assigned 2007-07-27T15:22:52+09:00 2007-07-27T15:22:59+09:00 objidl.h/idlは、COMの根底に関わるインタフェースが多数宣言されており、COMの利用に必要不可欠。それをABのヘッダへ移植する。 イグトランス (egtra) 124 oleidl.abの実装 ablib タスク イグトランス (egtra) assigned 2007-07-27T15:23:34+09:00 2007-07-27T15:23:39+09:00 oleidl.h/idlは、OLEに関わるインタフェースが多数宣言されており、OLEの利用に必要不可欠。それをABのヘッダへ移植する。 イグトランス (egtra) 125 exdisp.abの実装 ablib タスク イグトランス (egtra) assigned 2007-07-27T15:24:58+09:00 2007-07-27T15:25:03+09:00 exdisp.h/idlは、シェルやブラウザコントロールに関わるインタフェースが多数宣言されており、それらの利用に必要不可欠。それをABのヘッダへ移植する。 イグトランス (egtra) 156 Deleteを明示的に行うとデストラクタが2回呼ばれてしまう ablib タスク イグトランス (egtra) new 2008-01-22T15:38:31+09:00 2008-01-22T15:40:48+09:00 "次のコードで、~Hoge()が2回呼ばれることから明らか。コメントアウトしたポインタ構文では1回しか呼ばれない模様。 {{{ #console Class Hoge Sub ~Hoge() Print ""~Hoge()"" End Sub End Class Dim h = New Hoge Delete ObjPtr(h) h = Nothing /* Dim h As *Hoge h = New Hoge Delete h */ Dim i As Long For i = 0 To 10 GC_malloc(4 * 1024 * 1024) Next Sleep(5000) }}} " イグトランス (egtra) 236 水平スクロールメッセージに対応する IDE タスク イグトランス (egtra) new 2008-12-27T18:13:36+09:00 2008-12-27T18:13:36+09:00 Vistaで追加されたWM_MOUSE'''__H__'''WHEELへテキストエディタを対応させます。 イグトランス (egtra) 193 abdev.exeのタブをDPIの変更に追従させる IDE バグ dai new 2008-08-15T17:56:17+09:00 2008-08-15T17:56:17+09:00 "120DPI環境でabdev.exeを使用すると、次の問題に気付きました。可能なものはDPIの変化に対応させたいです。 * ツールバーの大きさが変化しない。 * タブの大きさが変化しない。 * オプションのダイアログボックスで一部の文言の右側が欠ける。 " イグトランス (egtra) 199 (Interface)-Abstract-Overrideという構造でメソッドの上書きができない Compiler バグ dai new 2008-08-21T13:11:28+09:00 2008-08-21T13:11:28+09:00 "次のコードが「未解決の仮想関数が存在する」と言われてコンパイルできません。AbstractをVirtualに代えるとコンパイルできます。 {{{ Interface I Sub proc() End Interface Class B Implements I Public Abstract Sub proc() ' Virtual Sub proc() ' End Sub End Class Class D Inherits B Public Override Sub proc() End Sub End Class Dim d = New D }}}" イグトランス (egtra) 150 エディタをCtrl+Delによる行末までの削除に対応させる IDE バグ(未実装) イグトランス (egtra) new 2007-12-06T19:24:04+09:00 2008-12-14T16:05:02+09:00 Windowsエディトコントロールでは、Ctrl+Delが現在カーソルがある位置から行末までの文字を削除するというショートカットキーになっている。現在のAB5のエディタはこれに対応していないので、実装してほしい。 イグトランス (egtra) 9 共用体を実装する。 Compiler 機能拡張 dai new 2006-12-23T16:24:23+09:00 2007-03-25T05:54:38+09:00 "共用体を実装する。下記URLに記載してある仕様にをベースに実装する。 http://dev.activebasic.com/dev_wiki/index.php/%E5%85%B1%E7%94%A8%E4%BD%93" dai 10 ヒアドキュメントを実装する。 Compiler 機能拡張 dai new 2006-12-23T16:25:24+09:00 2006-12-23T16:25:24+09:00 "ヒアドキュメントを実装する。下記URLに記載してある仕様にをベースに実装する。 http://dev.activebasic.com/dev_wiki/index.php/%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88" dai 33 Breakステートメントを追加する。 Compiler 機能拡張 dai new 2007-01-14T05:30:39+09:00 2007-01-14T05:30:39+09:00 "・For[[BR]] ・While[[BR]] ・Do[[BR]] ・Select[[BR]] [[BR]] 今まではExit For、Exit Whileなど、ステートメントに応じてスコープ抜け出し記述方法が異なっており、ループ形式の変更に伴うコード修正が生じてしまうというデメリットを含んでいた。そこで、汎用的に利用できるBreakステートメント、即ちループ系のスコープから抜け出す処理を提供するステートメントを追加する。" dai 196 ThreadPoolの実装をやり直す ablib 機能拡張 イグトランス (egtra) new 2008-08-20T03:29:08+09:00 2008-08-20T03:29:08+09:00 現在のThreadPoolは、1スレッドしか生成せず満足とは言えない実装です。複数スレッドを名前通り「プール」するようにしたいです。どなたかやる気のある人、お願いします。 イグトランス (egtra) 34 グローバル関数とクラスメソッドのオーバーロード ablib 要望 dai new 2007-01-14T23:37:16+09:00 2007-03-14T15:39:19+09:00 http://www.activebasic.com/forum/viewtopic.php?p=7534#7534 OverTaker 74 キーワード入力時のスタイル統一 IDE 要望 dai new 2007-03-07T00:13:15+09:00 2007-10-05T02:40:58+09:00 "DimやPrintなどといったコンパイラが認識するキーワードが入力された場合に、エディタが自動的に大文字小文字を揃えてやる(dIM→Dim、PRINT→Printなどのように)機能が欲しいです。 これによりある程度コーディングスタイルの統一を図り、また入力支援として便利な機能になると思います。" イグトランス (egtra) 99 Random クラスの作成 ablib タスク イグトランス (egtra) new 2007-04-03T23:58:21+09:00 2008-08-05T02:14:35+09:00 System.Randomは乱数を生成するクラス イグトランス (egtra) 240 OpenGL関連クラスの実装 ablib タスク NoWest new 2009-03-15T23:29:03+09:00 2009-03-15T23:29:03+09:00 "Formもうまく動き始めたので、これを前提に 実装をはじめたいと思います。 " NoWest 244 コンソールでのEOF (Ctrl+Z) 入力の挙動を調査する ablib タスク イグトランス (egtra) new 2009-06-29T00:32:51+09:00 2009-06-29T00:32:51+09:00 #243の続き。[707]ではConsoleReader/ReadConsoleで対処したが、リダイレクトが行われたり、StreamReader/ReadFileでコンソールから読み取られたりする場合の挙動が問題ないか調べておきたい。 イグトランス (egtra) 176 デリゲート+=の右辺にNew デリゲートを指定するとエラーになる Compiler バグ(ケアレスミス) dai new 2008-07-12T14:59:21+09:00 2008-07-12T14:59:21+09:00 "次のコードがコンパイルエラーになる。 {{{ #console Delegate Sub Callback1() Class T Static Sub f() : Print ""hello"" : End Sub Static Sub g() : Print ""world"" : End Sub End Class Dim f = New Callback1(AddressOf(T.f)) f += New Callback1(AddressOf(T.g)) f() System.Console.ReadLine() }}} 出力は次の通り(11行目は+=の行)。 {{{ t.ab(11) : 定数式にリテラル値、または定数以外のものが含まれています。 t.ab(11) : 定数式にリテラル値、または定数以外のものが含まれています。 t.ab(11) : DoubleからCallback1に変換できません。 }}} 次のように書けば回避できるので、優先度微にした。 {{{ 'その1 Dim f = New Callback1(AddressOf(T.f)) Dim g = New Callback1(AddressOf(T.g)) f += g 'その2 Dim f = New Callback1(AddressOf(T.f)) f += AddressOf(T.g) }}}" イグトランス (egtra)