Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры


Выпуск # 644

Очередной выпуск рассылки! За последнее время на сайте произошло столько всего, столько всего, что все просто не уместилось в этот выпуск! Но ничего, ведь вы всегда можете ознакомиться со всеми обновлениями непосредственно посетив сайт. Кстати, помимо изменения в содержании Kbyte.Ru, появлении новых интересных материалов, проект постоянно совершенствуется технически, и вы можете принять в этом непосредственное участие, присылая свои идеи и предложения.
Надеюсь, этот выпуск будет интересен для вас. Если вы хотите увидеть в следующих выпусках что-то конкретное, напишите мне об этом на ящик subscribe@kbyte.ru.


Содержание выпуска

Читайте в этом выпуске:

Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.

Блог Kbyte.Ru

Маленькая революция на Kbyte.Ru!

Приветствую жители Kbyte.Ru!
Сегодня на сайте свершилась маленькая революция в интерфейсе. Навигация по внутренним разделам сайта была упрощена, убраны лишние элементы, добавлены вспомогательные элементы для удобства. Об этом подробнее пойдет речь далее.[cut]

У каждого пользователя/группы может быть множество подразделов. Например, у пользователя на данный момент их может быть более 20. Раньше, на левой панели в профильных разделах всегда отображался профиль текущего пользователя, т.е. ваш (если вы прошли процедуру авторизации на сайте), а на правой панели – профиль просматриваемого пользователя, или группы, либо элементы навигации по категориям статей, исходных кодов, вакансий и т.п. Выглядело это, как показано на рисунках ниже.


Рис. 1. Лента событий Kbyte.Ru (раздел «Мой Kbyte.Ru»). Слева отображается информацию о текущей учетной записи пользователя (в данном случае - Kbyte). Справа - навигация по личным разделам пользователя.


Рис. 2. Пользователь Kbyte смотрит профиль пользователя Shadowmaster. Слева по-прежнему отображается информация о текущей учетной записи пользователя (Kbyte), а справа - навигация по профилю пользователя Shadowmaster.


Рис. 3. Пользователь Kbyte просматривает групп «Смешная группа». Слева отображается информация о текущей учетной записи пользователя (Kbyte), а справа - навигация по группе.

Теперь подобная информация будет отображаться только на левой панели. Т.е. например, при просмотре профиля другого пользователя, меню с разделами своего профиля вы видеть не будете. Тоже касается и других разделов, все дополнительные элементы навигации теперь будут отображаться только слева.


Рис. 4. С новыми изменениями, при просмотре профиля другого пользователя отображается только информацию об этом пользователе. Для просмотра своей информации, нужно вернуться в свои профильные разделы (например, через вкладки в верхнем меню навигации).

Также на страницах профилей пользователей теперь будет выводиться карта расположения пользователя, если пользователь указал свои координаты.

Панель авторизации и регистрации на Kbyte.Ru была перемещена в правую часть сайта. Для пользователей прошедших процедуту авторизации на сайте, в правой панели будет приоритетно отображаться форма поиска по сайту.

Была улучшена навигация по группам. Для владельцев и администраторов групп появились вспомогательные элементы управления, теперь не придется бродить по разделам, добавить информацию в группу можно с любой страницы группы.


Рис. 5. В меню группы появляются дополнительные элементы, при наведении курсора мышки на разделы группы. Каждый раздел группы имеет вспомогательные ссылки для администрирования группы.

Теперь в группах появилась возможность транслировать RSS-каналы из различных источников. Помимо обычной загрузки новостей, есть возможность их автоматический фильтрации.

Надеюсь, что эти изменения помогут вам лучше ориентироваться в недрах нашего замечательного проекта. Если вы заметите какие-либо ошибки, пожалуйста сообщите об этом мне.

--
Благодарю за внимание,
Ваш Kbyte.Ru.

[- к содержанию -]

Форумы Kbyte.Ru

На форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки.

Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий.

Задать свой вопрос прямо сейчас

Visual Basic @scanmaster 02.06.2011 20:35
Пожалуста моможыте решыть никак немогу понять што куда.

1. Підрахувати частоту використання в тексті специфічних українських букв (“і”, “ї”, “є”). Визначити речення, що містить найбільшу кількість таких символів.
2. Замінити регістр всіх слів, які зустрічаються в тексті більше одного разу, на ПРОПИСНИЙ.

Пажалуста памагите !!!!!

[- к содержанию -]

Всем привет!
мне для программы нужно, чтобы при нажатии на кнопку на форме открывался один файл, потом открывался/очищался второй файл, первый копировался во второй (речь идет о тхт-файлах). пробую и через Copy, и через CopyTo, но ничего не получается( поможете? C#

[- к содержанию -]

Ответ #1 @Edlin 01.06.2011 15:39
 
System.IO.File.Copy(@"c:\temp\sourceFile.txt",@"c:\temp\destinationFile.txt", true); 

[- к содержанию -]

Добавить свой ответ в эту тему
SQl запрос @Osminok 30.05.2011 15:49
Доброго времени суток!
У меня есть запрос. результат мне дает 6 поле.
поле 5= поле 1+поле3
поле 6=поле 2+поле4.
Вопрос: Как сделать так чтобы если поле 1(поле 2) или поле 3(поле 4) не имеют значение тогда поле 5(поле 6)= поле1(поле2) или поле 3(поле4)?

[- к содержанию -]

Ответ #1 @Shadowmaster 30.05.2011 17:14
Если проверять на значение NULL, то для этого есть функция ISNULL(поле, значение по умолчанию):
SELECT ISNULL([поле1], [поле2]) AS [новое_поле] FROM table1
Так можно и с несколькими полями сделать:
SELECT ISNULL([поле1], ISNULL([поле2], [поле3])) AS [новое_поле] FROM table1
В примере выше, если поле1 = NULL, и поле2 = NULL, то будет выведено поле3.

Если без NULL, то нужно использовать инструкцию CASE WHEN:
SELECT (CASE WHEN [поле1] = '' THEN [поле2] ELSE [поле1] END) AS [новое_поле] FROM table1
В примере выше, если поле1 содержит пустую строку, то будет использоваться значение из поля2, в противном случае - значение из поля1.
Уровень вложенности может быть любым. Можно проверять сразу несколько полей:
CASE WHEN [поле1] = '' AND [поле2] = '' THEN [поле3] ELSE [поле1] + ' ' + [поле2] END
Также можно использовать функцию ISNULL для проверки полей на значение NULL в инструкции CASE WHEN.

[- к содержанию -]

Ответ #2 @Osminok 02.06.2011 07:30
Shadowmaster, спасибо большое

[- к содержанию -]

Добавить свой ответ в эту тему
Доброго времени суток, господа.

Чёй-то я не могу понять одну вещь: как прикрутить к своему классу событие MOUSE DOWN?
В MSDN как-то замудрённо всё описано и непонятно.

Есть класс КВАДРАТ - рисует прямоугольник на форме
INHERITS CONTROL не писАл туда.
Хотелось бы, чтобы он при нажатии на нём правой кнопки мыши менял PEN.DASHSTYLE
помогите кто чем может

[- к содержанию -]

Ответ #1 @Edlin 30.05.2011 13:44
Если класс не наследуется от Control, то ни о каких событиях мыши речи не идет. Он просто не участвует в цикле событий, не получает сообщений. Ты можешь либо все-таки наследовать от Control, либо организовать обработку событий на уровне формы, на которой ты рисуешь свои квадраты. Алгоритм примерно следующий:

1) Пользователь щелкает мышью по нарисованному на форме квадрату и у формы возникает событие Mouse Down.
2) По координатам мыши ты определяешь, на каком квадрате произошел щелчок. Или щелчок был на пустом месте.
3) Ты вызываешь какой-нибудь метод у найденного экземпляра твоего класса квадрата (например, RaiseMouseDownEvent).
4) Этот метод вызывает вручную написанное тобой событие MouseDown квадрата.

[- к содержанию -]

Ответ #2 @Сергей 30.05.2011 15:52
Edlin, спасибо.
Т.е. мой квадрат получателем событий мыши никак нельзя назначить?
А как же тогда сам CONTROL их получает?
читать MSDN и пр. уже пытался. Там начинается: делегаты.... ну и прочее AdressOF.
Мне пока что такое не очень понятно. Может где-то есть литература попроще?

[- к содержанию -]

Ответ #3 @Сергей 30.05.2011 18:50
Нашёл сие:

Public
Class MyButtonSimple 
    Inherits Button 
 
    ' Create a custom routed event by first registering a RoutedEventID 
    ' This event uses the bubbling routing strategy 
    Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple)) 
 
    ' Provide CLR accessors for the event 
    Public Custom Event Tap As RoutedEventHandler 
        AddHandler(ByVal value As RoutedEventHandler) 
            Me.AddHandler(TapEvent, value) 
        End AddHandler 
 
        RemoveHandler(ByVal value As RoutedEventHandler) 
            Me.RemoveHandler(TapEvent, value) 
        End RemoveHandler 
 
        RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs) 
            Me.RaiseEvent(e) 
        End RaiseEvent 
    End Event 
 
    ' This method raises the Tap event 
    Private Sub RaiseTapEvent() 
        Dim newEventArgs As New RoutedEventArgs(MyButtonSimple.TapEvent) 
        MyBase.RaiseEvent(newEventArgs) 
    End Sub 
 
    ' For demonstration purposes we raise the event when the MyButtonSimple is clicked 
    Protected Overrides Sub OnClick() 
        Me.RaiseTapEvent() 
    End Sub 
 
End Class 

может, кто поможет расшифровать (например RoutedEvent, а то его барсик подчёркивает)
ну и заодно подскажите: то я нашёл, что хотел или ошибся?

[- к содержанию -]

Ответ #4 @Edlin 31.05.2011 10:31
Этот код относится к технологии WPF. Для WinForms он не подойдет.

[- к содержанию -]

Ответ #5 @Сергей 31.05.2011 17:59

3) Ты вызываешь какой-нибудь метод у найденного экземпляра твоего класса квадрата (например, RaiseMouseDownEvent).
4) Этот метод вызывает вручную написанное тобой событие MouseDown квадрата.

я праильно понимаю, что для такого варианта (когда определяешь на форме положение квадрата по щелчку на ней), нет смысла вообще писать какие-либо EVENT?

[- к содержанию -]

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
Ну типа на ХП видео если включаешь выбираешь в режиме театра то на телик идет полноэкранный режим
кто поймет о чем я -хорошо, так вот в win-7 - эта штука не работает, по поисковикам... , жалуются все
может у кого-то, случайно, есть решение ?

[- к содержанию -]

собственно
Как распечатать richTextBox .. с картинками и с форматированием RTF ??

[- к содержанию -]

Ответ #1 @[i]Pro 28.05.2011 17:52
Компонент PrintDocument, не? Явно надо копать в его сторону :)

P.S.
Принтера под рукой нету протестировать...

[- к содержанию -]

Ответ #2 @ArkIv 29.05.2011 01:24
хотелось бы в RTF и с картинками.. все что у меня есть печатает чисто текст..
поэтому собственно и вопрос ? а у когонибудь получилось , и как ?

[- к содержанию -]

Добавить свой ответ в эту тему
DataGridView padding @ArkIv 28.05.2011 04:29
Ну вот бъюся я и ни как не могу найти как.. малой кровью сделать так чтоб
не было отступов в строке от текста (в ячейке)..
ну в ячейках Padding..как-то не так реагирует т.е. прибавить можно а как убавить то, то что есть ?
ну блин по 2-4 пиксела лишних.. (и что интересно по моему только сверху) че делать ? - ну мешает оно мне .
я к тому что хочу чтоб текст в ячейках был без громадных растояний друг от друга.. ну както так..
Auto.... работает - но пиксела 4 наверно оставляет сверху текста в ячейке - ну все обыскал..
------------------------
пора раздел программирование для MS Windows
разделять на .NET и win32
и очень хочется раздел по WPF - я понимаю что староверы...
но жизнь идет.. на линукс не хотим.. значит винда - а тут прогресс какой никакой..
значит надо подстраиваться..

[- к содержанию -]

Массив @Ильнур 27.05.2011 20:43
"Найти сумму 1го 4го 9го 16го и так далее включая 81-й элэмэнт массива состоящего из 100 целыых случайных чисел каждое из которых лежит в пределах от 2 до 22.", помогите пожалуйста написать эту программу, а то я нихера не понял

[- к содержанию -]

Ответ #1 @ArkIv 28.05.2011 06:07
Да тоже не понял . а откуда такие циферьки берутся? интересно а что там далее.
девятка выбивается из ряда.. ну тут гадать и гадать конечно..

[- к содержанию -]

Ответ #2 @Edlin 30.05.2011 10:37
 
int sum = 0; 
for(int i = 0; i <= 9; i++) 
{ 
    sum = sum + arr[i * i]; 
} 

[- к содержанию -]

Добавить свой ответ в эту тему

Все темы и обсуждения

Исходные коды

Печать RichTextBox

Visual Basic .NET: Элементы управления Windows @Microsoft 29.05.2011 13:56
Элемент управления RichTextBox по умолчанию не содержит методов, которые могли бы распечатать его содержимое как есть (с сохранением форматирования, изображений и т.п.). В данном примере содержится наследованный от RichTextBox элемент управления, который позволяет печатать своё содержимое посредства API.
Option Explicit On  
 
Imports System 
Imports System.Windows.Forms 
Imports System.Drawing 
Imports System.Runtime.InteropServices 
Imports System.Drawing.Printing 
 
Namespace RichTextBoxPrintCtrl 
   Public Class RichTextBoxPrintCtrl 
      Inherits RichTextBox 
      ' Convert the unit that is used by the .NET framework (1/100 inch)  
      ' and the unit that is used by Win32 API calls (twips 1/1440 inch) 
      Private Const AnInch As Double = 14.4 
 
      <StructLayout(LayoutKind.Sequential)> _ 
       Private Structure RECT 
         Public Left As Integer 
         Public Top As Integer 
         Public Right As Integer 
         Public Bottom As Integer 
      End Structure 
 
      <StructLayout(LayoutKind.Sequential)> _ 
      Private Structure CHARRANGE 
         Public cpMin As Integer          ' First character of range (0 for start of doc) 
         Public cpMax As Integer          ' Last character of range (-1 for end of doc) 
      End Structure 
 
      <StructLayout(LayoutKind.Sequential)> _ 
      Private Structure FORMATRANGE 
         Public hdc As IntPtr             ' Actual DC to draw on 
         Public hdcTarget As IntPtr       ' Target DC for determining text formatting 
         Public rc As Rect                ' Region of the DC to draw to (in twips) 
         Public rcPage As Rect            ' Region of the whole DC (page size) (in twips) 
         Public chrg As CHARRANGE         ' Range of text to draw (see above declaration) 
      End Structure 
 
      Private Const WM_USER As Integer = &H400 
      Private Const EM_FORMATRANGE As Integer = WM_USER + 57 
 
      Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wp As IntPtr, ByVal lp As IntPtr) As IntPtr 
 
      ' Render the contents of the RichTextBox for printing 
      ' Return the last character printed + 1 (printing start from this point for next page) 
      Public Function Print(ByVal charFrom As Integer, ByVal charTo As Integer, ByVal e As PrintPageEventArgs) As Integer 
 
         ' Mark starting and ending character  
         Dim cRange As CHARRANGE 
         cRange.cpMin = charFrom 
         cRange.cpMax = charTo 
 
         ' Calculate the area to render and print 
         Dim rectToPrint As RECT 
         rectToPrint.Top = e.MarginBounds.Top * AnInch 
         rectToPrint.Bottom = e.MarginBounds.Bottom * AnInch 
         rectToPrint.Left = e.MarginBounds.Left * AnInch 
         rectToPrint.Right = e.MarginBounds.Right * AnInch 
 
         ' Calculate the size of the page 
         Dim rectPage As RECT 
         rectPage.Top = e.PageBounds.Top * AnInch 
         rectPage.Bottom = e.PageBounds.Bottom * AnInch 
         rectPage.Left = e.PageBounds.Left * AnInch 
         rectPage.Right = e.PageBounds.Right * AnInch 
 
         Dim hdc As IntPtr = e.Graphics.GetHdc() 
 
         Dim fmtRange As FORMATRANGE 
         fmtRange.chrg = cRange                 ' Indicate character from to character to  
         fmtRange.hdc = hdc                     ' Use the same DC for measuring and rendering 
         fmtRange.hdcTarget = hdc               ' Point at printer hDC 
         fmtRange.rc = rectToPrint              ' Indicate the area on page to print 
         fmtRange.rcPage = rectPage             ' Indicate whole size of page 
 
         Dim res As IntPtr = IntPtr.Zero           
 
         Dim wparam As IntPtr = IntPtr.Zero 
         wparam = New IntPtr(1) 
 
         ' Move the pointer to the FORMATRANGE structure in memory 
         Dim lparam As IntPtr = IntPtr.Zero 
         lparam = Marshal.AllocCoTaskMem(Marshal.SizeOf(fmtRange)) 
         Marshal.StructureToPtr(fmtRange, lparam, False) 
 
         ' Send the rendered data for printing  
         res = SendMessage(Handle, EM_FORMATRANGE, wparam, lparam) 
 
         ' Free the block of memory allocated 
         Marshal.FreeCoTaskMem(lparam) 
 
         ' Release the device context handle obtained by a previous call 
         e.Graphics.ReleaseHdc(hdc) 
 
         ' Return last + 1 character printer 
         Return res.ToInt32() 
      End Function 
 
   End Class 
End Namespace

[- к содержанию -]

Все исходные коды

Вакансии в IT

PL/SQL Разработчик (г.Москва, 90000)

Россия, Москва, СПб, Новосибирск | Работа в офисе | 3 000.00 USD

Все вакансии в IT · Создать резюме

[- к содержанию -]

Новости мира IT

Intel представила новые модели процессоров Atom

Корпорация Intel вчера представила новые модели мобильных процессоров Atom, предназначенных для работы в самых бюджетных моделях нетбуков ценовой категории около 200 долларов. Новый одноядерный Atom N435 имеет всего 512 Кб кеш-памяти и работает на частоте 1,3 ГГц, что делает его самым медленным чипом в последней линейке Atom.

Также корпорация презентовала более скоростные и мощные модели Atom N450 и N455, работающие на частоте 1,66 ГГц.

02.06.2011 11:19 · Категория: Железо · Источник: CyberSecurity.ru

[- к содержанию -]

Oracle уступает контроль над OpenOffice.org в пользу Apache

Oracle уступила контроль над открытым офисным пакетом OpenOffice.org в пользу Apache Software Foundation. Теперь база исходных кодов формально перейдет под контроль ASF, пополнив инкубатор открытых проектов Apache.

На сегодня OpenOffice.org является самым популярным бесплатным офисным набором и основным конкурентом Microsoft Office. В заявлении Oracle говорится, что передача OpenOffice.org и всех его исходников "демонстрирует приверженность открытым технологиям и разработчикам свободных решений".

"Пожертвование OpenOffice.org в пользу Apache дает этому проекту зрелую, открытую и хорошо организованную инфраструктуру для дальнейшего развития. Модель Apache Software Foundation предусматривает возможности сосуществования как бесплатной, так и коммерческих версий", - говорит Люк Ковальски, руководитель Oracle Corporate Architecture Group.

02.06.2011 11:19 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

[- к содержанию -]

К 2015 году годовой объем интернет-трафика превысит 966 экзабайт

Cisco сегодня опубликовала новый вариант индекса сетевого развития Cisco Visual Networking Forecast 2011-2015, согласно которому к 2015 году количество электронных устройств, подключенных к интернету, превысит 15 млрд штук, то есть на каждого жителя планеты придется примерно по 2,5 сетевых устройства. Также компания прогнозирует, что к тому же 2015 году годовой объем интернет-трафика превысит 966 экзабайт.

В отчете говорится, что лишь с 2014 по 2015 годы объемы интернет-трафика возрастут на 200 экзабайт, что больше, чем объем трафика, переданного в интернете за 2010 год.


В Cisco полагают, что взрывной рост интернет-подключенных устройств может начаться примерно с конца 2012 года, когда начнут активно развиваться технологии коммуникаций M2M (Mashine-to-Mashine). В то же время, согласно прогнозам Cisco, к 2015 году количество интернет-пользователей по всему миру превысит 3 млрд человек или 40% от общего населения планеты.

Также в прогнозе производителя говорится, что в течение предстоящих 4,5 лет средняя скорость широкополосного подключения в мире вырастет 4-кратно: с 7Мбит/сек до 28 Мбит/сек. Компания отмечает, что за последние два года скорость ШПД уже удвоилась с 3,5 до 7 Мбит/сек.

Прогнозирует компания и рост объемов ежемесячного трафика, которые к 2015 году достигнут 80,5 экзабайт/мес, против 20,2 экзабайт/мес в 2010 году. Средняя мировая загруженность сетей к 2015 году составит 245 терабайт/сек, что эквивалентно 200 млн одновременно открытым потоковым мультимедийным сессиям. Самым большим генератором трафика станет Азиатско-тихоокеанский регион, который с показателем 21,4 экзабайта/мес обойдет Северную Америку с показателем 22,3 экзабайта/мес.

 

02.06.2011 11:18 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

[- к содержанию -]

Все новости


Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей:

Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC

Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter.

Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты.


Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT.
Kbyte.Ru является парнёром компаний Mail.Ru Group, WebMoney Transfer, Ozon.Ru и др.
Выпуск рассылки подготовлен автоматически. Все права на материалы выпуска принадлежат Kbyte.Ru если иное не указано отдельно.


В избранное