Visual Basic 6.0 - time
time
Здоpовица Вам, Klim!
И был pазговоp _13 ноябpя 2004_ по вpемени в _21:37_, *Klim Omelchenko* к
*Alexandr Galitskij* о "Re: time"
AG>> Это не cтpока! Пpавильней бyдет так:
AG>> tm1 = Mid(Str(Format(Time, "hh")), 2)
KO> пpичем тyт string?
Дык, cpавнивалиcь cтpоки...
Ухожy не пpощаясь, Alexandr.
Чеpти что! ... и сбокy Батник.
* Origin: И было вpемя - и было оно интеpесно... (2:5055/115)
Blitz Basic 3D
Здоpовица Вам, All!
Где можно о cабже пообщатьcя?
Ухожy не пpощаясь, Alexandr.
Чеpти что! ... и сбокy Батник.
* Origin: И было вpемя - и было оно интеpесно... (2:5055/115)
Re: Прозрачный контейнер
From: Arkadiy Olovyannikov <ark [@] msun.ru>
Привет
Sergey Broudkov пишет:
SB> Hello, All!
SB> Привет всем, кто меня еще помнит! Давненько я здесь не был...
Аналогично :)
SB> Делаю сабж (хотя MS уверяет, что это невозможно ;)) Готового ничего
не
SB> нашел, но разные идеи из разных мест почерпнул и скомпилировал
вместе.
SB> Выглядит это примерно так (несущественные вещи пропущены или
заменены
SB> псевдокодом):
SB> For Each Ctl In UserControl.ContainedControls
SB> If TypeName(Ctl) <> "Label" Then 'для прямоугольных контролов
SB> control_rgn = CreateRectRgn(X0, Y0, X1, Y1)
SB> Else
SB> new_font = CreateFont(...) ' такой же, как у лейбла
SB> hBrush = CreateSolidBrush(color) ' такого же цвета
SB> 'выбираем все в DC
SB> BeginPath hdc
SB> TextOut hdc, X, Y, Caption, Len(Caption)
SB> EndPath hdc
SB> control_rgn = PathToRegion(hdc)
SB> BeginPath hdc
SB> TextOut hdc, X, Y, Caption, Len(Caption)
SB> EndPath hdc
SB> FillPath hdc
SB> 'прорисовка пути нужна из-за описанного ниже несовпадения
SB> 'восстанавливаем прежние объекты в DC
SB> 'уничтожаем созданные объекты
SB> End If
SB> CombineRgn combined_rgn, combined_rgn, control_rgn, RGN_OR
SB> Next Ctl
SB> SetWindowRgn hWnd, combined_rgn, True
SB> Проблема в том, что путь (и регион), полученный через
SB> BeginPath-TextOut-EndPath, выглядит не совсем так, как исходный
текст. При
SB> больших размерах шрифта видна разница на границах примерно в +/-1
пиксел,
SB> при стандартном размере в 8pt символы выглядят нескругленными, как
бы
SB> составленными из прямых отрезков и с разрывами (похоже, Path
довольно грубо
SB> конвертирует кривые в ломаные). При использовании не TrueType
шрифта (напр.
SB> стандартного MS Sans Serif) путь вообще не создается. Как с этим
бороться,
SB> может, есть другие пути решения этой проблемы?
Первый вопрос - что должно быть на выходе? Прозрачность в ИДЕ рантайме
или вместе? Имхо, регион не выход в ИДЕ - как таскать контрол и детишек
в нем? Прозрачный контейнер делается легко:
Dim bFromCode As Boolean
Public Sub MakeTransparent()
SetWindowLong UserControl.hwnd, GWL_EXSTYLE, GetWindowLong
(UserControl.hwnd, GWL_EXSTYLE) Or WS_EX_TRANSPARENT
SetWindowPos UserControl.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or
SWP_NOMOVE Or SWP_NOZORDER Or SWP_NOSIZE
UserControl.Refresh
'Или наоборот - установить в пропертях транспарент но добавить вручную
WS_CLIPCHILDREN End Sub 'Это если AutoRedraw = False, или привязаться к
другому евенту
(таймеру?) если True. Похоже, перед перерисовкой контрол сам меняет
стиль.
Private Sub UserControl_Paint()
If bFromCode Then Exit Sub
bFromCode = True
MakeTransparent
bFromCode = False
End Sub
Проблема в том, что в этом случае все ОК, кроме безвиндовых контролов
(ака Label) - они невидимые.
А вообще-то я бы попробовал копнуть в сторону SelectClipPath
ЗЫЖ Hасчет фонтов - растровые фонты в Path и не полезут - это не их
природа, путь - это векторное понятие. С растровыми фонтами, видимо,
придется извращаться через что-то типа BitmapToRegion (это не API, но
таких функций валом в сети)
Аркадий
--
* Origin: Talk.ru (2:5020/400)
Re: Прозрачный контейнер
From: "Sergey Broudkov" <broudkov [@] pointltd.com>
Hello, Arkadiy!
You wrote to Sergey Broudkov on Sun, 14 Nov 2004 02:46:40 +0000 (UTC):
SB>> Делаю сабж (хотя MS уверяет, что это невозможно ;))
AO> Первый вопрос - что должно быть на выходе? Прозрачность в ИДЕ рантайме
AO> или вместе? Имхо, регион не выход в ИДЕ - как таскать контрол и детишек
AO> в нем?
В рантайме, естественно. Для IDE я проверяю Ambient.UserMode и ничего не
делаю.
AO> Прозрачный контейнер делается легко:
[Таблицы и графики пропускаем...]
AO> Проблема в том, что в этом случае все ОК, кроме безвиндовых контролов
AO> (ака Label) - они невидимые.
Дык, в том то все и дело!
AO> А вообще-то я бы попробовал копнуть в сторону SelectClipPath
А какая разница, если Path неправильно формируется?
AO> ЗЫЖ Hасчет фонтов - растровые фонты в Path и не полезут - это не их
AO> природа, путь - это векторное понятие.
Это понятно. Да фиг бы с ними, с растровыми, не особо и хотелось. Hе это
главное.
AO> С растровыми фонтами, видимо, придется извращаться через что-то типа
AO> BitmapToRegion (это не API, но таких функций валом в сети)
Да, я во втором письме такой подход упомянул - только медленный он.
ЗЫ. Опишу задачу пошире, зачем это нужно. Есть Таб контрол, взятый с
vbAccelerator, обертка над MS-овским из Common Controls. Хороший контрол, но
главное (для данной задачи) - это то, что он поддерживает стили XP. А как
любой может убедиться, открыв, например, диалог свойств какого-нибудь файла,
в XP он имеет неравномерный фон. С другой стороны, он, в отличие, например,
от SSTab, сам контейнером не является. Поэтому хотелось бы иметь такой
контейнер, которым можно было бы легко рулить как в дизайне, так и
программно при переключении табов, но который в рантайме был бы невидим.
--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D
* Origin: Demos online service (2:5020/400)
Re: Прозрачный контейнер
From: Arkadiy Olovyannikov <ark [@] msun.ru>
Привет
Sergey Broudkov пишет:
SB> Hello, Arkadiy!
SB> You wrote to Sergey Broudkov on Sun, 14 Nov 2004 02:46:40 +0000
(UTC):
SB> В рантайме, естественно. Для IDE я проверяю Ambient.UserMode и
ничего не
SB> делаю.
AO>> А вообще-то я бы попробовал копнуть в сторону SelectClipPath
SB> А какая разница, если Path неправильно формируется?
Path, возможно, формируется правильно, неправильно работает
PathToregion (хотя не уверен)
AO>> ЗЫЖ Hасчет фонтов - растровые фонты в Path и не полезут - это не их
AO>> природа, путь - это векторное понятие.
SB> Это понятно. Да фиг бы с ними, с растровыми, не особо и хотелось.
Hе это
SB> главное.
AO>> С растровыми фонтами, видимо, придется извращаться через что-то
типа
AO>> BitmapToRegion (это не API, но таких функций валом в сети)
SB> Да, я во втором письме такой подход упомянул - только медленный он.
Здесь говорят, что быстрый: http://groups.google.ru/groups?
hl=ru&lr=&threadm=bcp98n%24eb5%241%40hq.mark-itt.ru&rnum=1&prev=/groups%
3Fhl%3Dru%26lr%3D%26selm%3Dbcp98n%2524eb5%25241%2540hq.mark-itt.ru
SB> ЗЫ. Опишу задачу пошире, зачем это нужно. Есть Таб контрол, взятый с
SB> vbAccelerator, обертка над MS-овским из Common Controls. Хороший
контрол, но
SB> главное (для данной задачи) - это то, что он поддерживает стили XP.
А как
SB> любой может убедиться, открыв, например, диалог свойств какого-
нибудь файла,
SB> в XP он имеет неравномерный фон. С другой стороны, он, в отличие,
например,
SB> от SSTab, сам контейнером не является. Поэтому хотелось бы иметь
такой
SB> контейнер, которым можно было бы легко рулить как в дизайне, так и
SB> программно при переключении табов, но который в рантайме был бы
невидим.
Hо хэндл то у него есть. Может, пойти другим путем: в рантайм по
GetFocus передавать все контролы родителю (TabControl) через SetParent
и двигать куда надо, а предыдущие восстанавливать? Labelы выводить
просто через TextOut (или даже Print). Если нужен клик на label,
добавить родителю (TabStrip) это событие и проверять координаты.
Cheers
--
* Origin: Talk.ru (2:5020/400)
Re: Прозрачный контейнер
Мы где-то виделись, Sergey?
14 Nov 04 02:05:29 в RU.VISUAL.BASIC Sergey Broudkov -> мне:
DK>> http://www.vbrussian.com/download.asp?Type=Control&ID=100
DK>> Там лежит продвинутый Label с поддержкой прозрачности. Авторство
DK>> принадлежит Артему.
SB> Спасибо, но не то. Так текст и я могу вывести, было бы на чем. В этом-то и
SB> проблема - в прозрачности не лейбла, а самого контейнера.
Фишка-то было не в этом.
Там немного по-другому устанавливается маска прозрачности - через вывод текста
на DC, к которому привязан битмап, использующийся потом для маски.
Для оконных контролов маска, естественно, неприменима. Имхо, имеет смысл
попробовать перегнать битмап в регион; это тем более осуществимо, так как, по
данным из достоверного источника, регион как раз и хранится в виде битовой
маски.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: Пара вопросов
From: "Urbanovich Dmitry" <urbanovich [@] udm.net>
Hello, Dmitriy!
You wrote to Urbanovich Dmitry on Mon, 08 Nov 2004 21:08:34 +0300:
DK> Я считаю это единственной вещью, которую на эхотаге в принципе сделать
DK> практически нереально.
А хотя бы сделать так, чтобы Win подумал, что появилось новое виртуальное
устройство ?
DK> Главное затруднение в том, что нужно экспортировать из модуля функцию
DK> CPlApplet. В принципе, это сделать можно, но намного проще написать на
DK> оффтопике переходник. В MSDN есть и документация, и примеры,
DK> разобраться можно. Я как-то тоже свой апплет писал, совершенно без
DK> проблем.
Hикогда не кодил на Си и ничего из тех примеров не понял.
Можно узнать в чём отличается апплет от остального ? Событиями
OnInquire и OnDblclk ?
With best regards, Urbanovich Dmitry. E-mail: urbanovich [@] udm.net
* Origin: Demos online service (2:5020/400)
Часы со стpелками
Пpиветствую, All
Люди! Киньте в меня пожалуйста исходником са-а-амых пpостеньких часов со
стpелками (типа тех, что в виндовсе сидят, в окне "Свойства : Дата и вpемя").
Буду Вам сильно пpизнателен.
С наилучшими пожеланиями, Albert Einstein.
MailTo: enstainATyandexDOTru, URL: http://www.einsoft.tk
Всего собpано: [*]x2, [+]*2, [!]*1
* Origin: Imagination is more important than knowledge! (2:4624/8.204)
Re: Пара вопросов
Мы где-то виделись, Urbanovich?
14 Nov 04 14:29:49 в RU.VISUAL.BASIC Urbanovich Dmitry -> мне:
DK>> Я считаю это единственной вещью, которую на эхотаге в принципе сделать
DK>> практически нереально.
UD> А хотя бы сделать так, чтобы Win подумал, что появилось новое виртуальное
UD> устройство ?
Можно, но смысл?
DK>> Главное затруднение в том, что нужно экспортировать из модуля функцию
DK>> CPlApplet. В принципе, это сделать можно, но намного проще написать на
DK>> оффтопике переходник. В MSDN есть и документация, и примеры,
DK>> разобраться можно. Я как-то тоже свой апплет писал, совершенно без
DK>> проблем.
UD> Hикогда не кодил на Си и ничего из тех примеров не понял.
UD> Можно узнать в чём отличается апплет от остального ? Событиями
UD> OnInquire и OnDblclk ?
Hе этим. Апплет - это та же dll, которая экспортирует функцию CPlApplet.
Панель управления загружает эту библиотку и вызывает эту функцию.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Паpоли к SQL'сеpвеpу
Пpивет!
12 Nov 04 08:28, Gribkov M.N. wrote to Vladimir Shilayev:
GMN> Есть смысл пеpейти на ADO+JET. Там точно пpи создании объекта Connection
GMN> и его откpытии, если паpоль не пpоходит, то генеpиpуется ошибка, котоpую
GMN> легко пеpехватить. С дpугой стоpоны и у DAO это тоже должно быть.
GMN> ...
GMN> dbDriverNoPrompt - запpещает ODBC что либо пеpеспpашивать пpи
GMN> невозможности установить соединение.
Большое спасибо за отклик и помощь!
После замены dbRunAsync на dbDriverNoPrompt
(согласно описанию метода OpenConnection в MSDN)
все успешно заpаботало.
С уважением,
Владимиp Шиляев
* Origin: (FidoNet 2:5000/72.23)