
防犯や防災時に役立グッズが多数 「備えて安心グッズのお店」
お得なわけあり商品を多数取り揃え 「訳ありお得館」
厳選デジタルグッズのお店 「おもしろデジモノのデジモノ屋」
厳選食品お取り寄せのお店 「まんぷく屋」
美と健康を考えるお店 「La beaut」
Android開発でエラーメモ ― 2012年09月30日 12時40分26秒
Androidで開発を進めているのですが、
ちょっとしたトラブルが発生!
原因がわかってみればなんてことないのですが、
少しはまったので、メモしておきます。
Activityにタイトル画面を作成し、
SurfaceViewを作成して実際のプログラムはSurfaceViewで動かしているのですが、
あるとき、突然プログラムが起動しなくなりました。
SurfaceViewの修正を行っていたのですが、
突然タイトル画面の起動すらしなくなり、
原因を探すのに若干ハマりました。
エラーが発生するのが、Activity内でSurfaceViewを登録する所で発生したため、
Activity側に何か問題があるのかと思ってしまったのが始まりでした。
もっとも、Activity側のプログラムは何も修正していないので、
そちらに原因があると考えること事態まちがいなのですが・・・!
原因はSurfaceViewで乱数の取得を行っているのですが、
乱数の範囲を指定している変数の値が0だっただけでした。
これを見つけるのに少し時間がかかってしまいました。
自分の思い込みと能力不足を痛感しました。
ちょっとしたトラブルが発生!
原因がわかってみればなんてことないのですが、
少しはまったので、メモしておきます。
Activityにタイトル画面を作成し、
SurfaceViewを作成して実際のプログラムはSurfaceViewで動かしているのですが、
あるとき、突然プログラムが起動しなくなりました。
SurfaceViewの修正を行っていたのですが、
突然タイトル画面の起動すらしなくなり、
原因を探すのに若干ハマりました。
エラーが発生するのが、Activity内でSurfaceViewを登録する所で発生したため、
Activity側に何か問題があるのかと思ってしまったのが始まりでした。
もっとも、Activity側のプログラムは何も修正していないので、
そちらに原因があると考えること事態まちがいなのですが・・・!
原因はSurfaceViewで乱数の取得を行っているのですが、
乱数の範囲を指定している変数の値が0だっただけでした。
これを見つけるのに少し時間がかかってしまいました。
自分の思い込みと能力不足を痛感しました。
Androidアプリ開発 ― 2012年09月05日 12時37分37秒
会社でAndroidアプリを開発するように言われ、
今調査中なのですが、なかなか進みませんね!
能力の問題と言われればそれまでなのですが・・・!
でもちょっとしたゲームとか自分でも作ってみたいと思っていたので、
なんとかものにしたいと思います。
InstallShield ― 2012年05月17日 17時44分56秒

