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

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


Выпуск # 742

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Всем привет.
написал небольшое приложение на c#, данные хранятся в MS Access.
Форма добавления записи в БД. Добавляется запись в основную таблицу, потом выполняется запрос на поиск id только что добавленной записи, а дальше зная id добавляются данные в связанную таблицу.
 int idAddedSubscrib = 0;            
            OleDbConnection connect = new OleDbConnection(data.connection.ConnectionString);
            OleDbCommand cmd = new OleDbCommand(
                "INSERT INTO subscrib ([surname], [name], [fathername], [phone], [post], [street], [house], [flat], [note]) " +
            "Values (@surname, @name, @fathername, @phone, @post, @street, @house, @flat, @note)", connect);
            cmd.Parameters.AddWithValue("surname", SurnameTextBox.Text);
            cmd.Parameters.AddWithValue("name", NameTextBox.Text);
            cmd.Parameters.AddWithValue("fathername", FathernameTextBox.Text);
            cmd.Parameters.AddWithValue("phone", !string.IsNullOrEmpty(PhoneTextBox.Text) ? PhoneTextBox.Text : string.Empty);
            cmd.Parameters.AddWithValue("post", PostComboBox.SelectedItem);
            cmd.Parameters.AddWithValue("street", StreetTextBox.Text);
            cmd.Parameters.AddWithValue("house", HouseTextBox.Text);
            cmd.Parameters.AddWithValue("flat", !string.IsNullOrEmpty(FlatTextBox.Text) ? FlatTextBox.Text : string.Empty);
            cmd.Parameters.AddWithValue("note", !string.IsNullOrEmpty(NoteTextBox.Text) ? NoteTextBox.Text : string.Empty);
            try
            {
                // add new subscriber
                connect.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                #region find id of new subscriber
                cmd.Dispose();
                cmd = new OleDbCommand("SELECT [id] " +
                                       " FROM subscrib WHERE " +
                                       "[surname] like ? and " +
                                       "[name] like ? and " +
                                       "[fathername] like ? and " +
                                       "[phone] like ? and " +
                                       "[post] like ? and " +
                                       "[street] like ? and " +
                                       "[house] like ? and " +
                                       "[flat] like ? and " +
                                       "[note] like ? ");

                OleDbDataAdapter adapter = new OleDbDataAdapter(cmd.CommandText, connect);
                adapter.SelectCommand.Parameters.AddWithValue("surname", SurnameTextBox.Text);
                adapter.SelectCommand.Parameters.AddWithValue("name", NameTextBox.Text);
                adapter.SelectCommand.Parameters.AddWithValue("fathername", FathernameTextBox.Text);
                adapter.SelectCommand.Parameters.AddWithValue("phone", !string.IsNullOrEmpty(PhoneTextBox.Text)? PhoneTextBox.Text : string.Empty);
                adapter.SelectCommand.Parameters.AddWithValue("post", PostComboBox.SelectedItem);
                adapter.SelectCommand.Parameters.AddWithValue("street", StreetTextBox.Text);
                adapter.SelectCommand.Parameters.AddWithValue("house", HouseTextBox.Text);
                adapter.SelectCommand.Parameters.AddWithValue("flat",!string.IsNullOrEmpty(FlatTextBox.Text)? FlatTextBox.Text: string.Empty);
                adapter.SelectCommand.Parameters.AddWithValue("note",!string.IsNullOrEmpty(NoteTextBox.Text)? NoteTextBox.Text: string.Empty);
                adapter.Fill(table);
                #endregion   
            }
            
            #region get value id new subscriber
            if (table.Rows.Count > 0)
            {
                idAddedSubscrib = Convert.ToInt32(table.Rows[0][0].ToString());
            }
            else
            {
                MessageBox.Show("Неизвестная ошибка. Повторите  ввод подписчика", "Cant find subscrib id", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            #endregion
дальше идет по тексту добавление записей в связанную таблицу. И тут возникает проблема. Не часто! Но бывает. Выкидывает сообщение Cant find subscrib id. То есть запись физически добавлена, но запрос который должен найти её id ничего не нашел.
Подскажите как исправить код, чтобы исключить эту ошибку вообще.

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

Ответ #1 @Shark1 29.08.2013 23:49
#region get value id new subscriber
if (table.Rows.Count > 0)
{
idAddedSubscrib = Convert.ToInt32(table.Rows[0][0].ToString());
}
else
{
MessageBox.Show("Неизвестная ошибка. Повторите ввод подписчика", "Cant find subscrib id", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
#endregion

думаю можно и не обрабатывать меседж если данные добавляются:
if (table.Rows.Count > 0)
{
idAddedSubscrib = Convert.ToInt32(table.Rows[0][0].ToString());
return;
}

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

Добавить свой ответ в эту тему
Hiper-v @rusiko 29.08.2013 19:41
Привет всем. Сегодня попалась статья про установку и настройку hiper-v server. И накопилось множество вопросов. Помогите мне пожайлуста с этим справится. Так вот в статье пишут что hiper-v server это отдельная ОС, а также есть роль Windows server-ных ОС под названием hiper-v. Если роль Windows server-ных ОС hiper-v может делать все что делает сама ОС hiper-v и если ОС hiper-v не умеет ничего больше делать как кроме управления виртуальными серверами, так зачем тогда компаниям покупать и устанавливать ОС hiper-v? Ведь какя-то роль windows server 2008r2 это уже делает. Еще в статье показывали как устанавливать и настраивать ОС hiper-v. И для установки выбрали физический сервер. А потом через комп юзера с помощью программы RAST подключились к ОС hiper-v. возникает вопрос так где же тут виртулиализация? Ведь ОС hiper-v установили на физическую машину. Пишут что ОС hiper-v не имеет графического интефейса. Тогда как эта ОС управляет виртуальными серверами через консоль? И самое главное как, где и в какой форме можно найти виртуальные сервера? И последнее в статье показывали как установить ОС hiper-v и потом через комп. юзера подключились к этому серверу с помощью диспетчера hiper-v (котопый установили на компе юзера), а также с помощью этого же диспетчера добавляли новые сервера (хотя не знаю откуда брали эти виртуальные сервера). Вопрос: если все делает юзерский диспетчер зачем тогда ОС hiper-v на физической машине? Спасибо заранее. И прошу прщения за такой большой вопрос. Может многое неправильно изложил, но думаю что вы все поймете. Спасибо!!!

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

Ответ #1 @Алексей Немиро 29.08.2013 20:20
Kbyte.Ru как-то жил под Hyper-V.
Сервер Hyper-V ничем не отличается от физического, но он виртуальный. Это как например, в VirtualBox, VMware, Virtual PC и т.п. Но более продвинутая и заточена под максимально эффективное использование ресурсов сервера, сравнимое с физическим компьютером. Хотя, например VirtualBox тоже имеет некоторые возможности аппаратной виртуализации, но Hyper-V эти механизмы развиты значительно лучше.
если ОС hiper-v не умеет ничего больше делать как кроме управления виртуальными серверами, так зачем тогда компаниям покупать и устанавливать ОС hiper-v?

Сервер Hyper-V - управляет виртуальными серверами. Т.е. грубо говоря это VirtualBox, который кроме запуска виртуальных компьютеров в общем-то ничего делать больше не умеет.

На виртуальных серверах устанавливаются обычные операционные системы, с которыми можно работать, даже не подозревая, что они размещены на виртуальных серверах.
А потом через комп юзера с помощью программы RAST подключились к ОС hiper-v. возникает вопрос так где же тут виртулиализация?
Про RAST не слышал, Google тоже не признается, что это :) Может написано неверно?

По RDP (удаленный рабочий стол) можно подключаться, все как с обычными серверами.
Пишут что ОС hiper-v не имеет графического интефейса
Не знаю, не знаю. Это же Windows, как она может быть без интерфейса :) Да и вот, тут например пишут, чтобы создать виртуальную машину, придется нажать на кнопку Пуск.

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

Ответ #2 @Алексей Немиро 29.08.2013 20:23
В дополнение, оказывается помимо Microsoft Windows Server (с поддержкой Hyper-V) есть еще отдельный (бесплатный) продукт - Microsoft Hyper-V Server, возможно в нем и нет интерфейса. А если управлять Hyper-V из под Microsoft Windows Server, то будет графический интерфейс.

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

Ответ #3 @roma_rio 29.08.2013 22:52
если ОС hiper-v не умеет ничего больше делать как кроме управления виртуальными серверами, так зачем тогда компаниям покупать и устанавливать ОС hiper-v?
чтобы на один физический сервер установить, например, 5 виртуальных серверов. Теперь понимаешь сколько бабла экономится?

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

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

Я как-то показывал часы с ProgressBar-ми.
Теперь с помощью тов."Shark1", оформил их в WPF.

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

Как создать графический редактор?

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

Ответ #1 @Shark1 27.08.2013 18:46
А смысл ...

Хорошие графические редакторы уже давно написаны ...

И пишутся целыми командами программистов ...

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

Ответ #2 @Алексей Немиро 27.08.2013 19:55
Crash666:
Как создать графический редактор?
Начать можно с создания нового проекта :)

Затем можно разместить на форме PictureBox, сделать ему BackColor = White.
Затем можно сделать обработчик события Paint у PictureBox.
Затем написать какой-нибудь код :)

Еще можно разместить Menu и ContextMenu. Добавить туда всяких элементов. В общем, все как обычно.


Кстати, есть пример редактора: http://kbyte.ru/ru/Programming/Sources.aspx?id=1079&mode=show
И простые примеры рисования:
Как нарисовать что-либо на Form/PictureBox
Простой пример рисования линий
Рисование мышкой на PictureBox


Shark1:
А смысл ...
Как минимум в получении навыков работы с графикой, а в целом отработки методов разработки софта.

Хорошие редакторы написаны, а о других мы пока даже не знаем. Когда-нибудь, где-нибудь появится новый вид графических редакторов, который начнет свое существование с одной маленькой строчки кода, написанной всего одним человеком. А если ничего не делать, то ничего само не появится, особенно опыт :)

Стандартный функционал MS Paint повторить вполне реально, ну или хотя бы попытаться. Хуже в любом случае не станет.

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

Ответ #3 @Crash666 28.08.2013 07:28
Shark1, да я тут вроде язык программирования учу, я и текстовый редактор писал, хотя есть и хорошие текстовые редакторы, да и много чего есть, но учить то ведь надо и на практике....

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

Ответ #4 @Akiva 28.08.2013 16:30
Crash666,
Пройдитесь по этому этому адресу:
http://kbyte.ru/ru/Forums/Show.aspx?id=14669
Там сделано мною наброски графического редактора.
Откройте файл: Form1.zip. Посмотрите как я там мудрил.
Может она вам поможет.

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

Как выполнить
SELECT ABS(-1024)

Если вдруг у вас по итогам месяца отрицательный уровень продаж,
вы можете использовать T-SQL функцию ABS, которая возвращает
абсолютное значение числа, т.е. меняет минус на плюс.

Если подключиться к любой базе, то, возможно,
Нижеидущий код и выполниться. А если не подсоединяться, то как
Выполнить запрос?
Dim returnValue As Object
' in MSDN'2008 объявлено Dim cmd As New SqlCommand , что транслятор НЕ ПРОПУСКАЕТ !
Dim cmd As New OleDb.OleDbCommand
cmd.CommandText = "SELECT ABS(-1024)"
cmd.CommandType = CommandType.Text
returnValue = cmd.ExecuteScalar() ' ExecuteScalar: Свойство Connection не инициализировано.
MsgBox("41.после выполнения оператора " + vbCrLf +
       "in variable ""returnValue"" должно быть 1024 = " + vbCrLf +
       CStr(returnValue))
СПАСИБО!

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

Ответ #1 @Алексей Немиро 27.08.2013 17:25
если не подсоединяться, то как Выполнить запрос?
Это как? Если нет соединения с базой, то запрос, как его не выполняй, не будет выполнен. :)

В представленном фрагменте кода нет работы с данными, нет смысла в запросе к базе. Методы получения абсолютных чисел есть практически во всех языках программирования.

В Visual Basic .NET (.NET Framework):
MsgBox(Math.Abs(-1024))
'MsgBox(System.Math.Abs(-1024))

Что касается работы с данными, то в коде не хватает соединения с базой:
Dim myConn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\База.accdb;Persist Security Info=False;")'создаем соединение (внимание: нужно изменить путь к файлу базы!)
myConn.Open()'открываем соединение
cmd.Connection = myConn 'передаем соединение в команду
'теперь можно работать с базой
myConn.Close() ' в конце, закрываем соединение

Без соединения с базой, SQL-команды выполняться не могут, т.к. они выполняются в базе, а не в (VB) .NET.

PS: В 64-битных система с базами Access могут быть проблемы.
Если вдруг у вас по итогам месяца отрицательный уровень продаж
Хороший метод. Уровень продаж в минусе, а в отчете только плюсы. Вот так однажды, руководство компании обнаружит, что компания разорилась несколько лет назад

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

Ответ #2 @capetownn 28.08.2013 16:23
Алексей, СПАСИБО за ответ,
вопрос у меня возник после чтения
ВАЖНОЙ проблемы, реализованной Вами
"Как заменить все значения колонок NULL в таблице?"
Вы реализовали с помощью T_SQL,
которого я пока не знаю.
Я предполагал на основе простенького примера
реализовать Ваш код не используя T_SQL,
чтобы не забирать у Вас время.

Автор: Алексей Немиро | добавлено: 08.02.2011, 20:44 | просмотров: 2116 (1+)
Я хотел использовать Ваш код, он имеет ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ
В SQL Server есть функция ISNULL, которая принимает два параметра. Первый - значение для проверки на NULL. Второй - значение, которая функция вернет по умолчанию, если в пером параметре будет NULL. Эту функцию можно использовать в инструкции UPDATE SET, как именно, смотрите в этом примере. Также в примере продемонстрирован более "гуманный" (без функции ISNULL) способ обновления нулевых полей таблицы.
-- таблица для демонстрации работы примера 
	DECLARE @t TABLE (id int identity, first_name nvarchar(50), last_name nvarchar(50)); 
	  
	-- заполняем таблицу данными,  
	-- в двух последних строчках колонка last_name имеет значение NULL 
	INSERT INTO @t 
	SELECT 'Василий', 'Кбайтов'; 
	INSERT INTO @t 
	SELECT 'Маша', NULL; 
	INSERT INTO @t 
	SELECT 'Федя', NULL; 
	  
	-- выводим все записи 
	SELECT * FROM @t; 
	  
	-- заменяем в поле last_name все записи NULL на строку "Неизвестно" 
	UPDATE @t SET last_name = ISNULL(last_name, 'Неизвестно'); 
	  
	-- выводим все записи 
	SELECT * FROM @t; 
	-- обратите внимание, теперь в колонке last_name вместо NULL стоит строка "Неизвестно" 
	  
	-- ************************************************************************************ 
	-- ************************************************************************************ 
	-- ************************************************************************************ 
	  
	-- а теперь немного по-другому,  
	-- этот способ в плане производительности будет лучше, нежели указанный выше 
	  
	-- очищаем таблицу, для демонстрации работы примера 
	DELETE FROM @t; 
	  
	-- заполняем таблицу данными,  
	-- в двух последних строчках колонка last_name имеет значение NULL 
	INSERT INTO @t 
	SELECT 'Василий', 'Кбайтов'; 
	INSERT INTO @t 
	SELECT 'Маша', NULL; 
	INSERT INTO @t 
	SELECT 'Федя', NULL; 
	  
	-- выводим все записи 
	SELECT * FROM @t; 
	  
	-- заменяем в поле last_name все записи NULL на строку "Неизвестно" 
	UPDATE @t SET last_name = 'Неизвестно' WHERE last_name IS NULL; 
	  
	-- выводим все записи 
	SELECT * FROM @t; 
	-- обратите внимание, теперь в колонке last_name вместо NULL стоит строка "Неизвестно"

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

Ответ #3 @Алексей Немиро 28.08.2013 16:36
Вы реализовали с помощью T_SQL, которого я пока не знаю.
T-SQL - это расширение языка SQL для баз SQL Server. В Access многое не будет работать, там другой SQL, хотя функция IsNull должна быть и в нем (но работает несколько иначе, это в основном VBA (Visual Basic For Applications)).

Если нужно выбрать поля, у которых значение NULL, то в Access это будет примерно так:
SELECT
* FROM [имя таблицы] WHERE IsNull([имя поля])
Замена NULL на что-то другое:
UPDATE [имя таблицы] SET [имя поля] = 'что-то другое' WHERE IsNull([имя поля])

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

Ответ #4 @capetownn 29.08.2013 17:45
Алексей,
БОЛЬШОЕ СПАСИБО, ОК!

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

Добавить свой ответ в эту тему
Привет Всем!!!
Я создал приложение для андроида и в качестве кнопки использовал ImageButton. Чтобы картинки смотрелись четко я сделал android:bacground="@null", после этого во время нажатие кнопки ни какой реакции в кнопке нет.
Как изменить фон при нажатие кнопки.
Заранее СПАСИБО!!!

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

Приветствую Форум.
Я хочу нечто собрать с WPF,но в управлении элементами
отсутствует Timer.Как мне быть?

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

Ответ #1 @Shark1 26.08.2013 23:42
Imports System.Windows.Threading

Объявить новый экземпляр :

Dim timer As New DispatcherTimer


При инициализации добавить обработчик, задать интервал и включить таймер :

AddHandler timer.Tick, AddressOf timer_Tick
timer.Interval = TimeSpan.FromMilliseconds(1)
timer.Start()

Private Sub timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
       'написать свой код 
End Sub

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

Ответ #2 @Akiva 27.08.2013 00:22
СПАСИБО.
Зайди по этому адресу: http://www.Cyperforum.ru/beta-tecting/thread94366.html

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

Ответ #3 @Akiva 27.08.2013 00:49
...Или : http://www.Cyberforum.ru/beta-testing/thread94366.html
Найди отдел: Бета-Тестирование
тема: <Работа моего товарища> (fAkiva)
Удачи тебе, парень.
С уважением, Akiva

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

Ответ #4 @Shark1 27.08.2013 23:16
Akiva, мне непонятен твой шаг с этим ...

Зачем ? ...

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

Ответ #5 @Akiva 28.08.2013 00:06
Я долго не решался этого делать..., прости меня.
Меня просто злит ихнее хвастовство, они в большенстве своем
бездарные люди и болтуны.
Но,но это солидный портал.Если пожелаешь,покажи им(но только(.exe)!
Твои наработки будут востребованы.Еще раз прости...
Но с таймером в WPF никак не получается.В инете очень много об
этом пишут.Но или это старые наработки или с ошибками.
Хочу повторить свои часу с ProgressBar-ми,но в WPF.
С уважением, Akiva

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

Добавить свой ответ в эту тему · В теме есть еще 7 ответов. Смотреть все ответы.
Open exe file @Crash666 26.08.2013 18:33
Собственно я думаю вы знаете что exe файл открывается текстовым редактором но в нем отображаются только вопросы, как это исправить?

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

Ответ #1 @Алексей Немиро 26.08.2013 21:19
Это не исправить, так и должно быть :)
В статье по работе с файлами на C# показывал пример чтения бинарных файлов в шестнадцатеричном виде. Ниже конвертированный в VB .NET код:
Dim f As New FileInfo("C:\Windows\system32\notepad.exe")
Using fs As FileStream = f.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
    Using br As New BinaryReader(fs)
      Dim bytesRead As Integer = 0
      Dim buffer As Byte() = New Byte(255) {}
      Dim result As New StringBuilder()
      bytesRead = br.Read(buffer, 0, buffer.Length)
      While bytesRead > 0
          For i As Integer = 0 To bytesRead - 1
             result.AppendFormat("{0:x2} ", buffer(i))
          Next
          Array.Clear(buffer, 0, buffer.Length)
          bytesRead = br.Read(buffer, 0, buffer.Length)
      End While
      TextBox1.Text = result.ToString()
    End Using
End Using
Не проверял. Должно работать. В текстовое поле (TextBox1) должно вывестись содержимое бинарного файла в шестнадцатеричном виде.

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

Добавить свой ответ в эту тему
Добрый день. На форумах иногда можно встретить примеры вывода информации на главный экран. Выходить что, VB.net позволяет программировать и дополнительные экраны. Подскажите, пожалуйста, как это делается(если к видеокарте подключены несколько мониторы)?

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

Ответ #1 @Алексей Немиро 26.08.2013 11:33
Список экранов находится в коллекции Screen.AllScreens:
For Each s As Screen In Screen.AllScreens
's.DeviceName
's.Bounds
Next
Можно полистать, посмотреть, какие параметры и значения содержатся к конкретном экране.

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

Ответ #2 @Алексей Немиро 26.08.2013 11:47
Да, теоретически, если мониторов больше одного и они настроены на "удлинение" рабочей области, то в s.Bounds координаты X и Y будет разными, в зависимости от расположения монитора.
Следующий код должен пролистать все мониторы и на каждом создать новую форму, которая будет выровнена по центру экрана:
    For Each s As Screen In Screen.AllScreens
      Dim f As New Form()
      f.Left = s.Bounds.Location.X + ((s.Bounds.Width - f.Width) / 2)
      f.Top = s.Bounds.Location.Y + ((s.Bounds.Height - f.Height) / 2)
      f.Show()
    Next
(проверить не могу, монитор сейчас у меня всего один)

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

Добавить свой ответ в эту тему
Как программно сменить фон рабочего стола?

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

Ответ #1 @Алексей Немиро 24.08.2013 19:10
Private Const
SPI_SETDESKWALLPAPER As Integer = &H14
Private Const SPIF_UPDATEINIFILE As Integer = &H1
Private Const SPIF_SENDWININICHANGE As Integer = &H2

Private Declare Auto Function SystemParametersInfo Lib "user32.dll" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\путь к файлу изображения", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
(не проверял)

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

Ответ #2 @Crash666 24.08.2013 19:38
Что это вообще такое?
Private Const SPI_SETDESKWALLPAPER As Integer = &H14
объясните пожалуйста

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

Ответ #3 @Алексей Немиро 24.08.2013 19:58
Private Const SPI_SETDESKWALLPAPER As Integer = &H14

Приватная, доступная в рамках класса.
Константа - переменная с фиксированным значением, которое нельзя менять в процессе работы программы.
Имя константы - может быть любым.
Тип данных.
Значение константы, в данном случае &H14 - это шестнадцатеричное число 14, в десятичной системе будет 20. На то, что число является шестнадцатеричным, указывают символы &H. Значение константам можно писать и в десятичной системе, но обычно (в документациях) для констант используется шестнадцатеричная система.

По константам, например, у тебя на Kbyte.Ru есть идентификатор - 4117.

Это константа, т.к. идентификатор закреплен за тобой и не может быть изменен.
Если кто-то перейдет на страницу пользователя и укажет идентификатор:
http://kbyte.ru/ru/Private/Profile.aspx?uid=4117
то сайт будет знать, о каком пользователе запрашивается информация.

Аналогичным образом происходит в winAPI. Константы использовать необязательно, но с ними удобней/понятней работать.
Например, в программе можно создать константу:
Private Const Crash666 As Integer = 4117
И вместо идентификатора
"http://kbyte.ru/ru/Private/Profile.aspx?uid=4117"
передавать константу в URL:
"http://kbyte.ru/ru/Private/Profile.aspx?uid=" & Crash666
Программисту сразу будет понятно, что он запрашивает страницу с данными пользователя Crash666.

Собственное, если посмотреть на переменные, то они называются переменными, потому что могут иметь переменное (изменяемое) значение, в отличие от констант.

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

Ответ #4 @Crash666 25.08.2013 14:26
Неработает...

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

Ответ #5 @Алексей Немиро 25.08.2013 14:42
А если проверю? :)


Проверил, работает (Windows 7 x64). См. вложение.

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

Добавить свой ответ в эту тему · В теме есть еще 7 ответов. Смотреть все ответы.

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

Вакансии в IT

Требуется преподаватель по бухгалтерии и 1С в УЦ, Киев

Украина, Киев | Работа в офисе

Программист С++

Россия, Москва | Работа в офисе | 70 000,00 KBP

Инженер-программист BIOS

Россия, Москва | Работа в офисе

Web программист

Россия, Москва | Работа в офисе | 50 000,00 KBP

Программист 1С 8. 2

Россия, Москва | Работа в офисе

Программист 1С 7. 7

Россия, Москва | Работа в офисе

Программист 1С

Россия, Москва | Работа в офисе | 70 000,00 KBP

Инженер-технолог (программист)

Россия, Москва | Работа в офисе | 40 000,00 KBP

Верстальщик, веб-технолог

Россия, Москва | Работа в офисе | 60 000,00 KBP

Программист 1С

Россия, Москва | Работа в офисе | 70 000,00 KBP

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

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

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

Facebook раскрыл статистику сотрудничества с мировыми спецслужбами

Facebook раскрыл данные о запросах пользовательской информации, сделанных правоохранительными органами разных стран в первой половине 2013 года. В общей сложности, за шесть месяцев 74 страны запросили у Facebook информацию о 38 тысячах пользователей. Из России за это время поступил лишь один запрос.

29.08.2013 11:00 · Категория: Безопасность · Источник: Lenta.ru

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

Nokia сегодня анонсировала новый классический сотовый телефон Nokia 515

Nokia сегодня анонсировала новый классический сотовый телефон Nokia 515 с базовым набором функций. Как сообщили в Nokia, Россия станет одной из первых стран, где 515 поступит в продажу, наряду с Германией, Швейцарией и Польшей. В России модель будет доступна в варианте Dual SIM в черном и белом цветовых решениях. Телефон поступит в продажу в конце сентября, ориентировочная розничная цена составит 6 990 руб.

В телефоне используется устойчивое к царапинам стекло Gorilla Glass 2 с небольшим закруглением граней, что придает телефону изящный вид. 

Nokia 515 оснащена 5-мегапиксельной камерой со светодиодной вспышкой, пользователь может редактировать и обмениваться фотографиями, и использовать различные режимы съемки:

«Панорама» – для создания широкоугольных фотоснимков, в том числе групповых и пейзажных;
«Серийная съемка» – съемка до пяти кадров подряд с последующим выбором лучшей фотографии;
«Автопортрет» – режим со встроенными голосовыми подсказками для идеального центрирования автопортретов даже без фронтальной камеры.

Обмениваться фотографиями с друзьями и близкими, а также публиковать снимки в социальных сетях можно прямо из «галереи». Кроме этого, пользователи могут обмениваться фотографиями с помощью эксклюзивного сервиса Slam, встроенного в Nokia 515 и позволяющего передавать контент на другой телефон посредством Bluetooth в два простых клика без сопряжения аппаратов.

29.08.2013 10:58 · Категория: Железо · Источник: CyberSecurity.ru

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

Apple опробовала обмен старых iPhone на новые

Компания Apple, по неофициальным данным, запустила в США программу обмена старых смартфонов iPhone на новые. Обмен осуществляется в магазинах Apple Store. Работник магазина оценивает стоимость устройства и зачисляет соответствующую сумму на подарочную карту пользователя.

28.08.2013 11:50 · Категория: Железо · Источник: Lenta.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 если иное не указано отдельно.


В избранное