これが、テクニックさっ!
Last Update:1997/11/17
というわけで始まってしましました。(なにが)
当たり前だけど知っている便利とかそんな感じのテクニックを満載^H^H少しだけおいておきます。
あなたの役に立つといいですね。(^^;)
・Visual Basic でレジストリを利用しよう
Visual Basic で設定を保存するときにGetSettingとか、
SaveSettingとか使っている人。
かっこ悪いし、わしもそんなソフトは嫌なのでやめましょうよ。
ちゅーことでレジストリ読み書きの標準モジュールを捨てておきます。
お役に立てると嬉しいです。
レジストリ読み書きモジュール Version 1.01
しかし Microsoft もあれだな。あの名前は許せないものがあるよね。(笑)
・閏年を判定しよう
閏年。知ってますか?4年に一度のあれです。
実は100で割れる年は閏年にならないんですね〜。
さらに400で割れる年は閏年になるんですね〜。
まあそこまで生きられる保証はないけど、
対応しておくことにプログラマとしてのポリシーというかスピリットというかがありますね。
ということでその辺の判定など・・・
§Visual Basic編§
Dim uruu As Integer
Dim Year,Month,Day As Integer
Dim DAYTBL(11) As Integer
DAYTBL(0) = 31
DAYTBL(1) = 28
DAYTBL(2) = 31
DAYTBL(3) = 30
DAYTBL(4) = 31
DAYTBL(5) = 30
DAYTBL(6) = 31
DAYTBL(7) = 31
DAYTBL(8) = 30
DAYTBL(9) = 31
DAYTBL(10) = 30
DAYTBL(11) = 31
if Month = 2 And _
(Year Mod 4 = 0 And Year Mod 100 <> 0) And Year Mod 400 = 0 Then
uruu = 1
Else
uruu = 0
End If
Year年 Month月の最終日 = DAYTBL(Month - 1) + uruu
・DOSのCで文字列を入力しよう
あれれ?いまだにgets()ですか?
そりゃかわいそうだ。ってことで、そいう人を救済すべく立ち上がった。
# 大嘘
そうです。嘘をついていました。自分が楽をしたかっただけなんです。(核爆)
うふふ、今すぐ楽にしてあげるよ。さぁ、恐がらないで。(ぉ
ということで編集可能文字列入力モジュール for Turbo C++ 4.0 です。
編集可能文字列入力モジュール Version 2.45 for Turbo C++ 4.0
っていうか、ごちゃまぜにいろんなものが入っているので自分で整理してね。ぉぃ
えっ、使い方?んなもんないよ。(核爆) ヘッダとか見ればある程度書いてるからそれ使って。
・リストビューの隠し(?)スタイル
情報を隠し過ぎだぞMicrosoft。ということで、なんだか見つけるのにすげー苦労
してしまったので一応メモっとこうとか考えてみるテスト。
切って張ると Visual Basic で使えるよっ。わぁ、お得だね。
拡張リストビュースタイル
< 宣言 >
Private Const LVM_FIRST = &H1000
Private Const LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54
Private Const LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55
Private Const LVS_EX_GRIDLINES = &H1 'グリッドライン
Private Const LVS_EX_SUBITEMIMAGES = &H2 '
Private Const LVS_EX_CHECKBOXES = &H4 'チェックボックス
Private Const LVS_EX_TRACKSELECT = &H8 '
Private Const LVS_EX_HEADERDRAGDROP = &H10 '
Private Const LVS_EX_FULLROWSELECT = &H20 '1行全選択
Private Const LVS_EX_ONECLICKACTIVATE = &H40 'シングルクリックでアクティブ
Private Const LVS_EX_TWOCLICKACTIVATE = &H80 'ダブルクリックでアクティブ
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
< 実行 >
Call SendMessage(hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0 , ByVal [拡張スタイル])
< 取得 >
[拡張スタイル] = SendMessage(hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0 , 0)
・マシンの種類を判別する。
どこかに落ちてたんだけど、どこだか忘れて探すのも面倒なのでとりあえず
メモっておく。
< 宣言 >
'キーボードタイプ判別API
Declare Function GetKeyboardType Lib "user32" (ByVal nTypeFlag As Long) As Long
'GetKeyboardTypeの戻り値
Public Const KBT_IBM_PCAT_101 = 0 '101
Public Const KBT_IBM_PCAT_AX = 1 'AX
Public Const KBT_IBM_PCAT_106 = 2 '106
Public Const KBT_IBM_PCAT_5576_23 = 3 'IBM-5576 002/003
Public Const KBT_IBM_PCAT_5576_1 = 4 'IBM-5576 001
Public Const KBT_PC9800_PUB = &HD01 'PC-9800一般
Public Const KBT_PC9801VXUXXLXL2 = &HD02 'PC-9801 VX/UX、PC-98XL/XL2用
Public Const KBT_PC98XLXL2_HIGH = &HD03 'PC-98XL/XL2用(ハイレゾ)
Public Const KBT_PC9800_LAPTOP = &HD04 'PC-9800ラップトップ
< 実行 >
Select Case GetKeyboardType(1)
Case KBT_IBM_PCAT_101
Label2.Caption = "IBM PC/AT互換機"
Label4.Caption = "101キーボード"
Case KBT_IBM_PCAT_AX
Label2.Caption = "IBM PC/AT互換機"
Label4.Caption = "AXキーボード"
Case KBT_IBM_PCAT_106
Label2.Caption = "IBM PC/AT互換機"
Label4.Caption = "106キーボード"
Case KBT_IBM_PCAT_5576_23
Label2.Caption = "IBM PC/AT互換機"
Label4.Caption = "IBM-5576 002/003キーボード"
Case KBT_IBM_PCAT_5576_1
Label2.Caption = "IBM PC/AT互換機"
Label4.Caption = "IBM-5576 001キーボード"
Case KBT_PC9800_PUB
Label2.Caption = "NEC PC-98互換機"
Label4.Caption = "PC-9800一般キーボード"
Case KBT_PC9801VXUXXLXL2
Label2.Caption = "NEC PC-98互換機"
Label4.Caption = "PC-9801 VX/UX、PC-98XL/XL2用キーボード"
Case KBT_PC98XLXL2_HIGH
Label2.Caption = "NEC PC-98互換機"
Label4.Caption = "PC-98XL/XL2用キーボード(ハイレゾ)"
Case KBT_PC9800_LAPTOP
Label2.Caption = "NEC PC-98互換機"
Label4.Caption = "PC-9800ラップトップ用キーボード"
Case Else
Label2.Caption = "機種不明"
Label4.Caption = "キーボードタイプ不明"
End Select
戻る