Вопросы, вопросы и вопросы

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Вопросы, вопросы и вопросы

Сообщение MIT » 28.11.2006 (Вт) 18:08

1. Как пользоваться событием DragDrop и DragOver?
2. Как избавиться от моргание стандартного грида при прокручивании списка?
3. Как вывести PopUp по нажатии кнопки мыши?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 28.11.2006 (Вт) 18:34


MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 29.11.2006 (Ср) 18:36

Ramzes
Это про поиск?
Я ничего не нашел!
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 29.11.2006 (Ср) 18:41

MIT писал(а):Ramzes
Это про поиск?
Я ничего не нашел!


Ты просто не там искал )))

Вообще в примерах с мсдн (101 samples) есть drag drop - я по ним учился. Там вроде нормально написано.
Моя дверь всегда открыта, если она не закрыта.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 29.11.2006 (Ср) 19:06

Dmitriy Solomnikov
А я чето забыл про примеры из MDSN...
Спасибо что напомнил!
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 03.12.2006 (Вс) 22:33

Вот появилась еще одна проблемка
Есть файл, в нем записаны следующие данные

42,119,161
132,4,16
38,55,57
134,68,110
215,142,16
76,117,183
189,190,198
94,112,114

и эти числа надо поместить в массив структуры
structure c
dim r,g,b as intrger
end structure

т.е. надо
dim arr(4) as c
arr(0).r = 42
arr(0).g = 119
arr(0).b = 161
и т.д.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 04.12.2006 (Пн) 8:41

MIT, а идеи какие-нить по реализации сего уже есть или неужто нет?
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 04.12.2006 (Пн) 14:28

Почему же нет? Есть, доже работает,но очень медленно и довольно глючно, т.к. изначально делал для строк вида
123 123 123 123 ...
а под запятые переделать не получилось...
Код: Выделить всё
            Do Until EOF(FN)
                str = LineInput(FN)
                str = Trim(str)
                If Mid(str, 1, 1) <> " " And Mid(str, 1, 1) <> vbTab And Mid(str, 1, 1) <> "/" And Trim(str) <> "" Then
                    For j = 1 To Len(str)
                        c = Mid(str, j, 1)
                        If c = "/" Then Exit For
                        If c <> "/" And c <> " " And c <> vbTab Then
                            newL = False
                            temp &= c

                            If j = Len(str) Then GoTo go1
                        Else
go1:                        If Not newL Then
                                newL = True
                                AddToArray(temp)

                                temp = ""
                            End If
                        End If
                    Next
                End If
                i += 1
            Loop


код конечно очень кривой и писался за полчаса
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 04.12.2006 (Пн) 14:45

глючно - это по моему не то слово... это перл под названием "Как не надо кодить" Особливо в приминениее к NET
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 04.12.2006 (Пн) 14:54

Писал не я и под VB6
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 04.12.2006 (Пн) 15:01

Ну так напиши сам... делов то...

1. Считать строку с файла
2. Поделить ее Split'ом на подстроки
3. Элементы полученного массива присвоить соответствующим членам структуры, не забыв преобразовать к целым числам

и так далее по всем строкам
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 09.12.2006 (Сб) 0:12

!Viper!
Спасибо!!!
А как узнать подключен ли комп к Инету, его IP и имя?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 09.12.2006 (Сб) 7:25

MIT писал(а):!Viper!
Спасибо!!!
А как узнать подключен ли комп к Инету, его IP и имя?


В Поиск. Или даже в FAQ
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 22.12.2006 (Пт) 19:00

!Viper!
Поиск не помог, сам сделал.
Как можно узнать индекс выделенного элемента в ListView`е? Фишка с SelectedItems(0).index не катит.
_____________
Есть следующие структуры:
Public Structure Tabs
Dim TabName As String
Dim TabOffset As Integer
Dim Data() As Str
End Structure
Public Structure Str
Dim StrName As String
Dim Offset As Integer
Dim Value As String
End Structure

надо произвести поиск в массиве "As Tabs" элемента TabName на соответствие строки. Перебором очень медленно, а Array.Find по-моему вообще хрень или я чето не догнал.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.12.2006 (Сб) 7:33

Надо полагать это два вопроса?

1. В классе ListView имеется два свойства: SelectedIndices - содержит коллекцию индексов выделенных элементов и SelectedItems - коллекция выделенных элементов. Пользуясь этими свойствами весьма просто и изящно можно получить все выделенные элементы.
2. Array.Find весьма рулит в деле поиска. Просто надо правильно применить.

Резюме: код в студию, как пробовал, что не получилось.
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 26.12.2006 (Вт) 23:00

!Viper!
С Array.Find я кажется и сам разобрался, а на счет SelectedItems - глючит. Если в событии ListView1_SelectedIndexChanged написать msgbox(ListView1.SelectedItems(0).index), то в первый раз он покажет индекс, а в последующие ListView1.SelectedItems=nothing!!! Может не в том событии ловить надо?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 28.12.2006 (Чт) 23:34

Да, и еще: объясните мне как использовать Popup?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.12.2006 (Пт) 8:21

По первому вопросу: вдумайси что показывает ListView1.SelectedItems(0).index и ListView1.SelectedItems

По второму: где popup должен использоваться и какие проблемы?
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 29.12.2006 (Пт) 12:16

!Viper! писал(а):По первому вопросу: вдумайси что показывает ListView1.SelectedItems(0).index и ListView1.SelectedItems

:?:
на счет popup: должен появиться на ListView`e. Как пользоваться им в принципе? Почитал MDSN, нашел несколько примеров, но все сделаны через одно место. Понял только что надо в события ListView`а добавить новое событие...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.12.2006 (Пт) 14:19

нды... В ListView, как и в любом другом контроле есть события MоuseDown и MouseUp, проверяешь в одном из них нажатие правой копки и вызываешь экземпляр класса ContextMenuStrip, в который входят нужные тебе пункты.
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 29.12.2006 (Пт) 20:02

!Viper!
а про "вызываешь экземпляр класса ContextMenuStrip" я даже не задумывался...
вот еще возникла такая проблема:

Код: Выделить всё
Public Declare Function GetWindowExtEx Lib "gdi32" (ByVal hdc As Integer, ByVal lpSize As Size) As Integer
Public Declare Function GetWindowOrgEx Lib "gdi32" (ByVal hdc As Integer, ByVal lpPoint As POINTAPI) As Integer
Public Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Integer) As Integer

Public Structure SIZE
   Dim cx As Integer
   Dim cy As Integer
End Structure

Dim s As SIZE,temp As Integer
hwnd = FindWindow(vbNullString, Caption)
temp = GetWindowExtEx(hwnd, s)'ругается на эту
temp = GetWindowOrgEx(hwnd, p)'и на эту строку

'так тоже самое
'temp = GetWindowExtEx(GetDC(hwnd), s)
'temp = GetWindowOrgEx(GetDC(hwnd), p)


что не так?
ошибка : A call to PInvoke function 'WinMover!WinMover.mdlMain::GetWindowExtEx' has unbalanced the stack...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 30.12.2006 (Сб) 7:43

странная ругань... Но в объявлениях должно быть ByRef lpSize As SIZE и ByRef lpPoint As POINTAPI.
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 30.12.2006 (Сб) 10:45

!Viper!
Точно. Но ByVal написал сам VS2005 при переводе кода с VB6...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.01.2007 (Ср) 7:24

Лучше переводить код ручками, чем полагаться на различные конверторы, особенно на тот, что в самой среде VS.
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 03.01.2007 (Ср) 20:37

!Viper!
Лучше, но сложнее...

А вот еще проблемка появилась: хочу сделать программу-шутку, которая меняет надписи на кнопках (типа "да" заменить на "угу" и т.д.), но у меня не получается найти их hwnd. Пробовал FindWindow, но он исправно находит только окна, а на кнопки возвращает что-то не то. Может не той функцией ищю?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.01.2007 (Ср) 20:38

Не той. Надо FindWindowEx.
Изображение

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 03.01.2007 (Ср) 21:23

tyomitch
А что ей передовать надо?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.01.2007 (Ср) 21:28

Имя, класс и родителя.
Изображение

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 03.01.2007 (Ср) 21:40

tyomitch
а как найти родителя с контролом у которого неизвестен hwnd?
может как-то можно получить массив всех существующих в данный момент hwnd?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.01.2007 (Ср) 22:07

Можно. EnumWindows.
Изображение

След.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

    TopList