powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / 2V. Motchulsky
16 сообщений из 16, страница 1 из 1
2V. Motchulsky
    #32158973
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2V. Motchulsky
не томи дай хоть идеи про
Код: plaintext
выделение записи в форме

хоть что-нибудь
слюнки текут ....
так не есть хорошо сказал и все
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32159045
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://am.rusimport.ru/MsAccess/f2.aspx?id=5683
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32159061
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2IgorM\r
у меня уже есть. ознакомься:\r
\r
\r
/topic/31407
\r
\r
\r
я жду что-то более крутое для ADP.
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32159069
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
черт не получилось.\r
пробую еще раз\r
\r
\r
/topic/31407
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32159070
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/31407
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32160076
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за отсутствие. Программирование у меня, так сказать, "по совместительству"
Вот текст модуля для ADP.
Код: plaintext
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.
53.
54.
55.
Option Compare Database
Option Explicit

Public Function CS(Col1 As Integer, Col2 As Integer) As String
If Col1 = Col2 Then CS = String( 100 , ChrW( 9608 )) Else CS =  ""
End Function

Private Function Color(R As Integer, G As Integer, B As Integer) As Long
Color = CLng(R) + CLng(G) * 256  + CLng(B) *  65536 
End Function

Sub RGBForm()
'   Writen by Vasyl Motchulsky, Ukraine
'   For free use for SQL.RU members
Dim Frm As Form
Dim tBox As TextBox
Dim R As Integer, G As Integer, B As Integer
Dim ColorNumber As Integer
Dim FormName As String
Set Frm = CreateForm()
Set tBox = CreateControl(Frm.Name, acTextBox, , "Color ", " Color ", 500 ,  50 )
With tBox
    .Width =  300 
    .SpecialEffect =  0 
    .BackStyle =  0 
End With
For R =  0  To  254  Step  127 
    For G =  0  To  254  Step  127 
        For B =  0  To  254  Step  127 
            ColorNumber = ColorNumber +  1 
            Set tBox = CreateControl(Frm.Name, acTextBox, , " ", " =CS([Color], " & ColorNumber & " ) ", 2000 ,  50 )
            With tBox
                .BackStyle =  0 
                .SpecialEffect =  0 
                .ForeColor = Color(R, G, B)
                .Locked = True
                .Enabled = False
            End With
        Next B
    Next G
Next R
With Frm
    .Section( 0 ).Height =  300 
    .DefaultView =  1 
    .RecordSource = "select a.n + b.n* 3  + c.n* 9  +  1  as Color from  " & _
        " (select  0  as n union select  1  union select  2 ) as a, " & _
        " (select  0  as n union select  1  union select  2 ) as b, " & _
        " (select  0  as n union select  1  union select  2 ) as c order by Color"
    .Width =  3000 
    FormName = .Name
    .AutoResize = False
End With
DoCmd.Close acForm, FormName, acSaveYes
DoCmd.OpenForm FormName
DoCmd.MoveSize , ,  5000 
End Sub
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32161204
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2вадя
Интересно, как быстродействия по предложеному алгоритму по сравнению с картинками?
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32161216
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2V. Motchulsky
я пока только изучаю ..
это рассматривалось в применении а adp?

для скорейшего понимания былобы неплохо некоторые комменотарии по тексту.
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32161224
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2V. Motchulsky
видать ужо поздно - что-читаю не вижу с певого раза
а коммент прошу вкратце
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32161229
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да поторопил ты меня, я не успел ничего написать. Там все просто, берешь в любое ADP, можно новое, вставляеш в новый модул весь код. И запускаеш процедурку RGBForm. В результате создается форма. Если каккие то фрагменты не ясны, пиши. Для MDB надо поменять свойство RecordSource на таблицу с одним полем Color (Значение от 1 до 27 в даном примере). Поле может быть и вычисляемым.
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32161487
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавляю коментарии.

