●メニューへ ●単福へ ●自動車の維持費をシミュレーション ●InDesign JavaScript ノート

CANVAS/画像を縮小表示


dim sW,sH,bW,bH,x,y as integer
  dim hi as double
  if me.backdrop<>nil then
    sW=me.backdrop.width
    sH=me.backdrop.height
    bW=me.width
    bH=me.height
    if bW/sW>bH/sH then
      hi=bH/sH
    else
      hi=bW/sW
    end if
    bW=sW*hi
    bH=sH*hi
    x=(me.width-bW)/2
    y=(me.height-bH)/2
    g.foreColor=gHtmCol2c//RGB(255,255,255)
    g.fillrect 0,0,me.Width,me.height
    g.drawpicture me.backdrop,x,y,bW,bH,0,0,sW,sH
  end if


TOPへ


FileDrop/FileDrop


//WindowのOpenイベント 
me.acceptFileDrop("special/folder")
me.acceptFileDrop("special/any")


//WindowのDropObjectイベントに
  dim F as folderItem
  dim msgStr as string
  dim N as integer
  If obj.folderItemAvailable then
    F=obj.folderItem
    if F.directory then
      for N=0 to F.count
        //F.item(N)がドロップされたアイテム
      next
    else
      Do
        F=obj.FolderItem
        //Fがドロップされたアイテム
      loop until not obj.NextItem
    End if
    W2.EF1.text= msgStr
    W2.visible=true
  end if


TOPへ


JPEG画像/出力する


Dim f as FolderItem
  Dim exporter as QTGraphicsExporter
  Dim mybool as Boolean
  dim IMGmoto,IMG as picture
  dim outSize,motoSize as integer
  dim Hi as double
  dim Fname as string
  
  IMGmoto=gFolAry(N).openAsPicture
  //CC1(N).backdrop
  Fname=gFolAry(N).name
  outSize=230
  motoSize=IMGmoto.Width
  if IMGmoto.height>motoSize then
    motoSize=IMGmoto.height
  end if
  Hi=outSize/motoSize
  IMG=newPicture(IMGmoto.Width*Hi,IMGmoto.height*Hi,32)
  IMG.graphics.drawPicture(IMGmoto,0,0,IMGmoto.Width*Hi,IMGmoto.height*Hi,0,0,IMGmoto.Width,IMGmoto.height)
  f=GetFolderItem(nthField(Fname,".",1)+"sum"+nthField(Fname,".",2))
  exporter=GetQTGraphicsExporter("JPEG")
  //mybool=exporter.RequestSettings
  //exporter.DesiredTargetDatasize=36
  exporter.CompressionQuality=512//0,256,512,768,1023
  exporter.OutputFileType="JPEG"
  exporter.OutputFileCreator="ogle"
  mybool=exporter.SavePicture(f,IMG)


TOPへ


Socket/EasyUDPSocket


EasyUDPSocketはネットワーク内のアプリケーションに
テキストを送信する仕組み。

Windowに
EasyUDPSocketを置く


EasyUDPSocketのReceivedMessageには
msgbox "EasyUDPSocket1 got " + Str( command ) + ": " + data + " from " + fromIP + EndOfLine


接続ボタンに
  EasyUDPSocket1.Bind(8080)//ポート番号8080が当たる場合は変更
  EasyUDPSocket1.Register("myGroup")//グループ名任意

送信ボタンに
EasyUDPSocket1.SendMessageToGroup( "myGroup", 8080, "HELLO!" )




TOPへ


Socket/Socket高速化


Socketコントロールの横にTimerコントロールをおき
Timerのmodeを2-Multipleにし
Periodを短くする。


TOPへ


Socket/ダウンロード


//グローバル変数
gIPAddr as String
gDownData as String

//ダウンロードボタン
  gIPAddr="adg.bne.jp"
  Socket1.Address=gIPAddr
  Socket1.port = 80
  gURL="/takenote/getfilelist.php"
  Socket1.connect
exception

//Socketコントロールに記述//Connected
  dim Crlf as string
  dim req as string
  gDownData=""
  Crlf =  chr(13)+chr(10)
  req = "GET "+gURL+" HTTP/1.0" + Crlf + Crlf
  socket1.write req

//DataAvailable
  dim buf as string
  buf=socket1.readall
  gDownData = gDownData + buf
  StaticText1.text="Down:"+leftb(buf,30)
  StaticText1.refresh

//error
  dim myErr as integer
  myErr = Socket1.lastErrorCode
  me.close
  staticText1.text="ダウンロード終了"
  StaticText1.refresh
  //gDownData←こいつに入ってるので書き出す。
exception


TOPへ


サンプルソース/SplitMBS


dim SplitItem as SplitMBS
  dim bool as boolean
  dim count,N as integer
  SplitItem=new SplitMBS
  bool=SplitItem.Split(TXT,chr(9))
  count=SplitItem.Count
  for N=1 to count
    buf=SplitItem.Item(N)
  next
  SplitItem.clear


TOPへ


サンプルソース/キャンバスにフィットさせる


//CanvasコントロールのPainに書く
Sub Paint(g As Graphics)
  dim sW,sH,bW,bH,x,y as integer
  dim hi as double
  if me.backdrop<>nil then
    sW=me.backdrop.width
    sH=me.backdrop.height
    bW=me.width
    bH=me.height
    if bW/sW>bH/sH then
      hi=bH/sH
    else
      hi=bW/sW
    end if
    bW=sW*hi
    bH=sH*hi
    x=(me.width-bW)/2
    y=(me.height-bH)/2
    g.foreColor=RGB(255,255,255)
    g.fillrect 0,0,me.Width,me.height
    g.drawpicture me.backdrop,x,y,bW,bH,0,0,sW,sH
  end if
End Sub


TOPへ


サンプルソース/リソースを開く


Dim rf as ResourceFork
  Dim P as picture
  dim resNum as integer
  #if targetMacOS then
  rf=f.OpenResourceFork
  If rf <> Nil then 
    P=rf.GetPicture(256)
    if P=nil then
      resNum=rf.ResourceID("PICT",0)
      P=rf.GetPicture(resNum)
    end if
    if P=nil then
      P=notres
    end if
  else
    P=notres
  end if
  #endif
  return P


TOPへ


サンプルソース/正規表現


Dim re as RegEx
  Dim m as RegExMatch
  
  if TXT<>"" then
    re=new RegEx
    re.SearchPattern=regStr
    m=re.Search(TXT)
    If m <> Nil then
      return m.SubExpressionString(1)
    end if 
  else
    return ""
  end if


TOPへ