Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вывести данные / 16 сообщений из 16, страница 1 из 1
02.06.2008, 00:20
    #35348067
Ммихалыч1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
Кто-нибудь с десктопом работал ? Поправьте чтобы все данные выводил, а не одну строку

Код: 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.
Public Sub TestDesktopDC()
Dim hdc As Long
Dim tR As RECT
Dim lCol As Long
hdc = CreateDCAsNull("DISPLAY", ByVal  0 &, ByVal  0 &, ByVal  0 &)
'ScaleMode = vbPixels

tR.Left =  0 
tR.Top =  0 
tR.Right =  1000 
tR.Bottom =  1000 
'tR.Right = ScaleWidth
'tR.Bottom = ScaleHeight

arrMy = Split(CurrentProject.Connection.Execute("Select ïîëå2 & '    ' & ïîëå4 from òàáëèöà1 WHERE Trim(Mid((Replace(ïîëå4,mid(ïîëå4,instr(ïîëå4,'–')),'')),InStr(1,ïîëå4,'.')+1)) = '0' & Month(Date())" & _
" or Trim(Mid((Replace(ïîëå4,mid(ïîëå4,instr(ïîëå4,'–')),'')),InStr(1,ïîëå4,'.')+1)) = Month(Date()) order by ïîëå1;").GetString(adClipString, , , , ""), vbCr)

For i =  0  To UBound(arrMy)

'tp = "ffhklf" & Chr(10) + Chr(13) & "sfdfjk"
lCol = GetTextColor(hdc)
SetTextColor hdc, &HFF&
DrawText hdc, arrMy(i), Len(arrMy(i)), tR, DT_SINGLELINE Or DT_VCENTER Or DT_TABSTOP

SetTextColor hdc, lCol
DeleteDC hdc

'Debug.Print arrMy(i)
Next

'DT_SINGLELINE Or DT_VCENTER Or DT_RIGHT

End Sub

много букаф(занчений) перебирать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Const DT_BOTTOM = &H8
Private Const DT_SINGLELINE = &H20
Private Const DT_CALCRECT = &H400
Private Const DT_CENTER = &H1
Private Const DT_EDITCONTROL = &H2000
Private Const DT_END_ELLIPSIS = &H8000
Private Const DT_PATH_ELLIPSIS = &H4000
Private Const DT_EXPANDTABS = &H40
Private Const DT_EXTERNALLEADING = &H200
Private Const DT_LEFT = &H0
Private Const DT_MODIFYSTRING = &H10000
Private Const DT_NOCLIP = &H100
Private Const DT_NOPREFIX = &H800
Private Const DT_RIGHT = &H2
Private Const DT_RTLREADING = &H20000
Private Const DT_TABSTOP = &H80
Private Const DT_TOP = &H0
Private Const DT_VCENTER = &H4
Private Const DT_WORDBREAK = &H10
...
Рейтинг: 0 / 0
02.06.2008, 13:46
    #35348934
Ммихалыч1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
так вместо массива проверил рекордсет, все данные выводит, но только в строку, вместо переносов строки "Ъ" ставит, как вывести в столбик ?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
rst.Open "Select поле2 & '    ' & поле4 from таблица1 WHERE Trim(Mid((Replace(поле4,mid(поле4,instr(поле4,'–')),'')),InStr(1,поле4,'.')+1)) = '0' & Month(Date())" & _
" or Trim(Mid((Replace(поле4,mid(поле4,instr(поле4,'–')),'')),InStr(1,поле4,'.')+1)) = Month(Date()) order by поле1;", CurrentProject.Connection

'For i = 0 To UBound(arrMy)

'tp = "ffhklf" & Chr(10) + Chr(13) & "sfdfjk"
Do While Not rst.EOF
'tp = Split(rst.GetString(adClipString, , , , ""), vbCr)
lCol = GetTextColor(hdc)
SetTextColor hdc, &HFF&
DrawText hdc, rst.GetString,  1000 , tR, DT_SINGLELINE Or DT_VCENTER Or DT_RIGHT

SetTextColor hdc, lCol
DeleteDC hdc
Loop
'Debug.Print arrMy(i)
'Next

'DT_SINGLELINE Or DT_VCENTER Or DT_RIGHT
...
Рейтинг: 0 / 0
02.06.2008, 17:19
    #35349666
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
а с чего ты взял, что DrawText тебе будет параграфы рисовать. это тебе батенька все в ручную надо делать: бить строки на кусочки по размеру ширины экрана и выводить последовательно на DC с нужным разбегом и шрифтом :)
...
Рейтинг: 0 / 0
02.06.2008, 22:44
    #35350118
