■アプリケーションの2重起動防止
■フォームの2重起動防止
SyntaxHighlighter
2013年9月8日日曜日
【Blogger】Bloggerでソースコードを表示(SyntaxHighlighter)
BloggerにSyntaxHighlighterを導入する
1)以下サイトから、使用するコードと表示タイプを選択してコードを取得する
http://www.way2blogging.org/widget-generators/syntax-highlighter-scripts-generator
2)Bloggerのレイアウトで、ガジェットを追加する
3)ガジェットの種類として「HTML/Javascript」を選択
4)タイトル「SyntaxHighlighter」(何でもよい)を設定
5)コードの中身に、1)で作成したコードを貼りつける
以上で完了。
入力例)
---------------------------------------------------
<script type='syntaxhighlighter' class='brush: cpp'><![CDATA[
//コードの内容
]]></script>
表示例)
---------------------------------------------------
1)以下サイトから、使用するコードと表示タイプを選択してコードを取得する
http://www.way2blogging.org/widget-generators/syntax-highlighter-scripts-generator
2)Bloggerのレイアウトで、ガジェットを追加する
3)ガジェットの種類として「HTML/Javascript」を選択
4)タイトル「SyntaxHighlighter」(何でもよい)を設定
5)コードの中身に、1)で作成したコードを貼りつける
以上で完了。
入力例)
---------------------------------------------------
<script type='syntaxhighlighter' class='brush: cpp'><![CDATA[
//コードの内容
]]></script>
表示例)
---------------------------------------------------
【VC++/CLI】DataGridView セルでヘッダーを作成
DataGridView でセルを固定してヘッダーにする。
2行ヘッダーがあるテーブルを要求され、既設のヘッダーのように見えるセルヘッダー作成する。
さらに、セルヘッダー行以下にコンボボックスを設定する。
【既設ヘッダー】の設定
【セル固定ヘッダー】の設定
※セル毎にコンボを設定しても良いが、先頭行のみテキストにしたいため、
列をコンボ指定し、先頭行のコンボのみ、テキストに入れ替えるようにした。
2行ヘッダーがあるテーブルを要求され、既設のヘッダーのように見えるセルヘッダー作成する。
さらに、セルヘッダー行以下にコンボボックスを設定する。
【既設ヘッダー】の設定
【セル固定ヘッダー】の設定
※セル毎にコンボを設定しても良いが、先頭行のみテキストにしたいため、
列をコンボ指定し、先頭行のコンボのみ、テキストに入れ替えるようにした。
プリントスクリーンが効かない
VIST使用でPrintScreenキーが効かないので、Snipping Tool を使用していた。
が、Snipping Toolでもメニューのキャプチャをする場合、PrintScreenキーが必要だとか。。
結局調べると、mAgicマネージャが常駐していると無効にされているらしい。 http://www.iodata.jp/support/qanda/answer/s15469.htm
そうですか・・・Snipping Tool使う必要も無かった訳です。
mAgicマネージャを終了すると、普通にPrintScreenキーが使用可能になりました(--;)
もちろん、Snipping Toolでも可能
1)Snipping Tool起動
2)ESCキー
3)Ctrl + PrintScreen
4)画面全宅が選択されるので、範囲を選択して保存
が、Snipping Toolでもメニューのキャプチャをする場合、PrintScreenキーが必要だとか。。
結局調べると、mAgicマネージャが常駐していると無効にされているらしい。 http://www.iodata.jp/support/qanda/answer/s15469.htm
そうですか・・・Snipping Tool使う必要も無かった訳です。
mAgicマネージャを終了すると、普通にPrintScreenキーが使用可能になりました(--;)
もちろん、Snipping Toolでも可能
1)Snipping Tool起動
2)ESCキー
3)Ctrl + PrintScreen
4)画面全宅が選択されるので、範囲を選択して保存
2013年9月7日土曜日
Inkscape インストールの危険・・・?
画像編集ソフト Inkscape(インクスケープ)
http://inkscape.softonic.jp/
うっかりさんはインストールに要注意・・・(汗)
高速インストールは避け、必ず、カスタムでインストールしましょう。
スパイウェア・ウィルス等
1)ブラウザを乗っ取られたら以下参考:
Delta Toolbar削除アンインストール方法
http://www.geocities.co.jp/Playtown-Yoyo/6130/notes/delta-toolbar-search.htm
2)baidu ime これもいらない アンインストール
3)Babylon Toolbarバビロンツールバー アンインストール
はあ・・・--;
http://inkscape.softonic.jp/
うっかりさんはインストールに要注意・・・(汗)
高速インストールは避け、必ず、カスタムでインストールしましょう。
スパイウェア・ウィルス等
1)ブラウザを乗っ取られたら以下参考:
Delta Toolbar削除アンインストール方法
http://www.geocities.co.jp/Playtown-Yoyo/6130/notes/delta-toolbar-search.htm
2)baidu ime これもいらない アンインストール
3)Babylon Toolbarバビロンツールバー アンインストール
はあ・・・--;
2013年8月6日火曜日
【Java】外部プロセスをスレッド起動する
import java.io.IOException;
import java.util.ArrayList;
// 外部プロセスをスレッド起動するクラス
public class process {
private static final process process_ = new process();
process(){
}
public static void main(String[] args) {
//プロセス起動スレッド開始
PlayPro play = process_.new PlayPro();
play.start();
}
// プロセス起動スレッドクラス
class PlayPro extends Thread{
public void run() {
try {
//コマンド作成
ArrayList<String> list = new ArrayList<String>();
list.add("C:\\Program Files\\ffftp\\FFFTP.exe");
// list.add("");//引数なし
//プロセス開始
ProcessBuilder pb = new ProcessBuilder(list);
Process p = pb.start();
// プロセス終了待ち
int ret = p.waitFor();
System.out.println("戻り値:" + ret);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
import java.util.ArrayList;
// 外部プロセスをスレッド起動するクラス
public class process {
private static final process process_ = new process();
process(){
}
public static void main(String[] args) {
//プロセス起動スレッド開始
PlayPro play = process_.new PlayPro();
play.start();
}
// プロセス起動スレッドクラス
class PlayPro extends Thread{
public void run() {
try {
//コマンド作成
ArrayList<String> list = new ArrayList<String>();
list.add("C:\\Program Files\\ffftp\\FFFTP.exe");
// list.add("");//引数なし
//プロセス開始
ProcessBuilder pb = new ProcessBuilder(list);
Process p = pb.start();
// プロセス終了待ち
int ret = p.waitFor();
System.out.println("戻り値:" + ret);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
2013年6月30日日曜日
【Blogger】表のスタイル(CSS)を設定する
BloggerでCSSを設定するテストです。
サンプルテーブルを作って、CSSのスタイル適用の確認をします。
【テーブルサンプル】
------------------------------------------------------
何も指定していないただのテーブル
【スタイル適用後テーブル】
------------------------------------------------------
クラスを設定します。<table class="sample">
【手順】
------------------------------------------------------
1)管理画面から「テンプレート」→「カスタマイズ」ボタン押下
2)テンプレートデザイナーから「上級者向け」→「CSS追加」を選択
3)テーブル用のsampleクラスを作成していきます。
以下のような CSSを設定してみました。
------------------------------
/* テーブル幅設定 */
table.sample { width:50%; }
/* テーブル枠線とカラー設定 */
table.sample,.sample th,.sample td{
border: 1px solid #800080;
border-collapse:collapse;
}
/* タイトルの設定 */
.sample caption {
color:#000080;
font-weight:bold;
}
/* 項目行のカラー設定 */
.sample th{
color:#FFF;
background-color:#800080;
}
------------------------------
表を確認しながら設定出来きて便利です。
サンプルテーブルを作って、CSSのスタイル適用の確認をします。
【テーブルサンプル】
------------------------------------------------------
何も指定していないただのテーブル
項目1 | 項目2 | 項目3 |
---|---|---|
No1 | データ1 | 内容1 |
No2 | データ2 | 内容2 |
No3 | データ3 | 内容3 |
【スタイル適用後テーブル】
------------------------------------------------------
クラスを設定します。<table class="sample">
項目1 | 項目2 | 項目3 |
---|---|---|
No1 | データ1 | 内容1 |
No2 | データ2 | 内容2 |
No3 | データ3 | 内容3 |
【手順】
------------------------------------------------------
1)管理画面から「テンプレート」→「カスタマイズ」ボタン押下
2)テンプレートデザイナーから「上級者向け」→「CSS追加」を選択
3)テーブル用のsampleクラスを作成していきます。
以下のような CSSを設定してみました。
------------------------------
/* テーブル幅設定 */
table.sample { width:50%; }
/* テーブル枠線とカラー設定 */
table.sample,.sample th,.sample td{
border: 1px solid #800080;
border-collapse:collapse;
}
/* タイトルの設定 */
.sample caption {
color:#000080;
font-weight:bold;
}
/* 項目行のカラー設定 */
.sample th{
color:#FFF;
background-color:#800080;
}
------------------------------
表を確認しながら設定出来きて便利です。
2013年6月22日土曜日
【Java】外部のEXEを起動する
外部のプログラム起動したい
// 外部のEXE起動
private static void StartExe(){
try {
// ファイルが存在するか確認
File file = new File(" C:\\test.exe");
if ( !file.exists() ){
System.out.println("ファイルが存在しません!");
return;
}
// 独立したプロセスで実行
Runtime rt = Runtime.getRuntime();
rt.exec(file.getName());
} catch (IOException ex) {
ex.printStackTrace();
}
}
----------------------------------------------------------
■参考
//引数を指定して実行
//Java 仮想マシン内の空きメモリーの量を返します。
// 外部のEXE起動
private static void StartExe(){
try {
// ファイルが存在するか確認
File file = new File(" C:\\test.exe");
if ( !file.exists() ){
System.out.println("ファイルが存在しません!");
return;
}
// 独立したプロセスで実行
Runtime rt = Runtime.getRuntime();
rt.exec(file.getName());
} catch (IOException ex) {
ex.printStackTrace();
}
}
----------------------------------------------------------
■参考
//引数を指定して実行
exec(
String[] array)
//Java 仮想マシン内の空きメモリーの量を返します。
freeMemory()
2013年6月19日水曜日
【Java】列挙型 enumの定義方法
JavaのEnumにつまずいてしまった。
typedef enum eType{ DATA_TYPE_AO = 0, DATA_TYPE_RED }
と、 C言語のように単純に、上記のような列挙型を作成して番号を取得したいだけだったが、
ダメなのか…JavaではEnumの概念が変わるらしい…
という事で、「新規作成」→「列挙型」を作成する(あるんだ!)
これも面倒だと思ったが、こっちのが便利!欲しいモノをいくらでも足せる(笑)
【dataType.Java】
------------------------------------------------------------
public enum dataType {
DATA_TYPE_AO {
@Override public int getPos() {return 0; }
@Override public String getName() {return "青"; }
},
DATA_TYPE_RED {
@Override public int getPos() {return 1; }
@Override public String getName() {return "赤"; }
};
public abstract int getPos(); // 番号取得
public abstract String getName(); // 名前取得
}
------------------------------------------------------------
typedef enum eType{ DATA_TYPE_AO = 0, DATA_TYPE_RED }
と、 C言語のように単純に、上記のような列挙型を作成して番号を取得したいだけだったが、
ダメなのか…JavaではEnumの概念が変わるらしい…
という事で、「新規作成」→「列挙型」を作成する(あるんだ!)
これも面倒だと思ったが、こっちのが便利!欲しいモノをいくらでも足せる(笑)
【dataType.Java】
------------------------------------------------------------
public enum dataType {
DATA_TYPE_AO {
@Override public int getPos() {return 0; }
@Override public String getName() {return "青"; }
},
DATA_TYPE_RED {
@Override public int getPos() {return 1; }
@Override public String getName() {return "赤"; }
};
public abstract int getPos(); // 番号取得
public abstract String getName(); // 名前取得
}
------------------------------------------------------------
という列挙型を作ってみました。
使用方法は、
------------------------------------------------------------
dataType type = dataType.DATA_TYPE_AO ;
int no = type.getPos();
------------------------------------------------------------
no = 0 となる
ちなみに、定義のみて使いたい場合は以下で使える。
enum eType{ DATA_TYPE_AO, DATA_TYPE_RED }
ちなみに、定義のみて使いたい場合は以下で使える。
enum eType{ DATA_TYPE_AO, DATA_TYPE_RED }
2013年6月15日土曜日
【WordPress】TCDで子テーマを作る
忘れたころに必要になりそうなので、とりあえずメモっとく。
親テーマ:dynamic
子テーマ:dynamic_child
1)子テーマのディレクトリを作成する
親テーマと同じ階層に子テーマ用のディレクトリを作成する
wordpress/wp-content/themes/dynamic_child
2)子テーマのスタイルシートを作成する
wordpress/wp-content/themes/dynamic_child/style.css
【style.cssの内容】
--------------------------------------------------
@charset "utf-8";
/*
Theme Name:Dynamic Child
Description:Dynamicの子テーマ
Template:dynamic
Version:1
*/
@import url('../dynamic/style.css');
--------------------------------------------------
【説明】
@charset "utf-8"; ←日本語でメモを表示したいので追加(無くても良い)
Theme Name:Dynamic Child ←子テーマ名(必須)
Template:dynamic ←親テーマのディレクトリ(必須)
@import url('../dynamic/style.css'); ←親テーマのスタイルシートをインポート(※1)
※1:スタイルシートを1から作る場合は不要だが、一部のみ変更したいから
親テーマのスタイルを継承する
3)親テーマの改修
functions.php内のget_stylesheet_directory()メソッドを検索して「TEMPLATEPATH」に変更する
※get_stylesheet_directory()のままだと、プログラムが読み込むディレクトリが子テーマのディレクトリになるため、何もないフォルダを参照して起動時に画面が真っ白になる
4)管理画面のテーマオプションのフォーマットを適用する
これは色々方法がある…
案1)子テーマに親テーマの「admin/my_admin.css」を持ってくる
→子テーマでテーマオプションのスタイルもカスタマイズも出来る
案2)親テーマのfunctions.php内で自身のディレクトリを参照させるように改造
get_bloginfo('stylesheet_directory')をget_bloginfo('template_directory')に変更する
案3)子テーマでfunctions.phpを継承し、 my_admin_CSS()を作成して読み込ませるディレクトリを親テーマに変更する。
以上で子テーマが作成可能。かなり便利ではないでしょうか。
親テーマ:dynamic
子テーマ:dynamic_child
1)子テーマのディレクトリを作成する
親テーマと同じ階層に子テーマ用のディレクトリを作成する
wordpress/wp-content/themes/dynamic_child
2)子テーマのスタイルシートを作成する
wordpress/wp-content/themes/dynamic_child/style.css
【style.cssの内容】
--------------------------------------------------
@charset "utf-8";
/*
Theme Name:Dynamic Child
Description:Dynamicの子テーマ
Template:dynamic
Version:1
*/
@import url('../dynamic/style.css');
--------------------------------------------------
【説明】
@charset "utf-8"; ←日本語でメモを表示したいので追加(無くても良い)
Theme Name:Dynamic Child ←子テーマ名(必須)
Template:dynamic ←親テーマのディレクトリ(必須)
@import url('../dynamic/style.css'); ←親テーマのスタイルシートをインポート(※1)
※1:スタイルシートを1から作る場合は不要だが、一部のみ変更したいから
親テーマのスタイルを継承する
3)親テーマの改修
functions.php内のget_stylesheet_directory()メソッドを検索して「TEMPLATEPATH」に変更する
※get_stylesheet_directory()のままだと、プログラムが読み込むディレクトリが子テーマのディレクトリになるため、何もないフォルダを参照して起動時に画面が真っ白になる
4)管理画面のテーマオプションのフォーマットを適用する
これは色々方法がある…
案1)子テーマに親テーマの「admin/my_admin.css」を持ってくる
→子テーマでテーマオプションのスタイルもカスタマイズも出来る
案2)親テーマのfunctions.php内で自身のディレクトリを参照させるように改造
get_bloginfo('stylesheet_directory')をget_bloginfo('template_directory')に変更する
案3)子テーマでfunctions.phpを継承し、 my_admin_CSS()を作成して読み込ませるディレクトリを親テーマに変更する。
以上で子テーマが作成可能。かなり便利ではないでしょうか。
2013年6月1日土曜日
【Java】テキストエリアの折り返し
package gui;
// テーブル設定
public class TaxtArea extends JPanel{
public TaxtArea() {
super(new BorderLayout());
String str0 = "D未設定エリア未設定エリア未設定エリア未設定エリア未設定エリア";
String str1 = "テキストエリアの動作確認";
String str2 = "JTextArea JTextArea JTextArea JTextArea";
String str3 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
String[] columnNames = {"Default", "JTextArea", "JTextArea notレンダラ"};
Object[][] data = {
{str0, str1, str2}, {str0, str1, str2},
{str3, str3, str3}, {str3, str3, str3}
};
DefaultTableModel model = new DefaultTableModel(data, columnNames) {
@Override public Class<?> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
JTable table = new JTable(model);
table.setRowSelectionAllowed(true);
table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
table.setRowHeight(50);
JTableHeader tableHeader = table.getTableHeader();
tableHeader.setReorderingAllowed(false);
//2列目にテキストエリアレンダラセット
TableColumnModel mdl = table.getColumnModel();
TableColumn col = mdl.getColumn(1);
col.setCellRenderer(new TextAreaCellRenderer());
add(new JScrollPane(table));
setPreferredSize(new Dimension(320, 240));
}
// メイン
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
createAndShowGUI();
}
});
}
// フレーム設定
public static void createAndShowGUI() {
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e) {
e.printStackTrace();
}
JFrame frame = new JFrame("TITLE");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(new TaxtArea());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
// テキストエリアレンダラ
// 文字の折り返しを設定する
class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {
//public static class UIResource extends TextAreaCellRenderer implements javax.swing.plaf.UIResource {}
public TextAreaCellRenderer() {
super();
setLineWrap(true); // 折り返しON
setBorder(BorderFactory.createEmptyBorder(0,5,0,5));
//setName("Table.cellRenderer");
}
@Override public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
if(isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
}else{
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setFont(table.getFont());
setText((value ==null) ? "" : value.toString());
return this;
}
//Overridden for performance reasons. ---->
@Override public boolean isOpaque() {
Color back = getBackground();
Component p = getParent();
if(p != null) {
p = p.getParent();
} // p should now be the JTable.
boolean colorMatch = back != null && p != null && back.equals(p.getBackground()) && p.isOpaque();
return !colorMatch && super.isOpaque();
}
@Override protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
//String literal pool
//if(propertyName=="document" || ((propertyName == "font" || propertyName == "foreground") && oldValue != newValue)) {
if("document".equals(propertyName) || oldValue != newValue && ("font".equals(propertyName) || "foreground".equals(propertyName))) {
super.firePropertyChange(propertyName, oldValue, newValue);
}
}
@Override public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
@Override public void repaint(long tm, int x, int y, int width, int height) {}
@Override public void repaint(Rectangle r) {}
@Override public void repaint() {}
@Override public void invalidate() {}
@Override public void validate() {}
@Override public void revalidate() {}
//<---- Overridden for performance reasons.
}
// テーブル設定
public class TaxtArea extends JPanel{
public TaxtArea() {
super(new BorderLayout());
String str0 = "D未設定エリア未設定エリア未設定エリア未設定エリア未設定エリア";
String str1 = "テキストエリアの動作確認";
String str2 = "JTextArea JTextArea JTextArea JTextArea";
String str3 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
String[] columnNames = {"Default", "JTextArea", "JTextArea notレンダラ"};
Object[][] data = {
{str0, str1, str2}, {str0, str1, str2},
{str3, str3, str3}, {str3, str3, str3}
};
DefaultTableModel model = new DefaultTableModel(data, columnNames) {
@Override public Class<?> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
JTable table = new JTable(model);
table.setRowSelectionAllowed(true);
table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
table.setRowHeight(50);
JTableHeader tableHeader = table.getTableHeader();
tableHeader.setReorderingAllowed(false);
//2列目にテキストエリアレンダラセット
TableColumnModel mdl = table.getColumnModel();
TableColumn col = mdl.getColumn(1);
col.setCellRenderer(new TextAreaCellRenderer());
add(new JScrollPane(table));
setPreferredSize(new Dimension(320, 240));
}
// メイン
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
createAndShowGUI();
}
});
}
// フレーム設定
public static void createAndShowGUI() {
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e) {
e.printStackTrace();
}
JFrame frame = new JFrame("TITLE");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(new TaxtArea());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
// テキストエリアレンダラ
// 文字の折り返しを設定する
class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {
//public static class UIResource extends TextAreaCellRenderer implements javax.swing.plaf.UIResource {}
public TextAreaCellRenderer() {
super();
setLineWrap(true); // 折り返しON
setBorder(BorderFactory.createEmptyBorder(0,5,0,5));
//setName("Table.cellRenderer");
}
@Override public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
if(isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
}else{
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setFont(table.getFont());
setText((value ==null) ? "" : value.toString());
return this;
}
//Overridden for performance reasons. ---->
@Override public boolean isOpaque() {
Color back = getBackground();
Component p = getParent();
if(p != null) {
p = p.getParent();
} // p should now be the JTable.
boolean colorMatch = back != null && p != null && back.equals(p.getBackground()) && p.isOpaque();
return !colorMatch && super.isOpaque();
}
@Override protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
//String literal pool
//if(propertyName=="document" || ((propertyName == "font" || propertyName == "foreground") && oldValue != newValue)) {
if("document".equals(propertyName) || oldValue != newValue && ("font".equals(propertyName) || "foreground".equals(propertyName))) {
super.firePropertyChange(propertyName, oldValue, newValue);
}
}
@Override public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
@Override public void repaint(long tm, int x, int y, int width, int height) {}
@Override public void repaint(Rectangle r) {}
@Override public void repaint() {}
@Override public void invalidate() {}
@Override public void validate() {}
@Override public void revalidate() {}
//<---- Overridden for performance reasons.
}
2013年5月13日月曜日
【WordPress】カスタマイズの初歩
WordPressを始めたてみたが、テーマを自分の思うようにカスタマイズしたい!
とは、誰でも思うと思いますが、その手掛かりに中々たどり着かない?
解っている人には簡単なことでも、そのきっかけが難関だったりします。
HTMLの記述や、CSSのサイトは多くあるので、変更したい箇所を調べる方法について記載します。
■一番簡単かと思うのは、WEBブラウザで、変更したい箇所を確認する事です。
fierfoxを使用してfierbugで確認した場合、以下のようにクリックした箇所のHTMLとCSSの表示が出来ます。
また、ブラウザ上で変更をテストする事も可能です。
1)Firefoxをインストールする
http://www.mozilla.jp/firefox/
2)Firebugをインストールする
https://getfirebug.com/
3)Firefoxを起動し、サイトを表示する
4)Firefoxの右上にある虫マークをクリックする
→下部にTHMLを表示するエリアが表示されます
5)①矢印をクリックします。
6)サイト内のHTMLの知りたい箇所②をクリックします
7)【Firebug使用時のサンプル画面】にあるように、HTMLやCSSの箇所が表示されます
この画面上で直接変更して確認もできます。
例)color: #333333;
でカラーを変更するには「#333333;」の部分をクリックして、「#fff;」等に変更する
※カラーコードはこちらを参照下さい。
--------------------------------------------------------------
■おまけ
CSSで定義されている場合、指定されているTHMLのクラスやIDを知りたい場合も
同様の手順でHTML表示で確認出来ます。
PHPなどプログラミングされているソースは変更したい箇所を探すのも大変ですが、
IDなどでキーワードが解れば検索もしやすいと思います。
とは、誰でも思うと思いますが、その手掛かりに中々たどり着かない?
解っている人には簡単なことでも、そのきっかけが難関だったりします。
HTMLの記述や、CSSのサイトは多くあるので、変更したい箇所を調べる方法について記載します。
■一番簡単かと思うのは、WEBブラウザで、変更したい箇所を確認する事です。
fierfoxを使用してfierbugで確認した場合、以下のようにクリックした箇所のHTMLとCSSの表示が出来ます。
また、ブラウザ上で変更をテストする事も可能です。
【Firebug使用時のサンプル画面】
1)Firefoxをインストールする
http://www.mozilla.jp/firefox/
2)Firebugをインストールする
https://getfirebug.com/
3)Firefoxを起動し、サイトを表示する
4)Firefoxの右上にある虫マークをクリックする
→下部にTHMLを表示するエリアが表示されます
5)①矢印をクリックします。
6)サイト内のHTMLの知りたい箇所②をクリックします
7)【Firebug使用時のサンプル画面】にあるように、HTMLやCSSの箇所が表示されます
この画面上で直接変更して確認もできます。
例)color: #333333;
でカラーを変更するには「#333333;」の部分をクリックして、「#fff;」等に変更する
※カラーコードはこちらを参照下さい。
--------------------------------------------------------------
■おまけ
CSSで定義されている場合、指定されているTHMLのクラスやIDを知りたい場合も
同様の手順でHTML表示で確認出来ます。
PHPなどプログラミングされているソースは変更したい箇所を探すのも大変ですが、
IDなどでキーワードが解れば検索もしやすいと思います。
2013年5月12日日曜日
【WordPress】コンテンツスライダーの表示時間
WordPressのカスタマイズをする際、コンテンツ、スライダーの表示時間を変更をしたい。
スライダーの表示時間設定
デフォルトでは表示時間3,000msec(3秒)のため、
5秒にするにはpauseTimeを5000に設定する
ファイル:js/jquery.nivo.slider.js
animSpeed:切り替え時間(msec)
pauseTime:表示時間(mSec)
スライダーの表示時間設定
デフォルトでは表示時間3,000msec(3秒)のため、
5秒にするにはpauseTimeを5000に設定する
ファイル:js/jquery.nivo.slider.js
animSpeed:切り替え時間(msec)
pauseTime:表示時間(mSec)
2013年5月4日土曜日
【山ガール】第一回六甲~有馬
初山ガール実行しました!!
阪急芦屋側駅 集合 : 9:00
有馬温泉 到着 : 16:10
合計登山時間 : 7:10
ちなみに、最年少28歳、最年長40歳の4人での女子会ツアーです。
阪急芦屋側駅 集合 : 9:00
有馬温泉 到着 : 16:10
合計登山時間 : 7:10
ちなみに、最年少28歳、最年長40歳の4人での女子会ツアーです。
2013年4月30日火曜日
【山ガール】準備その②
山ガール出発2日前、服装をゴルフ用品で済まそう!という甘い考えは却下され・・・
やはり、靴は登山用のが必要のようです。
新たに、靴と靴下を購入しました(2万円)
靴下も専用のごついのが必要のため諦めてボーダーライン・・・
それ以外の柄を売っていないところが凄い!
そして、いのしし対策?としてウェストポーチも追加(急遽なのでゴルフ用)
金目のものはリュックに入れてはいけないらしい。猪に持って行かれるから(笑)
その他、行動食としておやつ!
軽い考えでの登山は甘いようだ。結構しっかり準備(お金)が必要かも?
しかし、もう大丈夫だろう・・・大丈夫であってほしい・・・
やはり、靴は登山用のが必要のようです。
新たに、靴と靴下を購入しました(2万円)
靴下も専用のごついのが必要のため諦めてボーダーライン・・・
それ以外の柄を売っていないところが凄い!
そして、いのしし対策?としてウェストポーチも追加(急遽なのでゴルフ用)
金目のものはリュックに入れてはいけないらしい。猪に持って行かれるから(笑)
その他、行動食としておやつ!
軽い考えでの登山は甘いようだ。結構しっかり準備(お金)が必要かも?
しかし、もう大丈夫だろう・・・大丈夫であってほしい・・・
2013年4月25日木曜日
【山ガール】の準備します
芦屋駅~六甲山のハイキング(4時間25分)・・・推定
女子会で飲んだくれてばっかりのため思いつで実施(笑)
日時:5月某日
参加者:飲んだくれ女子3名+ガイドの男性1名
参照:山ガールのための山歩きガイド
【準備】
初めての登山なので、念入りに用意します。
女子会で飲んだくれてばっかりのため思いつで実施(笑)
日時:5月某日
参加者:飲んだくれ女子3名+ガイドの男性1名
参照:山ガールのための山歩きガイド
【準備】
初めての登山なので、念入りに用意します。
【Qt】カスタムウィジェットの追加
■カスタムウィジェットの追加方法(スピンボックス)
既存のウィジェットから派生クラスを作成してカスタムウィジェットを作成する
※QwtScaleDrawでの記録を残す予定だったけど、折角なので違うものを作ってみました。
【サンプル】16進数スピンボックス
←カスタムウィジェット
←上記の値を10進数で表示するエディット
1)既存クラスを派生して任意の派生クラスを生成
※例に16進数のスピンボックスを使用
----------------------------------------------------------
#ifndef HEXSPINBOX_H
#define HEXSPINBOX_H
#include <QtGui>
#include <QSpinBox>
class QRegExpValidator;
// 16進数スピンボックスクラス
class HexSpinBox : public QSpinBox
{
Q_OBJECT
private:
// バリデータ
QRegExpValidator *valiDator;
public:
//コンストラクタ
HexSpinBox(QWidget *parent = 0)
:QSpinBox(parent)
{
// データ範囲設定
setRange(0,0x7FFF);
// バリデータ設定
valiDator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,8}"),this);
}
protected:
// バリデータマッチング確認
QValidator::State validate(QString &val, int &pos) const
{
return valiDator->validate(val,pos);
}
// 文字列から整数に変換
int valueFromText(const QString &val) const
{
//bool bRet;
//return val.toInt(bRet,16);
// 変換結果は未使用で0を返すためNULL
return val.toInt(NULL,16);
}
// 整数を16進数文字列に変換(英小文字を英大文字にする)
QString textFromValue(int val) const
{
return QString::number(val,16).toUpper();
}
};
#endif // HEXSPINBOX_H
----------------------------------------------------------
2)GUIフォーマットにSpinBoxウィジェットを追加して格上げする
①追加したクラス名
②追加ボタン押下
③追加された事を確認
④格上げボタン押下
※グローバルにする必要は特にないのでそのまま。
3)メインクラスにイベントスロットを追加して完了!
既存のウィジェットから派生クラスを作成してカスタムウィジェットを作成する
※QwtScaleDrawでの記録を残す予定だったけど、折角なので違うものを作ってみました。
【サンプル】16進数スピンボックス
←カスタムウィジェット
←上記の値を10進数で表示するエディット
1)既存クラスを派生して任意の派生クラスを生成
※例に16進数のスピンボックスを使用
----------------------------------------------------------
#ifndef HEXSPINBOX_H
#define HEXSPINBOX_H
#include <QtGui>
#include <QSpinBox>
class QRegExpValidator;
// 16進数スピンボックスクラス
class HexSpinBox : public QSpinBox
{
Q_OBJECT
private:
// バリデータ
QRegExpValidator *valiDator;
public:
//コンストラクタ
HexSpinBox(QWidget *parent = 0)
:QSpinBox(parent)
{
// データ範囲設定
setRange(0,0x7FFF);
// バリデータ設定
valiDator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,8}"),this);
}
protected:
// バリデータマッチング確認
QValidator::State validate(QString &val, int &pos) const
{
return valiDator->validate(val,pos);
}
// 文字列から整数に変換
int valueFromText(const QString &val) const
{
//bool bRet;
//return val.toInt(bRet,16);
// 変換結果は未使用で0を返すためNULL
return val.toInt(NULL,16);
}
// 整数を16進数文字列に変換(英小文字を英大文字にする)
QString textFromValue(int val) const
{
return QString::number(val,16).toUpper();
}
};
#endif // HEXSPINBOX_H
----------------------------------------------------------
2)GUIフォーマットにSpinBoxウィジェットを追加して格上げする
①追加したクラス名
②追加ボタン押下
③追加された事を確認
④格上げボタン押下
※グローバルにする必要は特にないのでそのまま。
3)メインクラスにイベントスロットを追加して完了!
2013年4月18日木曜日
【WordPress】ja.poファイルの作成
WordPressの日本語翻訳ファイル、ja.poからja.moファイルの生成でちょっとつまずいたのでメモ。。
【編集手順】
--------------------------------------------------------------
1)ja.poファイルはテキストエディタで開いて編集。
2)ja.moファイル生成に「Poedit」をインストール。
※CodeStyling Localizationプラグインでも出来るようだが、作成元が「Poedit」を使ってるので合わせる
ダウンロードサイト
①windows版 poedit-1.5.5-setup.exe をインストールして実行
②起動した「Poedit」のソーステキストに編集済みのja.poファイルをドラッグ&ドロップ。
③「保存」クリックでja.moファイル生成
--------------------------------------------------------------
と、とても簡単だが、既存の箇所で以下エラーが発生
1)エラー:'msgstr' is not a valid PHP format string, unlike 'msgid'. Reason: the character that
有効なPHP書式文字列ではありません。
良く見と確かにフォーマットが抜けている。
【誤】msgid "% comments"
【誤】msgstr "%件"
【正】msgid "%s comments"
【正】msgstr "%s件"
直せばエラーはななくなるが、既存で販売されてるテーマだ・・・
ここは「未確定」としてやり過ごし、そのうち、作成者にこそっと連絡しておこう
2)エラー: a format specification for argument 1 doesn't exist in 'msgstr'
議論1の書式仕様は「msgstr」に存在しません。
こちらは、msgidで"%s"使用に対し、msgstrで%s未使用で固定数を指定していたので直す。
直さなくても「未確定」でもいいか。。
以上でとりあえずコンパイル完了!
【編集手順】
--------------------------------------------------------------
1)ja.poファイルはテキストエディタで開いて編集。
2)ja.moファイル生成に「Poedit」をインストール。
※CodeStyling Localizationプラグインでも出来るようだが、作成元が「Poedit」を使ってるので合わせる
ダウンロードサイト
①windows版 poedit-1.5.5-setup.exe をインストールして実行
②起動した「Poedit」のソーステキストに編集済みのja.poファイルをドラッグ&ドロップ。
③「保存」クリックでja.moファイル生成
--------------------------------------------------------------
と、とても簡単だが、既存の箇所で以下エラーが発生
1)エラー:'msgstr' is not a valid PHP format string, unlike 'msgid'. Reason: the character that
有効なPHP書式文字列ではありません。
良く見と確かにフォーマットが抜けている。
【誤】msgid "% comments"
【誤】msgstr "%件"
【正】msgid "%s comments"
【正】msgstr "%s件"
直せばエラーはななくなるが、既存で販売されてるテーマだ・・・
ここは「未確定」としてやり過ごし、そのうち、作成者にこそっと連絡しておこう
2)エラー: a format specification for argument 1 doesn't exist in 'msgstr'
議論1の書式仕様は「msgstr」に存在しません。
こちらは、msgidで"%s"使用に対し、msgstrで%s未使用で固定数を指定していたので直す。
直さなくても「未確定」でもいいか。。
以上でとりあえずコンパイル完了!
2013年4月12日金曜日
【Qt】グラフ描画
Qtのグラフ描画
Qwtを使用してグラフの描画を行う。
----------------------------------------------------
インストール方法はこちらを参照させて頂いた。
----------------------------------------------------
しかし、軸の文字はdouble型固定となっているが
日付等文字列を設定したい・・・・
1)QwtScaleDrawの派生クラス(ScaleDraw)を作成する
2)drawLabelを作成し任意の文字列に変換する
あらかじめ、QListで軸の「文字リスト」を作成し、ScaleDrawにSetし、
描画要求時の軸値は1~連番として置く。
ラベル描画時に、軸値を任意の「文字リスト」に変換して表示する
正しいやり方かは解らないが、上手くいったのでよし・・・とする。
Qwtを使用してグラフの描画を行う。
----------------------------------------------------
インストール方法はこちらを参照させて頂いた。
----------------------------------------------------
しかし、軸の文字はdouble型固定となっているが
日付等文字列を設定したい・・・・
1)QwtScaleDrawの派生クラス(ScaleDraw)を作成する
2)drawLabelを作成し任意の文字列に変換する
あらかじめ、QListで軸の「文字リスト」を作成し、ScaleDrawにSetし、
描画要求時の軸値は1~連番として置く。
ラベル描画時に、軸値を任意の「文字リスト」に変換して表示する
正しいやり方かは解らないが、上手くいったのでよし・・・とする。
2013年4月8日月曜日
【Qt】ウィジェット操作(QTableWidget)
Qt TableWidget (キュート テーブルウィジェット)
// メイン
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// ラベル1のlineEditに文字を表示する。
ui->lineEdit->setText(“TEST”);
//——————————
//ボタンイベント登録
//——————————
QObject::connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(clickPshBtn()));
//——————————
//テーブル生成
//——————————
QTableWidget* tblWdgt;
tblWdgt = ui->tableWidget;
// クリア
tblWdgt->clear();
// テーブルの列数、行数を設定する
tblWdgt->setColumnCount( D_MAX_COL );
tblWdgt->setRowCount( D_MAX_ROW );
// 列のタイトル設定
tblWdgt->setHorizontalHeaderLabels(
QStringList()
<< tr(“Title 1″)
<< tr(“Title 2″ )
<< tr(“Title 3″ )
<< tr(“Title 4″ )
<< tr(“Title 5″) );
//——————————
//テーブルプロパティ設定
//——————————
//セル選択不可にする場合
tblWdgt->setSelectionMode(QAbstractItemView::NoSelection);
//いわゆるExcelみたいなタイプ。Ctrl+クリックで飛び地の選択も可能。
tblWdgt->setSelectionMode(QAbstractItemView::ExtendedSelection);
//ダブルクリックでの編集不可にする
tblWdgt->setEditTriggers(QAbstractItemView::NoEditTriggers);
//カラム[0]の列幅設定
tblWdgt->setColumnWidth(COL_1,100);
// 選択したセルの色をデフォルトのグレーから変更する
// 親のカラーパレットを取得し変更する
//Qt::red, Qt::blue, Qt::green, Qt::yellow, Qt::magenta, Qt::cyan
QPalette palette = tblWdgt->palette();
palette.setColor(QPalette::Highlight, Qt::red);//現在選択されている項目の背景色
palette.setColor(QPalette::HighlightedText,Qt::green);//現在選択されている項目の文字色
tblWdgt->setPalette(palette);
}
//追加ボタンイベント
void MainWindow::clickPshBtn()
{
QTableWidget* tblWdgt = ui->tableWidget;
//最大行数の場合、先頭行の削除
if(m_row >= D_MAX_ROW){
tblWdgt->removeRow(0);
m_row–;
//最終行追加
tblWdgt->insertRow(m_row);
}
//データを追加する
count++;
QTableWidgetItem *item[COL_MAX];
item[COL_1] = new QTableWidgetItem(QString(“data1 #%8.0f”).arg(0.1));
item[COL_2] = new QTableWidgetItem(QString(“data2 #%1″).arg(count));
item[COL_3] = new QTableWidgetItem(QString(“data3 #%1″).arg(count));
item[COL_4] = new QTableWidgetItem(QString(“data4 #%1″).arg(count));
item[COL_5] = new QTableWidgetItem(QString(“data5 #%1″).arg(count));
for(int ncol=0;ncol<COL_MAX;ncol++){ tblWdgt->setItem(m_row, ncol, item[ncol]);}
// 指定したアイテム(行)までスクロール(列は未指定)
QTableWidgetItem *pItem = tblWdgt->item( m_row, 0 );
tblWdgt->scrollToItem( pItem );
//行インクリメント
m_row++;
}
【Qt】文字列操作
■文字列操作(Qstring)
——————————————————————————–
QString str = “A”
str.append(“B”); // 文字の追加 = “AB”となる
str.replace(“B”,”CDE”); // 文字の置換 = “ACDE”となる
//フォーマット
QString str = QString(“%1-%2-%3″).arg(“2013″).arg(“3″).arg(“18″); // 2013-3-18
//浮動小数点の「0」パディング(全体数,Flort型,小数点以下の桁数)
double m_presentTime = 0.1;
//---- 表示 ----
00.10[sec]
■文字列リスト操作(QstringList)
——————————————————————————–
// リスト作成
QstringList list;
list << “文字1″;
list << “文字2″;
//文字列を「,」で区切ってリストに保存
QString str = “1,2″;
QStringList list = str.split(‘,’);
//リストを正数に変換してフォーマット(“01-002″)
str = QString(“%1-%2″).arg(list[1],2.10,QChar(’0′)).arg(list[3],3.10,QChar(’0′));
■文字列型変換
——————————————————————————–
// QStringからChar
QString.toLocal8Bit().data();
——————————————————————————–
QString str = “A”
str.append(“B”); // 文字の追加 = “AB”となる
str.replace(“B”,”CDE”); // 文字の置換 = “ACDE”となる
//フォーマット
QString str = QString(“%1-%2-%3″).arg(“2013″).arg(“3″).arg(“18″); // 2013-3-18
//浮動小数点の「0」パディング(全体数,Flort型,小数点以下の桁数)
double m_presentTime = 0.1;
QString("%1[sec]").arg(m_presentTime,5,'f',2,QChar('0'))
//---- 表示 ----
00.10[sec]
■文字列リスト操作(QstringList)
——————————————————————————–
// リスト作成
QstringList list;
list << “文字1″;
list << “文字2″;
//文字列を「,」で区切ってリストに保存
QString str = “1,2″;
QStringList list = str.split(‘,’);
//リストを正数に変換してフォーマット(“01-002″)
str = QString(“%1-%2″).arg(list[1],2.10,QChar(’0′)).arg(list[3],3.10,QChar(’0′));
■文字列型変換
——————————————————————————–
// QStringからChar
QString.toLocal8Bit().data();
2013年3月1日金曜日
ポリシー
◆プライバシーポリシー
本サイトでは、Google Adsense社の広告を配信しています。
このため、広告配信プロセスの中でデータを収集するために、
Cookieやウェブビーコンを使用しています。
もし、第三者にデータ送信を行いたくない場合は、
ブラウザのCookie機能をオフにしてアクセスしてください。
詳しくは、Adsense広告の、公式プライバシーポリシーをご覧ください。
http://www.google.com/intl/ja/privacy.html
登録:
投稿 (Atom)