Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Form_KeyPress Добавлено: 09.02.07 13:03  

Автор вопроса:  20vek
Добрый день!
В проекте в Form_KeyPress, установлены значения для вывода цифр в Label. Так же на форме есть TextBox.
Проблема, даже если вводить цифры в TextBox. Они печатаются в Label тоже.
Надо прописать что-то в Form_KeyPress типа;
If    TextBox есть фокус    Then exit sub
, но что, не пойму, фокус ведь уже на TextBoxе.

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #1 Добавлено: 09.02.07 16:41
Кхе... Нифига не понял.
Кажись ты имел ввиду :)
Private Sub Text1_Change()
    Label1.Caption = Text1.Text
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #2 Добавлено: 09.02.07 17:03
Нет не это. Спасибо, но ошибку уже нашел,
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57
    picNumber_MouseDown (KeyAscii - 48), vbLeftButton, 0, 0, 0

picNumber_MouseDown - вот она, нужно было на прямую в Label , А не выеживатся.

Ответить

Номер ответа: 3
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #3 Добавлено: 09.02.07 17:15
Может по ходу еще на один вопрос ответите?
Программа возводит в степень число, объявленна как DOUBLE. Если возвести 1000000 в степень 100,
то ошибка №6 переполнение. А в стандартном считает. Может потому, что он не VB написан?

Ответить

Номер ответа: 4
Автор ответа:
 ENIX



ICQ: 238819245 

Вопросов: 9
Ответов: 76
 Профиль | | #4 Добавлено: 09.02.07 19:59
+1 мне тоже интересно, возможно ли создание типов по типу BigInteger. Где-то давно встречал такое, и связано было с получения обьема жесткого диска. Создавался поль-ий тип данных, а как дальше...
Может тут нужно работать напрямую с паматью через CopyMemnory и грузить байтики в наш тип, поясните кто сталкивался с этим...! плз

Ответить

Номер ответа: 5
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #5 Добавлено: 10.02.07 15:28
2 20vek,ENIX Люди, вы чего? Щас я накатаю модуль с длинной арифметикой, выложу...

Ответить

Номер ответа: 6
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #6 Добавлено: 10.02.07 18:51
Ждемс...

Ответить

Номер ответа: 7
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #7 Добавлено: 10.02.07 20:59
Дописать не успел
Вот что пока есть

Option Explicit

Private Const MeasSys As Long = 10000 'Best system - I don't recommend to change it

Public Type BigInt 'Theoretically saves numbers up to MeasSys^MaxLong (= 10^8589934588)
    A() As Integer
    C As Long
End Type

Public Function DeSerialize(S As String) As BigInt
    Dim I As Long, C As Long
    Dim A0 As Long
    
    ;DeSerialize.C = Len(S) \ 4
    If Len(S) Mod 4 <> 0 Then DeSerialize.C = DeSerialize.C + 1
    ReDim DeSerialize.A(DeSerialize.C - 1)
    
    I = Len(S) - 3
    Do
        If I <= 0 Then
            A0 = CLng(Mid(S, 1, 3 + I))
            ;DeSerialize.A(C) = A0
            Exit Do
        Else
            A0 = CLng(Mid(S, I, 4))
            ;DeSerialize.A(C) = A0
        End If
        I = I - 4
        C = C + 1
    Loop
End Function

Public Function Serialize(N As BigInt) As String
    Dim I As Long
    
    For I = 0 To N.C - 1
        If I = N.C - 1 Then
            Serialize = CStr(N.A(I)) & Serialize
        Else
            Serialize = Format(N.A(I), "0000";) & Serialize
        End If
    Next
End Function

Public Function CreateBigInt(Optional FirstVal As Long = 0) As BigInt
    CreateBigInt = DeSerialize(CStr(FirstVal))
End Function

Public Sub LetBigInt(N As BigInt, FirstVal As Long)
    N = DeSerialize(CStr(FirstVal))
End Sub

Public Sub BIMulNum(Bi As BigInt, Num As Long)
    Dim I As Long
    Dim Tmp As Long
    Dim Lst As Long
    
    For I = 0 To Bi.C - 1
        Tmp = Bi.A(I) * Num + Lst
        Bi.A(I) = Tmp Mod MeasSys
        Lst = Tmp \ MeasSys
    Next
    
    If Lst <> 0 Then
        ReDim Preserve Bi.A(Bi.C)
        Bi.A(Bi.C) = Lst
        Bi.C = Bi.C + 1
    End If
End Sub

Ответить

Номер ответа: 8
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #8
Добавлено: 11.02.07 11:26
Вот ссылка на статью Реализация длинной арифметики на Visual Basic’е
http://www.vbnet.ru/articles/showarticle.aspx?id=92

Ответить

Номер ответа: 9
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #9 Добавлено: 11.02.07 14:46
За статью спасбо,
но вот вопрсик к ней.
Она посчитает и выдаст в строку 100000000......0.
А как теперь привести к читаемому виду как в
стандартном калькуляторе например так
1,e+2000

Ответить

Номер ответа: 10
Автор ответа:
 20vek



Вопросов: 10
Ответов: 71
 Профиль | | #10 Добавлено: 11.02.07 15:28
Пост 9 (но вот вопросик к ней)
Вопрос снят извените. Еще раз всем спасибо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам