Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Заблокирован

Подайте мысль или пример

16.06.2013, 11:22. Показов 2067. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! В давние времена была написана программа, ее можно видеть на картинке. Это база данных. В ней было сделано ряд обновлений и переписывать на новые языки не беремся, потому что муторно. И так, сверху вы можете видеть быстрое отображение полей таблицы которых вы не видите, приходится прокручивать таблицу (Grid). Начальству кажется не эстетично, как можно улучшить?
Миниатюры
Подайте мысль или пример  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.06.2013, 11:22
Ответы с готовыми решениями:

Подайте идею как реализовать мысль
Доброго времени суток! вопрос вот такого вида. идет подсчет строковых показателей на Количество различных в обработке. и на выходе отчет...

Страшная мысль, или запрос музыка
Собственно, интересно вот что. Какова вероятность выйти по запросу "музыка" в топ10? И какие варианты продвижения возможно применять? ...

Есть пример построения АЧХ или ФЧХ или АФХ?
help

22
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
16.06.2013, 12:44
Это вопрос к начальству. Что, с его точки зрения, эстетично?
0
Заблокирован
16.06.2013, 13:09  [ТС]
Catstail, Ну типа, жмем на запись и внизу указателя мыши типа всплывающего окна с данными, мышкой тыкаем на вторую запись данные меняются в форме всплывающей, уводим из грида форма вообще пропадает.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
16.06.2013, 13:16
т.е. нужно данные отображать в контекстной подсказке? Можно, наверное.
0
Заблокирован
16.06.2013, 13:29  [ТС]
Да не прям в контекстной, а что-то типа формы всплывающей, на которой данные, но форма прям под мышкой.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
16.06.2013, 13:34
не совсем понял суть,
как вариант можно добавить вверху поле для ввода ФИО
как в поиске: при вводе последовательно предлагается авто-список(отфильтрованный из БД по полю ФИО)
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.06.2013, 13:35
Самый простой вариант будет - это создать форму Borderstyle=None и отображать под курсором. Сейчас постараюсь накидать примерчик. А какой грид используется?
2
Заблокирован
16.06.2013, 13:43  [ТС]
The trick, VsFlexGrid аналог MSFLEXGRID но намного лучше. Запись читается следующим образом:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub VSFlexGrid1_Click()
On Error Resume Next
With dtaGrid
    Label5(0).Caption = .TextMatrix(.Row, 1)
    Label5(1).Caption = .TextMatrix(.Row, 2)
    Label5(2).Caption = .TextMatrix(.Row, 3)
    Label5(3).Caption = .TextMatrix(.Row, 4)
    Label5(4).Caption = .TextMatrix(.Row, 5)
    Label5(5).Caption = .TextMatrix(.Row, 6)
    Label5(6).Caption = .TextMatrix(.Row, 7)
    Label5(7).Caption = .TextMatrix(.Row, 8)
    Label5(8).Caption = .TextMatrix(.Row, 9)
    Label5(9).Caption = .TextMatrix(.Row, 10)
    Label5(10).Caption = .TextMatrix(.Row, 11)
End With
    For i = 0 To Label5.Count - 1
        If Label5(i).Caption = "" Then
            Label5(i).ForeColor = &HC000C0
            Label5(i).Caption = "Нет данных"
        End If
        
        If StatusBar1.Panels(2).Text = 0 Then
            Label5(i).ForeColor = &HC000C0
            Label5(i).Caption = "Нет данных"
        End If
    Next i
End Sub
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
16.06.2013, 13:53
Цитата Сообщение от The trick Посмотреть сообщение
это создать форму Borderstyle=None и отображать под курсором
- именно это я и имел в виду!
1
Заблокирован
16.06.2013, 13:55  [ТС]
Catstail, Так вот как !? Это сделать, и чтобы было красиво и все такое.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.06.2013, 15:21
Лучший ответ Сообщение было отмечено как решение

Решение

Так накидал, без оптимизаций. Может что лишнее есть.
Миниатюры
Подайте мысль или пример  
Вложения
Тип файла: rar Popup.rar (11.8 Кб, 13 просмотров)
2
Заблокирован
16.06.2013, 15:24  [ТС]
The trick, Супер !
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.06.2013, 15:29
Кстати у Popup формы можно убрать объявление эвента, т.к. я использовал захват мыши
FrmMain:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Option Explicit
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
 
Dim Popup As frmPopup
Dim Rc As ADODB.Recordset
Dim DB As ADODB.Connection
Dim Oz As Long, Capt As Boolean
 
