ラベル バグ の投稿を表示しています。 すべての投稿を表示
ラベル バグ の投稿を表示しています。 すべての投稿を表示

2022年1月16日日曜日

xampp と workbench

今年は気合入れてやるぜ!と元旦から、キーボードに向かってカタカタ入力しているラターシュです。

xamppとworkbenchのインストールをしら、まずは MySQLのデータベースを構築し、phpでアクセスするのが、一連の流れ。

以前は、週に3つのブログを立ち上げたこともあるくらい、データベースとかHTML触ってましたが、ここ数年はさっぱり。

まあ、仕事の一環で、会社PCに両方ともインストールしているので、特に問題はない。

…と思ったら大間違いである。
早速、トラブルに見舞われたので、ここに記録しておこう。

Failed to Connect to MySQL at 127.0.0.1:3306 with user root SSL connection error; SSL is required but the server doesn’t support it

まずはこのエラーである。
これは、workbenchがxamppへの接続にSSLが要求されているが、xamppがそもそもSSLに対応していない、というのが原因らしい。

設定を見ると、Use SSLの項目が、Require 一択になっている。


これでは、どうしようもないので、workbenchのバージョンが低いものをダウンロード。
同じようにSSLのところを見ると、
if available
が選択できたので、その設定にすると、無事にMySQLとworkbenchが接続できた。

なぜ、require 一択になってしまったのかは知らないが、もし同じエラーが出たら、バージョンを戻して試してみるといいかもしれない。

2019年4月11日木曜日

プログラムブログ更新は久しぶり

 毎日プログラムしてるけど、ほぼ更新してない!

HSPもcocos-2dxも全く触れて無いわ!

つか、ほぼ毎日、終電だゴルア!

まあ、楽しいのでいいんですがね。

不具合修正のプログラムが楽しい人ってそうそういないか。

で、不具合について。

Windows.forms.System.SplitContainerを使ってフォームを作る。

これは、左右2つのパネルをSplitterで分割するフォームパーツだ。

このSplitterはアプリ使用者が自由に動かすことができるが、

アプリを再起動すると、デフォルト位置に戻ってしまうので、位置をキープして欲しい、というもの。



実は、保存する際に、値はちゃんとシリアライズされている。

ではなぜ、ずれてしまうのか?

それは、いわゆる仕様バグである。

まず、SplitContainerを、幅200で初期化・作成する。

Splitterの位置は、100(ちょうど中央)とする。

※ちなみにSplitter自体の幅は4

ここまではちゃんと、再起動時にデシリアライズされている。


問題は…。


作成したこのSplitContainerを、Dockに収めていることだ。

その際、300とか400とか大きめのDockにはめ込んでいるため、

幅200で作ったSplitContainerが、引き伸ばされる。

全体が均等に引き伸ばされるため、spliterの位置が、右にずれるのだ。

そしてこれが保存され、次回再度引き伸ばされ…。

デフォルトに戻るどころか、どんどん右にずれていく、というのが現状だったようだ。


解決するのは簡単で、Splitter自体は自由に動かせるが、ウインドウサイズを変えても、

パネルサイズを変更しない、fixedPanelプロパティで、Panel1(左側)を固定にするだけでいい。


…のだが!


実は罠があるらしい。

今開発しているツールは、各種機能が複数のタブによって仕分けされており、

この複数のタブそれぞれに、SplitContainerが使われている。

前半で述べた方法で、これらすべてのSplitterの位置は個別に保存されるようになったのだが、

どうやら、リセットするトリガーがあるらしい。

タブ3にある、Splitterの位置を動かしたら、なぜかタブ1とタブ2の位置がリセットされるのだ。

(現象はランダムで、変わらない場合もある)


現在、このリセットされるトリガーが何か?が調査対象である。