redfox63のプロフィール
- ベストアンサー数
- 1325
- ベストアンサー率
- 71%
- お礼率
- 0%
- 登録日2006/10/16
- ポインタのアドレスについて
こんばんわ。 以下のようなchar型の配列を直接Fooにキャストして利用したいのですが、 Foo構造体のdataにはint型の配列として利用したいのですが可能でしょうか? char型の配列を直接Fooにキャストした後にdataの部分を操作すれば 可能かと思っていたのですがうまくいきません。 foo->data=new int*[2]; としてしまうとbytData[8]が破壊されてしまいます。 このような方法は無理でしょうか? struct Foo { int tenmp ; int count ; int** data ; } ; char bytData[ 4 + 4 + 8 ] = { 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, } ; int _tmain(int argc, _TCHAR* argv[]) { Foo* foo ; foo = reinterpret_cast< Foo* >( bytData ) ; foo->data = (int**)&bytData[ 8 ] ; // ここがダメ。 printf( "%d\n", *foo->data[ 0 ] ) ; // 3 printf( "%d\n", *foo->data[ 1 ] ) ; // 4 return 0 ; }
- ベストアンサー
- C・C++・C#
- TeijigoTeatime
- 回答数4
- EXCEL VBA UserForm のご質問
よろしくお願いします ユーザーフォームに決定ボタンで、テキストボックスを任意の数追加しました。 追加されたテキストボックスにD1.D2.D3.D4・・・と名前をつけ、それぞれに 1.2.3と数値を記入し、 登録ボタンをクリックした後ワークシートkeyplanの 指定したセルD30~G30へ代入させようとしたところ、 「変数が定義されていません」となってしまいます。 Nameの付け方が悪いのでしょうか。転機の仕方が悪いのでしょうか。 マクロを勉強し始めて日が浅いので、対処の方法がわかりません。 ご回答よろしくお願いします。 Option Explicit Private Sub UserForm_Initialize() worksheets("keyplan").Select End Sub Private Sub 決定_Click() Dim txt As Variant Dim i As Integer 'テキストボックスを配置 i = nyuryokubox() For i = 1 To i Set txt = Me.Controls.Add("Forms.Textbox.1", , True) With txt .Width = 20 .Height = 18 .Top = 300 .Left = 1 + (.Width + 80) * (i + 1) .BorderColor = &H666666 .BorderStyle = fmBorderStyleSingle .Font.Size = 15 .Name = "D" & i End With Next End Sub Private Sub 登録_Click() With worksheets("keyplan").Select .Range("D30").Value = D1.text .Range("E30").Value = D2.text .Range("F30").Value = D3.text .Range("G30").Value = D4.text End With End Sub 変数 i にはテキストボックス(nyuryokubox)に直接数値を入れるようにしています
- ベストアンサー
- Visual Basic
- wind14
- 回答数2
- PreviewKeyDownについて
Form1にButton1とTextBox1、TextBox2、TextBox3を配置します。 TextBox2はMultiLineにします。 プログラムを実行し、1度目は4などを入れ「Enterキー」を押し、間違えます。 TextBox3には「不正解」と表示されます。 次に、textbox2に正解の3を入れ「Enterキー」を押しても「正解」とは表示されません。 私の頭では「正解」と表示されると思うのですが、どこがおかしいのでしょうか。 もう一つ、TextBox2はEnterキーを押したときの「ピン」という警告音が出ないようにMultiLineにしていますが、MultiLineにせず、警告音を消す方法はありますか。宜しくお願いいたします。 以下はコードです。 Dim Problem As String Dim RightAnswer As String Dim Answer As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load problem = "1+2=" RightAnswer = "3" End Sub Private Sub TextBox2_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles TextBox2.PreviewKeyDown If e.KeyCode = Keys.Enter Then Answer = Me.TextBox2.Text If Answer = RightAnswer Then Me.TextBox3.Text = "正解" Else Me.TextBox2.Text = "" Me.TextBox3.Text = "不正解" Me.TextBox2.Focus() End If End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.TextBox1.Text = Problem Me.TextBox2.Focus() End Sub
- ベストアンサー
- Visual Basic
- nebokken
- 回答数1
- ExcelのToggleButtonを排他的に。。
師も走りまわる12月。。皆様(師)も走りまわっていることでしょう。 私は。。。走りません、はい。 本題です。 ExcelのVBAでToggleButtonを排他的に使いたいのです。 調べるとオプションボタンになさいと書かれてはいるのですが・・・。 ワークシート上にToggleButton1~3があります。 1を押す(凹)と“処理A”,もう一度押す(凸)と“処理Z” 2 同上 “処理B”, 同上 3 同上 “処理C”, 同上 以下のコードでなんとなく動くのですが,排他的動作の際には,TrueなToggleButton#の動作をおこなってしまいます。 Excel2007,Windows7です。 師の皆様の良い御提案が御座いましたら御教示下さい。 ----ボタンがあるシートモジュールに記載---------------------------------------- Option Explicit Dim strCode As Variant Private Sub ToggleButton1_Click() If ToggleButton1.Value = False Then strCode = "処理中Z" ' Debug.Print "AからZに戻します。" Else strCode = "処理中A" ' Debug.Print "Aを押しました。" ToggleButton2.Value = False ToggleButton3.Value = False End If 'Debug.Print "Aでの処理をします。" Call 処理(strCode) 'Debug.Print "Aから処理をしました。" End Sub Private Sub ToggleButton2_Click() If ToggleButton2.Value = False Then strCode = "処理中Z" ' Debug.Print "BからZに戻します。" Else strCode = "処理中B" ' Debug.Print "Bを押しました。" ToggleButton1.Value = False ToggleButton3.Value = False End If 'Debug.Print "Bでの処理をします。" Call 処理(strCode) 'Debug.Print "Bから処理をしました。" End Sub Private Sub ToggleButton3_Click() If ToggleButton3.Value = False Then strCode = "処理中Z" Else strCode = "処理中C" ToggleButton1.Value = False ToggleButton2.Value = False End If Call 処理(strCode) End Sub Sub 処理(strCode) Dim i As Long Dim Start As Single Dim Finish As Single Start = timer i = 0 'Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For i = 1 To 1000 i = i + 1 Cells(2, 1).Value = strCode & i Next i Application.Calculation = xlCalculationAutomatic 'Application.ScreenUpdating = True Cells(1, 1).Value = strCode Finish = timer Cells(3, 1).Value = Format$(Int((Finish - Start) * 10 ^ 4 + 0.5) / 10 ^ 4) End Sub --------------------------------------------------------------------------- おまけ: 上記サンプルを作ってみましたが,ToggleButton1だけ相対的に処理速度が速いです・・・。 なぜなんでしょう??
- ベストアンサー
- Visual Basic
- mayu1992
- 回答数4
- VS treeviewをIndex指定で展開
お世話になります VS2010 C++/CLIで開発しております treeviewの+-展開閉をプログラム側で制御したいのですが、教えていただけないでしょうか。 自分でググって。ノード名で指定する方法は判ったのですが、 今回教えていただきたいのはIndexで指定して開閉する方法となります。 機能としては、複数の親ノードに対して、初期値として、初めから展開して居る物と、 閉じている物を起動時&リセット時に設定して、その状態で表示する。