Ммихалыч1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
Konst_Oneа с чего ты взял, что DrawText тебе будет параграфы рисовать. это тебе батенька все в ручную надо делать: бить строки на кусочки по размеру ширины экрана и выводить последовательно на DC с нужным разбегом и шрифтом :)

блин, это такой гемор, строк то заранее неизвестное количество должно быть, а я думал сщас поиграюсь...
...
Рейтинг: 0 / 0
02.06.2008, 22:48
    #35350120
Ммихалыч1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
а можно как-нибудь сделать хотя бы чтобы надпись не затиралась телодвижениями и белый фон под ней на прозрачный заменить ? (угу, губы то раскотал :))
...
Рейтинг: 0 / 0
03.06.2008, 10:24
    #35350509
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
> Автор: Ммихалыч1
> а можно как-нибудь сделать хотя бы чтобы надпись не затиралась
> телодвижениями и белый фон под ней на прозрачный заменить ? (угу, губы то
> раскотал :))

Да :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
03.06.2008, 10:26
    #35350514
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
> Автор: Ммихалыч1
> а можно как-нибудь сделать хотя бы чтобы надпись не затиралась
> телодвижениями и белый фон под ней на прозрачный заменить ? (угу, губы то
> раскотал :))

Чего-то не дружу с кнопками :(

сабклась Desktop и рисуй что хошь и как хошь :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
03.06.2008, 12:35
    #35350993
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
Просто сабкласить окна чужих процессов нельзя. Только внедрением кода в процесс хозяина - в данном случае explorer.exe. А теперь давайте подумаем, как на это отреагируют антивирусы…
...
Рейтинг: 0 / 0
03.06.2008, 13:30
    #35351197
Ммихалыч1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
AntonariyПросто сабкласить окна чужих процессов нельзя. Только внедрением кода в процесс хозяина - в данном случае explorer.exe. А теперь давайте подумаем, как на это отреагируют антивирусы…


с ними как раз все в порядке, машина локальная бес какого-то доступа из вне (в первую очердь интернет), где почитать про эти сабклассы можно, а то уже и так много всего перерыл за ночь...
...
Рейтинг: 0 / 0
03.06.2008, 13:31
    #35351200
SoftParanoik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
Код: plaintext
DrawText hdc, arrMy(i), Len(arrMy(i)), tR, DT_VCENTER Or DT_TABSTOP
...
Рейтинг: 0 / 0
03.06.2008, 13:33
    #35351207
Ммихалыч1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
SoftParanoik
Код: plaintext
DrawText hdc, arrMy(i), Len(arrMy(i)), tR, DT_VCENTER Or DT_TABSTOP



выводит 2 буквы от текста в верхнем правом углу.
...
Рейтинг: 0 / 0
03.06.2008, 14:00
    #35351289
SoftParanoik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
lCol = GetTextColor(hdc)
SetTextColor hdc, &HFF&

For i = 0 To UBound(arrMy)

'tp = "ffhklf" & Chr(10) + Chr(13) & "sfdfjk"
DrawText hdc, arrMy(i), Len(arrMy(i)), tR, DT_VCENTER Or DT_TABSTOP

'Debug.Print arrMy(i)
Next

SetTextColor hdc, lCol
DeleteDC hdc
...
Рейтинг: 0 / 0
03.06.2008, 14:05
    #35351301
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
> Автор: Antonariy
> Просто сабкласить окна чужих процессов нельзя. Только внедрением кода
> в процесс хозяина - в данном случае explorer.exe. А теперь давайте
> подумаем, как на это отреагируют антивирусы…

Ну да. Об этом забыл :(
Спасибо

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
03.06.2008, 14:22
    #35351346
Ммихалыч1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
нашел такой же пример для вывода бмпэшки с установкой цветового диапазона, но тоже затирается
...
Рейтинг: 0 / 0
03.06.2008, 14:58
    #35351473
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
invalidate потому что нужно делать, но думаю, что проще тебе найти пример на planetsourcecode
...
Рейтинг: 0 / 0
03.06.2008, 18:02
    #35352055
SoftParanoik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести данные
Как пример

Код: 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.
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, lpDeviceName As Long, lpOutput As Long, lpInitData As Long) As Long

Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long

Private Declare Function DeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long

Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Const DT_LEFT = &H0

Private Sub Command1_Click()
    Dim v As String
    Dim r As RECT
    Dim h As Long
    
    h = CreateDC("DISPLAY",  0 ,  0 ,  0 )
    With r
        .Left =  0 
        .Top =  0 
        .Right =  1000 
        .Bottom =  1000 
    End With
        
    v = "Приветик!!!" + vbCr + "Hello" + vbCr + "Word !!!"
    
    DrawText h, v, Len(v), r, DT_LEFT
    
    DeleteDC h
End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вывести данные / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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