Пишем ли на Clarion.Net
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Admin
- Администратор
- Сообщения: 3962
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 27 раз
- Поблагодарили: 22 раза
- Контактная информация:
Пишем ли на Clarion.Net
Пишет ли кто нибудь для себя на Clarion.Net
Ну типа для общего развития.
Что пишете? Прмеров бы ...
Ну типа для общего развития.
Что пишете? Прмеров бы ...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 3962
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 27 раз
- Поблагодарили: 22 раза
- Контактная информация:
Да-а-а! То что в MSDN нет примеров по Clarion.Net удручает
Существующие примеры по С# в основном нужно сильно переделывать. Некоторые моменты работают не так как хотелось бы и т.д.
вот несколько примеров ... пока до них дошел - мозг съел
после обычного Клариона напряжно, но прикольно с другой стороны.
Существующие примеры по С# в основном нужно сильно переделывать. Некоторые моменты работают не так как хотелось бы и т.д.
вот несколько примеров ... пока до них дошел - мозг съел
после обычного Клариона напряжно, но прикольно с другой стороны.
P.S. Еще напрягает то что часто после записи проекта, в следующий раз он не грузится ... окна форм не открываются. валятся ошибкиg &System.Drawing.Graphics()
pen &Pen()
myrect Rectangle(1,1,100,100)
CODE
g := self.CreateGraphics()
pen := new Pen(Color.Black)
g.DrawRectangle(pen,myrect)
pen.Dispose
g.Dispose
g &System.Drawing.Graphics
sb &SolidBrush
CODE
g := self.CreateGraphics()
sb := new SolidBrush(Color.Black)
g.FillRectangle(sb,new Rectangle(1,1,50,50))
sb.Dispose
g.Dispose
g &System.Drawing.Graphics
font &Font
mystring clastring(100)
CODE
g := self.CreateGraphics()
font := new Font('Times New Roman',36,FontStyle.Regular)
mystring = 'Test string from sea'
g.DrawString(mystring,font, SystemBrushes.Highlight, 10, 10)
font.Dispose
g.Dispose
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 3962
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 27 раз
- Поблагодарили: 22 раза
- Контактная информация:
Кстати если кисть создал таким способом
то, насколько я понимаю Dispose ей делать не нужно?
Код: Выделить всё
FillRectangle(new SolidBrush(Color.Blue),new Rectangle(1,1,50,50))
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
Блин, что же я написал-то... про Dispose(). Тяжело в воскресенье утром мозги шевелятся, пришлось встряхнуть концертом ABBA на Wembley
Вобщем, так. Если .NET-класс реализует интерфейс IDisposable и следовательно имеет метод Dispose(), то однозначно надо его вызывать, т. к. явно идёт работа с unmanaged-ресурсами (шрифт, файл, соединение с бд и т.д.), которые освобождаются именно в Dispose() (ссоглашение MS). Обычная практика такая:
В c# есть короткая форма
using(...), которая автоматом вызывает блок finally. Не знаю, есть ли что-либо подобное в кларе.нет.
Вобщем, так. Если .NET-класс реализует интерфейс IDisposable и следовательно имеет метод Dispose(), то однозначно надо его вызывать, т. к. явно идёт работа с unmanaged-ресурсами (шрифт, файл, соединение с бд и т.д.), которые освобождаются именно в Dispose() (ссоглашение MS). Обычная практика такая:
Код: Выделить всё
try
{
Создать unmanaged-объект()
и работать с ним()
}
catch(...)
{
}
finally
{
объект.Dispose();
}
using(...), которая автоматом вызывает блок finally. Не знаю, есть ли что-либо подобное в кларе.нет.
С уважением, ДП
- Admin
- Администратор
- Сообщения: 3962
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 27 раз
- Поблагодарили: 22 раза
- Контактная информация:
C Dispose все равно не совсем понятно...
Что происходит в данном случае?
Что происходит в данном случае?
Код: Выделить всё
FillRectangle(new SolidBrush(Color.Blue),new Rectangle(1,1,50,50))
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
В MSDN они вызывают Dispose():
Код: Выделить всё
// Create a custom brush using a semi-transparent color, and
// then fill in the rectangle.
Color customColor = Color.FromArgb(50, Color.Gray);
SolidBrush shadowBrush = new SolidBrush(customColor);
e.Graphics.FillRectangles(shadowBrush, new RectangleF[]{rectFToFill});
// Dispose of the brush.
shadowBrush.Dispose();
С уважением, ДП