Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Одинаковые параметры - разные типы?

478
23 октября 2003 года
XtreamAll
279 / / 01.10.2003
Пробовал автоматом задать шрифт для формы и всех ее контролов...
...VB меня нагло выругал, мол не тот тип...
...начал проверять тип параметра и прозрел!!!

Для формы .Font-String, а для контролов - Object

Объясните пожалуйста, мож я чего не правильно понял???
267
23 октября 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by XtreamAll
Пробовал автоматом задать шрифт для формы и всех ее контролов...
...VB меня нагло выругал, мол не тот тип...
...начал проверять тип параметра и прозрел!!!

Для формы .Font-String, а для контролов - Object

Объясните пожалуйста, мож я чего не правильно понял???



Ну сделай одним скопом для UserForm1.Controls, а вторым скопом для самой UserForm1

478
23 октября 2003 года
XtreamAll
279 / / 01.10.2003
Разобрался!!!

Форме я передавал в .FontName String, а у контролов вообще не оказалось такого параметра, как .FontName...

...т.е. у контролов есть только .Font и он Object
...и что мне туда передавать???
258
23 октября 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by XtreamAll
Разобрался!!!

Форме я передавал в .FontName String, а у контролов вообще не оказалось такого параметра, как .FontName...

...т.е. у контролов есть только .Font и он Object
...и что мне туда передавать???



Как что, вот:
Dim r As Font

Set r=New Font
' на а дальше проставляем все свойства
r.ля-ля=тому-то

' а потом
MyContrl.Font=r

478
23 октября 2003 года
XtreamAll
279 / / 01.10.2003
Все хороше и красиво, но на
Set r=New Font
VB мне рассказал такую историю:
"Invalid use of New keyword"
На всяк случай, вот что не работает:

Private Sub Form_Initialize()
Dim NewFont As Font
Set NewFont = New Font
NewFont.Name = "@Arial Unicode MS"
NewFont.Size = 8
With zpFrm
Set .Font = NewFont
With .Controls
For i = 0 To .Count - 1
With .Item(i)
.Font = NewFont
End With
Next i
End With
.Date1.Value = Date: .Date2.Value = Date
BegDate = .Date1.Value
EndDate = .Date2.Value
End With
End Sub
258
23 октября 2003 года
SergeySV
1.5K / / 19.03.2003
Извиняй, не посмотрел, что класс Font к Excel принадлежит и его конечно нельзя одельно создавать, только ссылаться через воркбуки и воркщиты.

Вот что тебе надо:
Dim f As MSForms.NewFont

Set f = New MSForms.NewFont
f.Italic = True

А ты вообще где пишешь то?
478
23 октября 2003 года
XtreamAll
279 / / 01.10.2003
Пишу я в VB6...
...пытаюсь...
...а на
Set f = New MSForms.NewFont
VB снова ругается (матом?):
мол "Compile error", и еще
"Method or data member not found"
478
23 октября 2003 года
XtreamAll
279 / / 01.10.2003
Пора пойти покурить, ато гоню:
в строке:
Set f = New MSForms.NewFont
забыл написать New:D
Все работает - СерёгеСВ ООООгрООООмное спасибо!!!
258
23 октября 2003 года
SergeySV
1.5K / / 19.03.2003
А может тебе вообще не создавать новый объект, а просто один существующий изменить и всем остальным его потом пихать.

Ну типа:
MyContrl1.Font.Italic=True

MyContrl2.Font=MyContrl1.Font
MyContrl3.Font=MyContrl1.Font
MyContrl4.Font=MyContrl1.Font
478
23 октября 2003 года
XtreamAll
279 / / 01.10.2003
Нееее...
...через объект таки лучше,
так (ежели чего), можна динамически шрифты менять, так что все супа гут:)

Только один неразрешенный вопросик остался:
почему для формы возможно обращение
.FontName=Something
.FontSize=45
, а для контролов нет (только Font.Name):???:
На практике-то я уже все отладил, но вопрос в голове засел...
258
23 октября 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by XtreamAll
Нееее...
...через объект таки лучше,
так (ежели чего), можна динамически шрифты менять, так что все супа гут:)

Только один неразрешенный вопросик остался:
почему для формы возможно обращение
.FontName=Something
.FontSize=45
, а для контролов нет (только Font.Name):???:
На практике-то я уже все отладил, но вопрос в голове засел...



Это нормально, разные программисты писали, одни так сделали, другие по другому. Они ведь тоже люди, хоть и в Microsoft работают.

Это еще что, вот в access есть пара классов, где при его разработке не предусмотрели пару нужных свойств (типа Count и еще чего там). Пришлось им потом вместо свойств добавлять новые функции, которые бы их заменяли.

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

478
23 октября 2003 года
XtreamAll
279 / / 01.10.2003
То есть твой совет:
"Ничему не удивляйся, воспринимай как факт и если не нашел чего-то, что по твоему должно быть, то напиши сам"
я правильно понял???
258
23 октября 2003 года
SergeySV
1.5K / / 19.03.2003
Почти, не надо требовать общего единообразия в похожих объектах. Ну и искать, искать и еще раз искать...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог