2025/12/21

twinBASIC BETA 941 で「クラスのデモ04」が動く

 別に、このバージョンになったからというわけでなく、今日時点の最新のバージョンでたまたま昔のプロジェクトを読み込ませてみたってだけです。


 すっかり何のプロジェクトか覚えていませんが、実行させたダイアログを見ると、DateTimePicker関連APIを呼び出すクラスの実装デモのようです。

今見ると、ユーザーコントロールで実装したほうが良いですよね。確か、後のVB De FilMtnの「ファイルの日付時刻の変更」ダイアログでは、そうしていたような記憶があります。

「値を設定」ボタンを押下


 うん、ちゃんと日付が変わるね。前世紀の日付じゃん!

この日付、何だろう?

ソースを見てみる。


 結婚記念日...。

忘れてた。(^^ゞ

 

 

 

2025/11/22

twinBASIC IDE BETA 905で、懐かしの「クラスのデモ」が無改造で動作

 

クラスのデモ(その1)

 大昔、Visual Basicマガジンという雑誌がありまして、創刊号から愛読していまして、パソコン通信上での友人が「VBマガジンに掲載されれば、献本システムにより、ただで雑誌がもらえるよ。」と唆され、VBマガジンに掲載されるようなサンプルプログラムを、というヨコシマな目的のために作成された、Visual Basic 6.0のプログラムです。

OCXで実現されていたコモンダイアログは、結構ファイルサイズが大きく、回線が細かったパソコン通信時代には、ソフトウェアの配布でネックになりがちでした。配布する側も、ダウンロードする側もね。

Windows APIをVisual Basicから直接呼ぶことができるため、理屈の上ではOCXの代わりにVBのコーディングだけでコモンダイアログは呼べます。

しかし、思い立ってもなかなか自分で実装するには面倒なのか、当時はまだ誰もこういった便利ユーティリティークラスは公開されていませんでした。

当時のソフトウェア添付のドキュメント

 CLSDEMO1.LZH クラスのデモ(その1)
===========================================================================
【ソ フ ト名】  クラスのデモ(その1)
【登  録  名】 CLSDEMO1.LZH
【バイト  数】  Byte
【検索  キー】 1:$WIN32 2:#UTY 3:へろぱ 4:NIIYAMA
【著作権  者】 新山(へろぱ)    SGV00153
【対応  機種】 Windows9x/Me/NT4.0/2000 later
【動作  確認】 自作AT互換機(Win 2000 SP3他)
【開発  言語】 Visual Basic 6.0J(Pro)
【掲  載  日】 2003/04/13
【作成  方法】 LHA にて解凍を行う。
【ソフトウェア種別】 フリーソース
【転載  条件】  転載を希望される方は、事前に私宛にメールをください。
===========================================================================
【ソフト紹介】
 VB4からの新機能の一つにクラスという機能があります。この機能は本来
OLEサーバーなどを作る時に利用したりするものだと思いますが、簡単に再
利用できるモジュールとしての利用価値も結構あると思います。

 コモンダイアログのクラス
    「ファイルを開く」「ファイルの保存」「フォントの選択」「色の選択」
    がVB5のコモンダイアログOCXとほぼ互換のプロパティ・メソッドで
    使えます。再配布などでのディスク容量の問題が一挙に解決すると思いま
    す。

 タブストリップのクラス
    コモンコントロールのタブストリップコントロールを直接APIで実現する
    クラスです。

 プログレスバーのクラス
    コモンコントロールのプログレスバーコントロールと同様の外見をピクチ
    ャーボックスコントロールで実現するクラスです。

 今後、ソース付きの私のプログラム内でタイムスタンプの新しい同名のファイル
があれば、それは更新された新しいモジュールです。参考までに。(^_^;)

 コードについて、バグやもっといい方法があると思ったら指摘してもらえると
勉強になるのですが...。

 感想、要望、バグ情報等ございましたら、メールをください。

 関係無いですが、http://plaza5.mbn.or.jp/~heropa/ もよろしく。(^_^;)

【履歴】
    1997/03/21  最初に公開されたバージョン
    1998/05/10  コモンコントロールのクラスを修正。VB5専用コードに変更。
    1998/06/19  コモンコントロールのクラスのバグ修正。
    1998/09/24  色の選択ダイアログのコードを修正。
    1999/02/26  タブストリップのクラスをAPIで実装しなおした。
    2000/02/09  タブストリップで、コンパイルオプションDebugMode = -1の時は
                サブクラス化しないようにした。これで開発時に大分楽になるは
                ず。
    2003/04/13  cdlOFNNoReadOnlyReturnをFlagsプロパティにセットすると落ち
                る原因を教えていただいたので修正した。木村さんありがとうご
                ざいます。
===========================================================================

ダウンロードファイル名を『CLSDEMO1.LZH』としてください。

あ、ホームページのURLとか、既に存在していません。

そんなわけで、ソースをtwinBASICで読み込んでみました。22年前のプログラムソースが手元にあったもので。(^^ゞ

普通にエラーもなくコンパイルできてます。冒頭のウィンドウは、twinBASICでコンパイルしたものです。

動作確認をざっくりしましたが、WinHelpの呼び出し以外はちゃんと動作します。(WinHelpは、さすがにWindows 11では...。)

プログラムの性質上、Windows APIをバリバリ呼んでいますが、twinBASICでちゃんと解釈されているようです。 

素晴らしい。 

まぁ、64ビットコンパイルするためには、ポインタのところとかが今のままでは駄目だろうけど。 

これなら、VB De FilMtnでもコンパイルできるのか?

なんか、怖くてできない。 (エラーがバリバリ出て、コンパイルできないと悲しいじゃん?)

2025/10/25

twinBASIC

 

これ、凄いね!

Microsoft Visual Basic 6.0の後、Microsoftは、.net上で動作するVisual Basicに移行しました。

憶測ですが、Javaの件でSun Microsystemsとの裁判で負け、オルタナティブJavaとしてのC#で、MicrosoftがJavaでやりたかったことをするために、Visual Basicは巻き込まれた感じです。

Visual Basic 6.0の開発者は、次のVisual Basicとして、.net Framework上で動くVisual Basic .netへの移行をせざるを得ませんでした。Visual Basic .netの言語仕様は、Visual Basic 6.0のものとはずいぶん異なり、仕様の進化的には正しいのだろうと思いながらも、既存の資産を全く生かせない仕様変更に途方にくれました。

.net Frameworkは、ライバル「Javaのバージョンと仕様」と 争うように、どんどんバージョンアップし、C#を旗艦言語とし、Visual Basicは置いてきぼり状態。

OSも、いつの間にか32ビット版OSが無くなり、Visual Basic 6.0開発環境をインストールできるOSは、仮想環境のみとなりました。

飼っていたVisual Basic 6.0の開発環境がインストールされている仮想OSのサーバーであるVirtualBoxとHyper-Vの相性は最悪で、Windows 11ではVisual Basic 6.0のソースを弄ることが困難になっています。 

不思議なことに、ExcelなどのOfficeに内蔵されるVisual Basic for Applications(VBA)の言語仕様は、Visual Basic 6.0とほとんど変わることもなく、現時点でのVBAのバージョンは、7.1でx64なAPIをコールできるように仕様の拡張がされており、Microsoftは放置しているわけではないが、積極的に弄ることもしない、というスタンスに見えます。

Googleさんの検索で、AI検索が導入され、自然言語での問い合わせに答えてくれるようになったので、「Visual Basic 6.0のクラシックBasicの後継となりそうなものって存在する?」と聞いてみたところ、twinBASICを紹介された次第です。

これこそ、Visual Basic 6.0の開発者が、Microsoftにやってほしかった次期Visual Basicだったのでは!?と思わせる出来です。

もう、これがVisual Basicの直系となる開発ツールで良いと思う。

現在はベータバージョンで完成間際というところのようですが、現時点でもなかなかの出来です。もしかして、VB De FilMtnとか移植できそう?と夢が見れそうです。 

以下は、Google検索さんがまとめたtwinBASICの良いところです。

 

 twinBASICの素晴らしい点は、
Visual Basic 6.0(VB6)やVBAとの互換性を保ちながら、最新の言語機能と開発環境を提供していることです。これにより、既存の資産を活かしつつ、最新の開発手法や技術を取り入れることができます。 
以下に、twinBASICの主な特長をまとめます。
1. VB6/VBAとの高い互換性 

    コードの完全移植: 既存のVB6やVBAのプロジェクトをtwinBASICにインポートし、ほとんど修正なしで実行できます。
    バグ修正と再現: 古いVB6/VBAコンパイラーにあった既知のバグや、特殊な挙動が忠実に再現されつつ修正されているため、安心して移行できます。 

2. 最新の言語機能 

    64ビットコンパイル: 64ビットネイティブコードのコンパイルに対応しているため、VB6では実現できなかった64ビットアプリケーションを作成できます。
    ジェネリクス: 再利用可能で型安全なコードを書くためのジェネリクスをサポートしています。
    オーバーロード: メソッドのオーバーロードに対応しており、より柔軟なプログラミングが可能です。
    継承: クラスの継承をサポートし、オブジェクト指向の機能を強化しています。
    Unicodeの完全サポート: 開発環境とコントロールの両方で、Unicodeを完全にサポートします。
    マルチスレッド: 低レベルのAPI呼び出しではありますが、マルチスレッドをサポートしています。 

3. 現代的な開発環境 

    統合開発環境(IDE): 最新のモダンな専用IDEが提供されています。
    Monacoベースのコードエディター: VS Codeでも使われているMonacoエディターが採用されており、高機能なコード編集が可能です。
    テーマ: ダークテーマとライトテーマの両方に対応しています。
    リアルタイムのエラー診断: プロジェクト全体のエラーをリアルタイムに診断し、表示する機能があります。 

4. 実行環境の改善 

    ランタイム不要なEXE: 独立した実行ファイル(EXE)やDLLを生成でき、VB6のように特定のランタイムを必要としません。
    パフォーマンス向上: コンパイルプロセスの高速化や、最適化されたコンパイルオプション(Professional Edition)により、生成されるアプリケーションのパフォーマンスが向上します。 

5. その他のメリット

    ロイヤリティフリー: twinBASICで作成した商用製品は、ロイヤリティフリーで販売できます。
    活発な開発: 公開ベータ版のリリース以降、活発に機能追加やバグ修正が行われています。
    コミュニティの存在: DiscordやGitHubを通じて、開発者同士のコミュニティが形成されています。 

まとめると、twinBASICは過去の資産を保護しつつ、現代的な機能と開発手法を取り入れたいVB6/VBA開発者にとって、非常に魅力的な選択肢となります。時代遅れになりつつあったBASIC言語を、最新のプラットフォームで活用できる可能性を大きく広げます。

2025/05/03

家族が増えました

 

去年、12年飼っていた柴犬が亡くなって、もう犬はいいかな...と思っていましたが、妻が『さみしいから、犬を飼いたい』と言ってきました。

何度もペットショップを巡って、柴犬を探していましたが、人気の犬種だけにお高い!

それに、ピンとくる子がいない...。

そんな中、知り合いの人から「保護犬だったら買わなくても飼えるよ。」と言われ、県の保護センターにも行ってきました。

しかし、そこでもピンとくる子は居なくて。

 別の人から、「保護センターは、県が運営しているものと、松山市が運営しているものがあるよ。」と聞き、松山市の保護センターへ行ってきました。

そこで、この犬と出会い、「良いな、かわいいな」と思い、引き取ることに。

それが、4月15日火曜日、平日でしたが有給休暇で引き取ってきました。

命名:すもも

推定6~7歳の女の子で、雑種だそうです。

パッと見、柴犬っぽい格好ですが、柴犬よりも1.5倍位大きいです。

カリカリ餌は2倍食べます。食いしん坊です。デブ犬にならないように気を付けなければなりません。

前の子と同様、お散歩大好きで力が強いのでグイグイ引っ張りながら歩いていきます。結構、ムキムキです。

まだうちに来て間がないため、少し遠慮があるのかまだ距離が遠いです。

これから妻と一緒に、長く付き合っていきたいです。