0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Xojo 2019 → 2020 Webアプリの相違点

Last updated at Posted at 2021-01-14

比較対象

  • Xojo 2019 r3.2
  • Xojo 2020 r2.1

Webアプリの作成においては、Xojo内部のフレームワークとして Web1.0 から Web2.0 に変化し、UI などに 2019→2020で大きな不連続がある。

書き換えについては以下にまとまっている。
「Converting Web Projects to Web Framework 2.0 Xojo Blog」
https://blog.xojo.com/2020/08/27/converting-web-projects-to-web-framework-2-0/

調べ方

旧メソッドなどが何に変わったかなと調べようとしても、旧のヘルプがオンラインから無くなっている。旧バージョンの Xojo IDE からのヘルプもオンラインを参照しているので詰む。
以下のように直打ちして調べる。例えばWebListBox.Cell を調べようとするときに、WebListBox.Cell という方法では調べられないので代わりに ListBox.Cell で調べる。
http://docs.xojo.com/index.php/ListBox.Cell

(2023/04/25追記:archive.org で昔のドキュメントが参照できました)
https://web.archive.org/web/20191231154651/https://docs.xojo.com/

コントロール

廃止して代替

  • msgbox → messagebox
  • WebListBox.DeleteAllRows → WebListBox.RemoveAllRows
  • WebListBox.ListIndex → WebListBox.SelectedRowIndex
  • WebListBox.Cell → WebListBox.CellValueAt

イベントハンドラ

かなりの削除と変更が行われている。従来はデスクトップアプリとほぼ同様のものが利用できたが、Web2.0となりWebアプリは別個のものという位置づけとなったと考えるのが良さそうだ。

App

2019 r3.2

image.png
2020 r2.1

image.png

WebPage

2019 r3.2

image.png

2020 r2.1
image.png

WebTextField

2019 r3.2
image.png
2020 r2.1
image.png

WebTimer

Modeプロパティ -> RunModeプロパティ

Timer1.Mode = 1 でタイマーが発動していたが、 Timer1.RunMode = WeTimer.RunModes.Single
とする。

Name

Xojo r3.2 以前で作成した WebTimer コントロールを Xojo 2020 r2.1 でビルドしようとするとエラー。

image.png

この場合、Timer1オブジェクトを削除して作成し直す

KeyPressed

idField on WebPage1 implements the event "KeyPressed," but its superclass WebTextField has already implemented the event.

と出る。

idField は WebTextField。これに KeyPressed イベントとして


Select Case details.KeyCode
Case details.KeyEnter
  furiganaField.text=zenhankanafix(furiganaField.text)
  取得個人()
End Select

となっていたのを

TextChanged
イベントに


  furiganaField.text=zenhankanafix(furiganaField.text)
  取得個人()

と書いた

Run

MS-Windows 10 + Chrome の組み合わせだと、IDE からの実行で http://127.0.0.1:8080/ となるはずが %22http//127.0.0.1:8080/" で呼び出され、イラッとくるバグが直っている。

Webアプリ以外の変更点

Timer

TimerはWebアプリではサーバで動作する。クライアントで動作させるにはWebTimerを使うことができる。

Timer.Mode → Timer.RunMode

Timer.Mode=Timer.ModeOff → Timer.RunMode=WebTimer.RunModes.Off
Timer.Mode=Timer.ModeSingle → Timer.RunMode=WebTimer.RunModes.Single
Timer.Mode=Timer.Multiple → Timer.RunMode=WebTimer.RunModes.Multiple

Timer.ModeOff の代わりに整数値 0,
Timer.ModeSingle の代わりに整数値 1,
が使えたが、
WebTimer.RunModes の値として整数値は使えない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?