Задача.
Выдиление записи в форме разхными цветами.
Реализация. Как и в случае картинок, основные поля делаем прозрачные. Снизу под поля добавляем контролы, которые и будут формировать цвет. В качестве контролов используется TextBox. Количество контролов - по количеству необходимых цветов. Если какой-то цвет надо отобразить - отображается необходимый контрол. Так как это нельзя управлять видимостью отдельно по каждой записи при помощи tBox.Visible=true '/false то добавляем функцию CS, задача которой отображать tBox при необходимом условии. Все tBox имеют прозрачный фон и цвет закраски текста соответствующий цвету, за который они отвечают. При несоблюдении условия текст не выводится (функция CS возвращает пустую строку), при соблюдении - выводится строка из полностью зарисованных символов (по принципу, как в былые времена в ДОСе рисовали псевдографикой таблицы)
Функция Color возвращает номер цвета используемый в свойствах обектов на основании составляющих градаций базовых цветов.
Процедурка RGBForm создает форму в режиме конструктора и добавляет туда поле с названием и значением Color и в цикле добавляется 27 полей с разными окрасками текста. Цвета при этом нумируются при помощи ColorNumber и соответствующее поле будет "выводится" при условии, когда поле Color будет иметь значение ColorNumber .
В качесте источника данных формы задается тестовый запрос, возвращающий значения от 1 до 27. В завершении, форма записывается и открывается для просмотра.
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32162193
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да на ночь глядя не стоит глядеть в монитор...
разабрался.
решение действительно не тривиальное.
идею беру не вооружение.
но...
- в ленточной форме у меня минимум 150 строк - функ. CS будет вызываться
n*150 раз где n число цветов (5-8). таких полей на данный момент 2 . есть мысли добавить еще одно. (5~8)*~150* (2~3) вызовов .
ширина одного поля 2 см . второго 22 почти через весь экран. время заполнения такого поля существенно. если разукрашивать все строки, что в принципе желательно в почти белые тона, функ. CS будет вызываться по-максимуму каждай раз. при перемещении по записям происходит вызов функции 2*(5~8)раз при переходе с записи на запись. при перемещении с помощью ползунка тоже будет многократный вызов этой функ.
- при конструировании формы наложение нескольких полей друг на друга вызывает некоторый дизкомфорт. хочешь изменить одно поле втаешь на него мышкой а это не то приходится тащиться в список полей вспоминать как назвал нужное поле по раскрывющемуся списку искаить - поверь операция не разовая достаёт очень.
- пока на скорость не проверял. честно скажу два первых пункта не внушают успех. хотя наверное прбовать буду. сравнить хочется цифрами в руках.
если кто испробует обязательно пуст сообщит.
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32162242
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вроде не все так печально.
- в ленточной форме у меня минимум 150 строк - функ. CS будет вызываться
n*150 раз

Только по количеству строк на экране
- при конструировании формы наложение нескольких полей друг на друга вызывает некоторый дизкомфорт
Что есть, то есть. Надо пользоватся TAB или Shift+TAB
- пока на скорость не проверял. честно скажу два первых пункта не внушают успех.
В примере 27 цветов, что меньше 2*(5..8) - работает

Ну а цвета, какие задаш для контролов, такие и будут.
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32162245
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> - при конструировании формы наложение нескольких полей друг на друга вызывает некоторый дизкомфорт
> Что есть, то есть. Надо пользоватся TAB или Shift+TAB

При конструировании можно их расположить так, чтобы не накладывались, а на OnOpen поменять одному из них размер и/или положение.
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32162379
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир Саныч
>При конструировании можно их расположить так, чтобы не накладывались, а на OnOpen поменять одному из них размер и/или положение

может тогда сделать sub который просто строил эти элементы при открытии формы + организация дополнительнычх связей. Только бедет ли это работать в ADE?
...
Рейтинг: 0 / 0
2V. Motchulsky
    #32162390
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 вадя:

Не, это уже перебор. :^)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / 2V. Motchulsky
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]