InstallShieldを使い、セットアップディスクを作る場合、
「INSTALLDIR」上にファイルを指定します。
Cドライブ直下にインストールしたい場合、
「Destination Computer」の直下にディレクトリを指定すると、
インストールするPCの環境によっては、
Cドライブ以外のドライブにインストールされます。
どこに入るかと言うと、一番空きの大きいドライブになります。
これを回避するためには、新規でフォルダを「c:」で作成します。
作成すると、「c:\」のフォルダが表示されるので、
その中に「INSTALLDIR」を配置することで、
Cドライブ内にインストールすることができるようになります。
当初、これを知らずにセットアップディスクを作成していたのですが、
私の開発用PCはDドライブの空きが少なく、
インストールしているPCはほとんどがCドライブのみの構成だったため、
このことに気づきませんでした。
忘れないためのメモとしてアップしておきます。
「INSTALLDIR」上にファイルを指定します。
Cドライブ直下にインストールしたい場合、
「Destination Computer」の直下にディレクトリを指定すると、
インストールするPCの環境によっては、
Cドライブ以外のドライブにインストールされます。
どこに入るかと言うと、一番空きの大きいドライブになります。
これを回避するためには、新規でフォルダを「c:」で作成します。
作成すると、「c:\」のフォルダが表示されるので、
その中に「INSTALLDIR」を配置することで、
Cドライブ内にインストールすることができるようになります。
当初、これを知らずにセットアップディスクを作成していたのですが、
私の開発用PCはDドライブの空きが少なく、
インストールしているPCはほとんどがCドライブのみの構成だったため、
このことに気づきませんでした。
忘れないためのメモとしてアップしておきます。
ASP.NETで特定のPCのみDataGridの項目を表示させる ― 2012年04月25日 10時37分21秒
ASP.NETで作成されているホームページで、
DataGridの内容を使っている人で変えるようにと言われ、
設定を追加しました。
具体的には、管理者にのみ表示させたい項目がありるので、
管理者以外の人の表示を制限するというものです。
管理者の方は各自PCを持っているので、
今回は、PC名を取得し登録されているPC名であればDataGridの
項目を表示するようにしています。
PC名の登録はMXLファイルで登録しました。
kanri.xml
*******************************
<?xml version="1.0" encoding="utf-8" ?>
<host>
<hostname name="KANRI-PC">KANRI-PC</hostname>
</host>
*******************************
ソースがこちらです。
*******************************
Dim xmlDoc As XmlDocument
Dim xmlElement As XmlElement
Dim msgElement As XmlElement
Dim xmlFilePath As String
Dim pcStr As String
Dim pcStr2 As String
'XMLファイル読み込み
xmlFilePath = "kanri.xml"
xmlDoc = New XmlDocument()
xmlDoc.Load(xmlFilePath)
'DataGrid非表示
DataGrid1.Columns(8).Visible = False
'IPアドレス取得
Dim ip_addr = Request.ServerVariables("REMOTE_ADDR")
'localhostの場合は処理を抜ける
If ip_addr <> "::1" Then
'IPアドレスからPC名を取得
Dim host_name = System.Net.Dns.GetHostByAddress(ip_addr).HostName.ToUpper()
xmlElement = xmlDoc.DocumentElement
For Each msgElement In xmlElement.ChildNodes
pcStr = msgElement.GetAttribute("name")
pcStr2 = pcStr + ".ドメイン名"
'XMLファイルに登録されていれば、DataGridを表示
If pcStr = host_name Or pcStr2 = host_name Then
DataGrid1.Columns(8).Visible = True
Exit For
End If
Next
End If
*******************************
まず、XMLファイルを読み込んでいます。
DataGridの項目をいったん非表示にしています。
IPアドレスを取得し、IPアドレスからPC名を取得します。
その際、ToUpperで大文字に変換しています。
これは、XMLファイルで登録しているPC名が大文字なので、
そちらに合わせています。
XMLファイルとのチェックでは取得したPC名のみの場合と、
ドメイン名が付加された場合の2種類でチェックをしています。
ここでは、ドメインで管理をしているのですが、
Windows7ではPC名のみなのですが、
WindowsXPでは、ドメイン名付のフルコンピューター名で取得するために
このようにしています。
XMLファイルに登録されているPC名と合致する場合はDataGridを表示します。
今回は9番目の列を切り替えているので、Columns(8)となっています。
パソコンを共有している場合には使えませんが、
PC単位であれば、これで内容を変えることができると思います。
DataGridの内容を使っている人で変えるようにと言われ、
設定を追加しました。
具体的には、管理者にのみ表示させたい項目がありるので、
管理者以外の人の表示を制限するというものです。
管理者の方は各自PCを持っているので、
今回は、PC名を取得し登録されているPC名であればDataGridの
項目を表示するようにしています。
PC名の登録はMXLファイルで登録しました。
kanri.xml
*******************************
<?xml version="1.0" encoding="utf-8" ?>
<host>
<hostname name="KANRI-PC">KANRI-PC</hostname>
</host>
*******************************
ソースがこちらです。
*******************************
Dim xmlDoc As XmlDocument
Dim xmlElement As XmlElement
Dim msgElement As XmlElement
Dim xmlFilePath As String
Dim pcStr As String
Dim pcStr2 As String
'XMLファイル読み込み
xmlFilePath = "kanri.xml"
xmlDoc = New XmlDocument()
xmlDoc.Load(xmlFilePath)
'DataGrid非表示
DataGrid1.Columns(8).Visible = False
'IPアドレス取得
Dim ip_addr = Request.ServerVariables("REMOTE_ADDR")
'localhostの場合は処理を抜ける
If ip_addr <> "::1" Then
'IPアドレスからPC名を取得
Dim host_name = System.Net.Dns.GetHostByAddress(ip_addr).HostName.ToUpper()
xmlElement = xmlDoc.DocumentElement
For Each msgElement In xmlElement.ChildNodes
pcStr = msgElement.GetAttribute("name")
pcStr2 = pcStr + ".ドメイン名"
'XMLファイルに登録されていれば、DataGridを表示
If pcStr = host_name Or pcStr2 = host_name Then
DataGrid1.Columns(8).Visible = True
Exit For
End If
Next
End If
*******************************
まず、XMLファイルを読み込んでいます。
DataGridの項目をいったん非表示にしています。
IPアドレスを取得し、IPアドレスからPC名を取得します。
その際、ToUpperで大文字に変換しています。
これは、XMLファイルで登録しているPC名が大文字なので、
そちらに合わせています。
XMLファイルとのチェックでは取得したPC名のみの場合と、
ドメイン名が付加された場合の2種類でチェックをしています。
ここでは、ドメインで管理をしているのですが、
Windows7ではPC名のみなのですが、
WindowsXPでは、ドメイン名付のフルコンピューター名で取得するために
このようにしています。
XMLファイルに登録されているPC名と合致する場合はDataGridを表示します。
今回は9番目の列を切り替えているので、Columns(8)となっています。
パソコンを共有している場合には使えませんが、
PC単位であれば、これで内容を変えることができると思います。
ASP.NETからデータをアップロード ― 2012年02月07日 15時03分05秒
グループウェア開発に関連し、社内で構築しているWebシステムから、
データをアップロードすることになりました。
動いている社内システムはASP.NETが使われていて、
DataGridに一覧表示されている情報をアップロードすることになりました。
DataGridにアップロード用のリンクを追加し、クリックすることでデータを送信し、
PHPで受け取る形で作りました。
PHP側では、GETでデータを取得しています。
ASP.NETは最近使ってなかったので、思ったよりも時間がかかりました。
しかも、動いているASP.NETはバージョンが古いらしく、
VisualStudioで開くと、警告がたくさん出てきました。
今回はその辺の警告は無視し、リンクの作成に集中することにします。
まず、DataGrid上でリンクを作る方法がよくわからず、調べてみました。
複数のパラメータを渡すようにするには、<ItemTemplate>が必要なようで、
サンプルが書かれているサイトを見ながら作ってみたのですが、エラーになります。
順番にタグを追加していき、追加するたびに実行させたのですが、
NavigateUrlにアドレスを追加すると、HyperLinkでエラーになるという症状が出ていました。
**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************
ここまでは順調だったのですが、
**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "name") %>'
NavigateUrl='<%# "http://localhost/GroupWare/upload.php?id="
+ Server.DataBinder.Eval(Container.DataItem, "ID") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************
とするとエラーになりました。
本来は、ID以外にもアップする項目があるのですが、
とりあえずでやってみたらエラーでした。
NavigateUrlを指定せずに動かすと、Textの項目はきちんと表示されるので、
データは取得できるようなのですが、IDを設定するとエラーになっています。
いろいろ試した結果、どうも改行するのがダメみたいで、
NavigateUrlを1行で記述するとエラーにならなかったので、
実行してみると、リンクができていました。
早速アップロードしてみたのですが、日本語の情報がアップされませんでした。
ただ、これはエンコードしていないのが原因なので、エンコードの設定を追加しました。
**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# Server.UrlEncode(DataBinder.Eval(Container.DataItem, "name")) %>'
NavigateUrl='<%# "http://localhost/GroupWare/upload.php?id="+Server.DataBinder.Eval(Container.DataItem, "ID") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************
これで、アップロードしたデータがきちんと日本語で登録されました。
データをアップロードすることになりました。
動いている社内システムはASP.NETが使われていて、
DataGridに一覧表示されている情報をアップロードすることになりました。
DataGridにアップロード用のリンクを追加し、クリックすることでデータを送信し、
PHPで受け取る形で作りました。
PHP側では、GETでデータを取得しています。
ASP.NETは最近使ってなかったので、思ったよりも時間がかかりました。
しかも、動いているASP.NETはバージョンが古いらしく、
VisualStudioで開くと、警告がたくさん出てきました。
今回はその辺の警告は無視し、リンクの作成に集中することにします。
まず、DataGrid上でリンクを作る方法がよくわからず、調べてみました。
複数のパラメータを渡すようにするには、<ItemTemplate>が必要なようで、
サンプルが書かれているサイトを見ながら作ってみたのですが、エラーになります。
順番にタグを追加していき、追加するたびに実行させたのですが、
NavigateUrlにアドレスを追加すると、HyperLinkでエラーになるという症状が出ていました。
**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************
ここまでは順調だったのですが、
**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "name") %>'
NavigateUrl='<%# "http://localhost/GroupWare/upload.php?id="
+ Server.DataBinder.Eval(Container.DataItem, "ID") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************
とするとエラーになりました。
本来は、ID以外にもアップする項目があるのですが、
とりあえずでやってみたらエラーでした。
NavigateUrlを指定せずに動かすと、Textの項目はきちんと表示されるので、
データは取得できるようなのですが、IDを設定するとエラーになっています。
いろいろ試した結果、どうも改行するのがダメみたいで、
NavigateUrlを1行で記述するとエラーにならなかったので、
実行してみると、リンクができていました。
早速アップロードしてみたのですが、日本語の情報がアップされませんでした。
ただ、これはエンコードしていないのが原因なので、エンコードの設定を追加しました。
**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# Server.UrlEncode(DataBinder.Eval(Container.DataItem, "name")) %>'
NavigateUrl='<%# "http://localhost/GroupWare/upload.php?id="+Server.DataBinder.Eval(Container.DataItem, "ID") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************
これで、アップロードしたデータがきちんと日本語で登録されました。
最近のコメント