Private Sub Form_Load()
    Set DB = New ADODB.Connection
    DB.CursorLocation = adUseClient
    DB.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0;" & _
    "Data Source=" & App.Path & "\DB.MDB"
    DB.Open
    Set Rc = DB.Execute("SELECT * FROM tblMain")
    Set Grid.DataSource = Rc
    Set Popup = New frmPopup
End Sub
Private Sub Grid_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Capt = False: ReleaseCapture
End Sub
Private Sub Grid_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Capt = False: ReleaseCapture
End Sub
Private Sub Grid_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim Z As Long
    If Not Capt Then SetCapture Grid.hwnd: Capt = True
    If X < 0 Or X > Grid.Width Or Y < 0 Or Y > Grid.Height Then
        Oz = -1: ReleaseCapture: Capt = False: Popup.Hide: Exit Sub
    End If
    If Y > Grid.RowPos(Grid.Rows - 1) + Grid.RowHeight(Grid.Rows - 1) Then Popup.Hide: Oz = -1: Exit Sub
    Z = Grid.MouseRow: If Z <> Oz Then Oz = Z: RefreshPopup
    X = Me.Left + Grid.Left + X: Y = Me.Top + Grid.Top + Y + (Me.Height - Me.ScaleHeight)
    Popup.Move X, Y
End Sub
Private Sub RefreshPopup()
    With Popup
    If Oz Then
        .lblField(0) = Grid.TextMatrix(Oz, 1)
        .lblField(1) = Grid.TextMatrix(Oz, 2)
        .lblField(2) = Grid.TextMatrix(Oz, 3)
        .lblField(3) = Grid.TextMatrix(Oz, 4)
        .lblField(4) = Grid.TextMatrix(Oz, 5)
        .Visible = True
        Me.SetFocus
    Else
        Oz = -1
        .Visible = False
    End If
    End With
End Sub

frmPopup:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_EX_TOOLWINDOW = &H80&
Private Const GWL_EXSTYLE = (-20)
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const HWND_TOPMOST = -1
 
Private Sub Form_Load()
    SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_TOOLWINDOW
    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

Надо еще нормально посчитать координаты перемещения окна, я не учитывал размер неклиентской области грида и формы (по горизонтали)
2
Заблокирован
16.06.2013, 15:36  [ТС]
Pt As POINTAPI

Ругается!

Добавлено через 1 минуту
Visual Basic
1
Dim WithEvents Popup As frmPopUp
говорит не поддерживает автоматические чего-то
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.06.2013, 15:36
inv.DS, Скопируй код из последнего поста
0
Заблокирован
16.06.2013, 15:56  [ТС]
The trick,
The trick, Вашпе не пашет.

Добавлено через 22 секунды
постучись: контакты удалены скайп

Добавлено через 5 минут
The trick, Справил ошибку теперь мышка на форму почему-то налазит, хотя не должна.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.06.2013, 16:03
inv.DS, Странно, у меня все работает. Прикладываю проект измененный.
ЗЫ. Скайпа нет у меня
Вложения
Тип файла: rar Popup.rar (11.6 Кб, 9 просмотров)
1
Заблокирован
16.06.2013, 16:13  [ТС]
The trick, Давай такой вариант прокрутим, чтобы не форма ходила за мышкой, а при двойном клике открывалась форма с данными, при движении закрывалась.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.06.2013, 16:35
Цитата Сообщение от inv.DS Посмотреть сообщение
The trick, Давай такой вариант прокрутим, чтобы не форма ходила за мышкой, а при двойном клике открывалась форма с данными, при движении закрывалась.
Не?
Вложения
Тип файла: rar Popup.rar (11.7 Кб, 11 просмотров)
0
Заблокирован
16.06.2013, 16:49  [ТС]
The trick, Мне кажется я "Идиот", не работает? Можно я вышлю программу (исходник).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.06.2013, 16:49
Помогаю со студенческими работами здесь

Нужен простой пример передачи одной функции или метода в другую функцию или метод
Собственно сабж. Не знаю, как сделать. Как это выглядит синтаксически? Пробовал по разному но не получается Пробовал так. Покажите...

Подайте идею
Вот задача: Задача Bracket. В сложных математических выражениях приходится иногда ставить много скобок. Часто бывает трудно посчитать,...

Подайте идею для сайта
вот :

Рулетка - Подайте идею пожайлусто
Вот фото: Подайте пожалуйста идею как можно было бы сделать чтоб крутилась рулетка с заданными фотографиями из Базы данных.

Подайте идею, как защитить видео
Есть сервис с видео-материалами, доступ к которым предоставляется только если у человека есть пароль. То есть в списке он выбирает видео,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru