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

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


Выпуск # 741

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Всем добрый день. Искренне надеюсь на вашу помощь
У меня есть определенные ХМЛ-файл, в котором содержится информация о таблице
В этой таблице 20 колонок
При этом, в изначальном отображении страницы содержатся только 5 колонок, а остальные скрыты
Нужно, что бы при клике на каждый пункт таблицы браузер производил переадрессацию на полное описание данного пункта таблицы
Подозреваю, что это нужно делать через цикл, который сможет создать данные страницы для каждого пункта. Спасибо

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

Ответ #1 @Алексей Немиро 22.08.2013 19:17
Можно добавить кнопку:
<asp:ButtonField Text="Детали" CommandName="details"  />
и обрабатывать нажатие на нее в событии RowCommand:
<asp:GridView
ID="GridView1" OnPageIndexChanging="GridView1_PageIndexChanging"  
					runat="server" AutoGenerateColumns="False" 
            style=""margin-top:" 0px" allowpaging="true" PageSize="35" 
onrowcommand="GridView1_RowCommand">
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "details")
  {
    //Convert.ToInt32(e.CommandArgument)//индекс строки, на которую нажал пользователь
  }
}

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

Ответ #2 @r3v4ek 22.08.2013 22:50
Попробовал, получилось немного не то... в этом событии открывается вся полная таблица целиком, а мне нужно, что бы открывалась в новом окне только информация по той строке, на которую я нажал

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

Добавить свой ответ в эту тему
Люди срочно помогите пожалуйста, ставил тему, заменл Какую то ExplororFrame.dll в папке C:\Windows\w... еще как то, далее завершил explorer.exe и ошибка вышла ошибка при запуске приложения 0xc00007b сразу говорю что нет рабочего стола и утилит не какие не как установить нельзя....

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

Ответ #1 @Алексей Немиро 22.08.2013 17:13
Ctrl + Shift + Delete -> Запустить диспетчер задач
Если запустится, меню Файл -> Новая задача (выполнить)
В появившееся окно ввести: exprorer и нажать на кнопку Ok.

Если не запустится. Перезагрузить комп, в процессе загрузки, сразу после пика динамика жать Shift + F8, должно появиться меню выбора режима запуска Windows. Нужно выбрать Безопасный режим, или Безопасный режим с загрузкой сетевых драйверов (как-то так называется).

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

Если не поможет, то тогда только "Format C:".

На будущее, есть замечательная утилита, называется VirtualBox, которая позволяет создавать виртуальные машины, на которые можно устанавливать практически любую операционную систему и, которая будет работать, как на настоящем компе и которую можно убивать, убивать и еще раз убивать, если нужно :)

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

Ответ #2 @Алексей Немиро 22.08.2013 17:16
Вот еще вариант, проверка системных файлов: http://support.microsoft.com/kb/929833
1. Откройте командную строку с повышенными правами. Для этого нажмите кнопку Пуск, введите Командная строка в поле поиска , щелкните правой кнопкой мыши командную строкуи выберите команду Запуск от имени администратора. Если запрос пароля администратора или подтверждения введите пароль или нажмите кнопку Разрешить.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
sfc/scannow
3. В sfc/scannow команда сканирует все защищенные системные файлы и замена неправильных версий правильными версиями.
Командная строка, это как я писал, через Диспетчер задач можно запустить, если explorer не запускается.
Ctrl + Shift + Delete -> Запустить диспетчер задач
Если запустится, меню Файл -> Новая задача (выполнить)
В появившееся окно ввести: sfc/scannow

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

Добавить свой ответ в эту тему
Потоки @i32 22.08.2013 14:36
Привет всем..
Проблема возникла в таком виде..
Сначала сделал кучку потоков...Через If NumericUpDown1.Value = 0 Then ThreadCount = 1
Потом сделал перебор значений в форме
 '  For i = 0 To ListBox1.Items.Count - 1
        'split(i)
запрос
запрос
запрос
Что то не пошло.. Перелопатил как Алексей сказал
 Sub Main1()
        Dim t1 As New Thread(AddressOf MyThreadMethod1)
        t1.IsBackground = True
        t1.Start()
    End Sub
    Public Function MyThreadMethod1()
        Try

            For i = 0 To ListBox1.Items.Count - 1
                UpdateListItem1(i)

                ProxyAdr1 = ListBox1.Items(i)

                ' Dim prox As New WebProxy(ProxyAdr1)
                MsgBox(ProxyAdr1)' для проверки
                Return ProxyAdr1
            Next i
            ProxyAdr1 = ""
        Catch ex As Exception
            ' ProxyAdr.Enqueue(i)
        End Try
    End Function
    Public Sub UpdateListItem1(ByVal i As Integer)
        If Me.InvokeRequired Then
            Me.Invoke(New Action(Of Integer)(AddressOf UpdateListItem1), i)
            Return
        End If
        If i = ListBox1.Items.Count - 1 Then
            MsgBox("ППЦ! ")
            For i = 0 To Threads.Count - 1 ' Перебираем все потоки в списке
                Threads(i).Abort() ' Принудительно завершаем каждый поток
            Next
            'Checking = False
        Else
            ListBox1.SelectedIndex = i
            ListBox1.ForeColor = Color.LightSeaGreen 'выделяем с начала текста
        End If
    End Sub
Вогнал это дело в форму...
Тоже самое... Параметор 1 ..В 3 запроса - параметрр 1 . хотя КУКИ разные...
КАК реализовать смену параметров в каждом потоке..?
Я понял что надо обнулить ProxyAdr1 = ""..- но перебрал все ..ФИГ,,,
Спасибо...

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

Ответ #1 @i32 22.08.2013 15:50
Запрос примерно такой..
If Not Checking Then
            Checking = True
            ' For i = 0 To ThreadsCount - 1
            For i As Integer = 0 To ThreadCount
                ' Dim ch As New Thread(AddressOf checkme)
                Dim ch As New Threading.Thread(New ParameterizedThreadStart(AddressOf checkme))
                ch.IsBackground = True
                ch.Start()
                Threads.Add(ch)
                '  WorkerMain()
                ' WriteTextSub(1)
            Next
        Else
            Checking = False
        End If

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

Ответ #2 @Алексей Немиро 22.08.2013 16:05
КАК реализовать смену параметров в каждом потоке..?
Передавать данные в поток можно лучше всего через метод Start:
Sub Main1()
  Dim t1 As New Thread(AddressOf MyThreadMethod1)
  t1.IsBackground = True
  t1.Start(123)
End Sub

Public Sub MyThreadMethod1(args As Object)
  'args будет содержать значение переданное при Start, т.е. в данном примере - 123
End Sub

Можно указывать только один параметр, однако он имеет объектный тип, который может быть чем угодно. Например, массивом:
Sub Main1()
  Dim t1 As New Thread(AddressOf MyThreadMethod1)
  t1.IsBackground = True
  Dim arr() As String = {"привет", "медвед"}
  t1.Start(arr)
End Sub

Public Sub MyThreadMethod1(args As Object)
  'args(0)
  'args(1)
End Sub
или анонимным типом:
Sub Main1()
  Dim t1 As New Thread(AddressOf MyThreadMethod1)
  t1.IsBackground = True
  t1.Start(New With {.text = "kbyte.ru", .value=123, .ещечтото=567,.итд = "и т.п."})
End Sub

Public Sub MyThreadMethod1(args As Object)
  'args.text
  'args.value
  'args.ещечтото
  'args.итд
End Sub

В суть кода не вникал, но если нужно, чтобы для каждого значения в ListBox1 запускался поток, то код может быть примерно таким:
Sub Main1()
  For i As Integer = 0 To ListBox1.Items.Count - 1
       Dim t1 As New Thread(AddressOf MyThreadMethod1)
       t1.IsBackground = True
       t1.Start(ListBox1.Items(i))
  Next
End Sub

Public Sub MyThreadMethod1(args As Object)
  Dim ProxyAdr1 As Object = args 'вместо Object указать нужный тип, чтобы было проще работать, а еще лучше сделать CType(args, в нужный тип)
End Sub

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

Ответ #3 @i32 22.08.2013 16:27
СПС..Буду разбераться..Сразу не проверить...Проблема всетаки в Sub Main1()
А если через форму запустить..?
 For i = 0 To ListBox1.Items.Count
- 1
        split(i)
запрос
запрос
запрос
Next
'''''''''''''''''''''''''''''''

Dim ch As New Threading.Thread(New ParameterizedThreadStart(AddressOf checkme))
В чем ошибка..?

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

Ответ #4 @i32 22.08.2013 16:38
Просто выйдет поменьше кода...Почему каждый поток параметр берет 1. а куки по потоку свои...БЛИН гдето я в просере..

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

Ответ #5 @Алексей Немиро 22.08.2013 16:58
Набросал пример проверки доступности прокси-серверов по списку из текстового файла:
http://files.foxtools.ru/Api/Examples/Visual%20Basic%20.NET/CheckProxyExample.zip

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

Добавить свой ответ в эту тему · В теме есть еще 7 ответов. Смотреть все ответы.
Подскажите пожалуйста как создать график функции x/(x^2-2) (это функция с двумя асимптотами в точке х=-2 и х=2) и вставить его в Word
Если можно то чтобы была координатная сетка которую можно изменять (т.е. с разным шагом подписи : 1; 1,5; 2 как по оси Х так и по оси У)

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

Суть проблемы:
1. Создана форма. На Form1 единственный элемент TextBox1.
2. Открыта «Книга1» Excel
3. Создано стандартное соединение СОМ .
Dim Exc As Object = CreateObject("Excel.Application")
Exc.Workbooks.open("F:\Documents and Settings\.......................\........xlsx") 
Exc.Visible = True
Exc.Sheets(1).Activate()
TextBox1.Text = Exc.Sheets(1).Cells.Item(j, 7).Value


4. Необходимо чтобы работал следующий механизм (без КНОПКИ и без ТАЙМЕРА),
Но не получается.

Вводится в ячейку А1 число – должно отобразиться в TextBox1.(без нажатия каких-либо кнопок на Form1)
Вводится в ячейку А2 число – должно отобразиться в TextBox1.
Вводится в ячейку А3 число – должно отобразиться в TextBox1.
Вводится в ячейку А4 число – должно отобразиться в TextBox1.
………………….. и т.д.

Кто в курсе, подскажите.

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

Всем Добрый день
Есть ГридВью - вывод данных из ХМЛ файла
Нужно сделать так, что бы при вводе пользователем Определенной цифры и нажатии на кнопку его перенаправляло на нужную страницу этого самого Грид Вью.
Всем спасибо

Вот код программы:
protected void Page_Load(object sender, EventArgs e)
        {
            DataSet set = new DataSet();
            set.ReadXml(Server.MapPath("Data.xml"));
            GridView1.DataSource = set.Tables[0].DefaultView;
            GridView1.DataBind();
        }
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataBind();
        }

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

Ответ #1 @Алексей Немиро 20.08.2013 12:56
Вот же этот код:
GridView1.PageIndex = нужная цифра;
GridView1.DataBind();
Разве не работает?

int newPage = 1;
if (!int.TryParse(TextBox1.Text, out newPage)) 
{
  Response.Write("Ошибка. Необходимо указать целое число!");
  return;
}
GridView1.PageIndex = newPage;
GridView1.DataBind();

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

Ответ #2 @r3v4ek 20.08.2013 13:49
Это немного не то.
Нужно, что бы переходило на страницу С номером, который введен в текстбокс ПО нажатию кнопки

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

Ответ #3 @Алексей Немиро 20.08.2013 14:45
Свойство PageIndex элемента GridView позволяет установить либо получить номер страницы, выводимой в GridView.

protected void GridView1_PageIndexChanging(object
sender, GridViewPageEventArgs e)
{
  GridView1.PageIndex = e.NewPageIndex;
  GridView1.DataBind();
}

Событие PageIndexChanging элемента GridView происходит когда пользователь кликает на страницу в списке страниц GridView. В приведенном выше коде, после клика пользователем на определенную страницу, элементу GridView1 устанавливается свойство PageIndex в значение, полученное от клиента. То есть, если пользователь нажмет на 5 страницу, то PageIndex получит значение 5. Значение выбранной страницы берется из свойства NewPageIndex экземпляра GridViewPageEventArgs.

Проще говоря, код:
  GridView1.PageIndex = e.NewPageIndex;
  GridView1.DataBind();
меняет номер страницы GridView1.

Если все еще непонятно, то вот как это может быть:
  GridView1.PageIndex = 2;// устанавливаем вторую страницу
  GridView1.DataBind();
  GridView1.PageIndex = 5;// устанавливаем пятую страницу
  GridView1.DataBind();
Соответственно, вместо чисел, можно подставлять значение из TextBox, примерно так, как я это показал во втором фрагменте кода в своем первом ответе.

И этот код может находиться где угодно, хоть в обработчике загрузки формы, хоть в обработчике изменения значения текстового поля, ну или в обработчике события нажатия на кнопку. Для этого достаточно создать кнопку, текстовое поле, и создать обработчик нажатия на кнопку, в которой вставить код, который будет устанавливать новое значение свойству PageIndex элемента GridView1.

Кстати, в событии Page_Load, загрузку данных нужно проводить один раз, иначе после нажатия на кнопку (да и при любом другом PostBack) код может работать неправильно. Определить, была ли страница уже отправлена методом POST (был ли обратный вызов), можно проверив свойство IsPostBack текущей страницы (Page). Если свойство IsPostBack равно False, значит страница загружается первый раз и обратных вызовов не было:
protected void Page_Load(object sender, EventArgs e)
{
  if(!Page.IsPostBack){
            DataSet set = new DataSet();
            set.ReadXml(Server.MapPath("Data.xml"));
            GridView1.DataSource = set.Tables[0].DefaultView;
            GridView1.DataBind();
  }
}
Это, конечно, при условии, что свойство EnableViewState элемента GridView1 не равняется False (по умолчанию - True).

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

Ответ #4 @r3v4ek 20.08.2013 15:27
Алексей, большое спасибо за исчерпывающий ответ, но я в итоге так и сделал, при этом страницы не меняются... Буду разбираться дальше

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

Ответ #5 @Алексей Немиро 20.08.2013 15:53
См. пример в прикрепленном файле.

PostBack в данном случае обрабатывать не нужно. А в остальном все так, как я говорил.

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

Добавить свой ответ в эту тему · В теме есть еще 7 ответов. Смотреть все ответы.
Gui @i32 20.08.2013 11:41
Для абгрейда своих приложений .Использует кто либо Theme Manager VB.NET.exe или
Aeonsofts Theme Manager ..??Влияют_ли они на работу приложений ? Да и в общих чертах..

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

Ответ #1 @Алексей Немиро 20.08.2013 11:56
Покажи пример приложения с этой приблудой, и я скажу, адекватно оно себя ведет или нет :)

Сам я нестандартными интерфейсами со времен VB 6.0 не увлекаюсь.

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

Ответ #2 @i32 20.08.2013 12:00
Тут как бы выбираешь понравившую темку ..В буфер и в свое приложение..Типо вот что я выбрал..
Imports System.Drawing.Drawing2D
Imports System.ComponentModel
Imports System.Runtime.InteropServices

MustInherit Class Theme
    Inherits ContainerControl

#Region " Initialization "

    Protected G As Graphics
    Sub New()
        SetStyle(DirectCast(139270, ControlStyles), True)
    End Sub

    Private ParentIsForm As Boolean
    Protected Overrides Sub OnHandleCreated(ByVal e As EventArgs)
        Dock = DockStyle.Fill
        ParentIsForm = TypeOf Parent Is Form
        If ParentIsForm Then
            If Not _TransparencyKey = Color.Empty Then ParentForm.TransparencyKey = _TransparencyKey
            ParentForm.FormBorderstyle="FormBorderStyle.FixedSingle"
        End If
        MyBase.OnHandleCreated(e)
    End Sub

    Overrides Property Text As String
        Get
            Return MyBase.Text
        End Get
        Set(ByVal v As String)
            MyBase.Text = v
            Invalidate()
        End Set
    End Property
#End Region

#Region " Sizing and Movement "

    Private _Resizable As Boolean = True
    Property Resizable() As Boolean
        Get
            Return _Resizable
        End Get
        Set(ByVal value As Boolean)
            _Resizable = value
        End Set
    End Property

    Private _MoveHeight As Integer = 24
    Property MoveHeight() As Integer
        Get
            Return _MoveHeight
        End Get
        Set(ByVal v As Integer)
            _MoveHeight = v
            Header = New Rectangle(7, 7, Width - 14, _MoveHeight - 7)
        End Set
    End Property

    Private Flag As IntPtr
    Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
        If Not e.Button = MouseButtons.Left Then Return
        If ParentIsForm Then If ParentForm.WindowState = FormWindowState.Maximized Then Return

        If Header.Contains(e.Location) Then
            Flag = New IntPtr(2)
        ElseIf Current.Position = 0 Or Not _Resizable Then
            Return
        Else
            Flag = New IntPtr(Current.Position)
        End If

        Capture = False
        DefWndProc(Message.Create(Parent.Handle, 161, Flag, Nothing))

        MyBase.OnMouseDown(e)
    End Sub

    Private Structure Pointer
        ReadOnly Cursor As Cursor, Position As Byte
        Sub New(ByVal c As Cursor, ByVal p As Byte)
            Cursor = c
            Position = p
        End Sub
    End Structure

    Private F1, F2, F3, F4 As Boolean, PTC As Point
    Private Function GetPointer() As Pointer
        PTC = PointToClient(MousePosition)
        F1 = PTC.X < 7
        F2 = PTC.X > Width - 7
        F3 = PTC.Y < 7
        F4 = PTC.Y > Height - 7

        If F1 And F3 Then Return New Pointer(Cursors.SizeNWSE, 13)
        If F1 And F4 Then Return New Pointer(Cursors.SizeNESW, 16)
        If F2 And F3 Then Return New Pointer(Cursors.SizeNESW, 14)
        If F2 And F4 Then Return New Pointer(Cursors.SizeNWSE, 17)
        If F1 Then Return New Pointer(Cursors.SizeWE, 10)
        If F2 Then Return New Pointer(Cursors.SizeWE, 11)
        If F3 Then Return New Pointer(Cursors.SizeNS, 12)
        If F4 Then Return New Pointer(Cursors.SizeNS, 15)
        Return New Pointer(Cursors.Default, 0)
    End Function

    Private Current, Pending As Pointer
    Private Sub SetCurrent()
        Pending = GetPointer()
        If Current.Position = Pending.Position Then Return
        Current = GetPointer()
        Cursor = Current.Cursor
    End Sub

    Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
        If _Resizable Then SetCurrent()
        MyBase.OnMouseMove(e)
    End Sub

    Protected Header As Rectangle
    Protected Overrides Sub OnSizeChanged(ByVal e As EventArgs)
        If Width = 0 OrElse Height = 0 Then Return
        Header = New Rectangle(7, 7, Width - 14, _MoveHeight - 7)
        Invalidate()
        MyBase.OnSizeChanged(e)
    End Sub

#End Region

#Region " Convienence "

    MustOverride Sub PaintHook()
    Protected NotOverridable Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        If Width = 0 OrElse Height = 0 Then Return
        G = e.Graphics
        PaintHook()
    End Sub

    Private _TransparencyKey As Color
    Property TransparencyKey() As Color
        Get
            Return _TransparencyKey
        End Get
        Set(ByVal v As Color)
            _TransparencyKey = v
            Invalidate()
        End Set
    End Property

    Private _Image As Image
    Property Image() As Image
        Get
            Return _Image
        End Get
        Set(ByVal value As Image)
            _Image = value
            Invalidate()
        End Set
    End Property
    ReadOnly Property ImageWidth() As Integer
        Get
            If _Image Is Nothing Then Return 0
            Return _Image.Width
        End Get
    End Property

    Private _Size As Size
    Private _Rectangle As Rectangle
    Private _Gradient As LinearGradientBrush
    Private _Brush As SolidBrush

    Protected Sub DrawCorners(ByVal c As Color, ByVal rect As Rectangle)
        _Brush = New SolidBrush(c)
        G.FillRectangle(_Brush, rect.X, rect.Y, 1, 1)
        G.FillRectangle(_Brush, rect.X + (rect.Width - 1), rect.Y, 1, 1)
        G.FillRectangle(_Brush, rect.X, rect.Y + (rect.Height - 1), 1, 1)
        G.FillRectangle(_Brush, rect.X + (rect.Width - 1), rect.Y + (rect.Height - 1), 1, 1)
    End Sub

    Protected Sub DrawBorders(ByVal p1 As Pen, ByVal p2 As Pen, ByVal rect As Rectangle)
        G.DrawRectangle(p1, rect.X, rect.Y, rect.Width - 1, rect.Height - 1)
        G.DrawRectangle(p2, rect.X + 1, rect.Y + 1, rect.Width - 3, rect.Height - 3)
    End Sub

    Protected Sub DrawText(ByVal a As HorizontalAlignment, ByVal c As Color, ByVal x As Integer)
        DrawText(a, c, x, 0)
    End Sub
    Protected Sub DrawText(ByVal a As HorizontalAlignment, ByVal c As Color, ByVal x As Integer, ByVal y As Integer)
        If String.IsNullOrEmpty(Text) Then Return
        _Size = G.MeasureString(Text, Font).ToSize
        _Brush = New SolidBrush(c)

        Select Case a
            Case HorizontalAlignment.Left
                G.DrawString(Text, Font, _Brush, x, _MoveHeight \ 2 - _Size.Height \ 2 + y)
            Case HorizontalAlignment.Right
                G.DrawString(Text, Font, _Brush, Width - _Size.Width - x, _MoveHeight \ 2 - _Size.Height \ 2 + y)
            Case HorizontalAlignment.Center
                G.DrawString(Text, Font, _Brush, Width \ 2 - _Size.Width \ 2 + x, _MoveHeight \ 2 - _Size.Height \ 2 + y)
        End Select
    End Sub
    Protected Sub DrawText(ByVal a As HorizontalAlignment, ByVal c As Color, ByVal x As Integer, ByVal y As Integer, ByVal f As Font)
        If String.IsNullOrEmpty(Text) Then Return
        _Size = G.MeasureString(Text, Font).ToSize
        _Brush = New SolidBrush(c)

        Select Case a
            Case HorizontalAlignment.Left
                G.DrawString(Text, f, _Brush, x, _MoveHeight \ 2 - _Size.Height \ 2 + y)
            Case HorizontalAlignment.Right
                G.DrawString(Text, f, _Brush, Width - _Size.Width - x, _MoveHeight \ 2 - _Size.Height \ 2 + y)
            Case HorizontalAlignment.Center
                G.DrawString(Text, f, _Brush, Width \ 2 - _Size.Width \ 2 + x, _MoveHeight \ 2 - _Size.Height \ 2 + y)
        End Select
    End Sub

    Protected Sub DrawIcon(ByVal a As HorizontalAlignment, ByVal x As Integer)
        DrawIcon(a, x, 0)
    End Sub
    Protected Sub DrawIcon(ByVal a As HorizontalAlignment, ByVal x As Integer, ByVal y As Integer)
        If _Image Is Nothing Then Return
        Select Case a
            Case HorizontalAlignment.Left
                G.DrawImage(_Image, x, _MoveHeight \ 2 - _Image.Height \ 2 + y)
            Case HorizontalAlignment.Right
                G.DrawImage(_Image, Width - _Image.Width - x, _MoveHeight \ 2 - _Image.Height \ 2 + y)
            Case HorizontalAlignment.Center
                G.DrawImage(_Image, Width \ 2 - _Image.Width \ 2, _MoveHeight \ 2 - _Image.Height \ 2)
        End Select
    End Sub

    Protected Sub DrawGradient(ByVal c1 As Color, ByVal c2 As Color, ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer, ByVal angle As Single)
        _Rectangle = New Rectangle(x, y, width, height)
        _Gradient = New LinearGradientBrush(_Rectangle, c1, c2, angle)
        G.FillRectangle(_Gradient, _Rectangle)
    End Sub

#End Region

End Class
MustInherit Class ThemeControl
    Inherits Control

#Region " Initialization "

    Protected G As Graphics, B As Bitmap
    Sub New()
        SetStyle(DirectCast(139270, ControlStyles), True)
        B = New Bitmap(1, 1)
        G = Graphics.FromImage(B)
    End Sub

    Sub AllowTransparent()
        SetStyle(ControlStyles.Opaque, False)
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    End Sub

    Overrides Property Text As String
        Get
            Return MyBase.Text
        End Get
        Set(ByVal v As String)
            MyBase.Text = v
            Invalidate()
        End Set
    End Property
#End Region

#Region " Mouse Handling "

    Protected Enum State As Byte
        MouseNone = 0
        MouseOver = 1
        MouseDown = 2
    End Enum

    Protected MouseState As State
    Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
        ChangeMouseState(State.MouseNone)
        MyBase.OnMouseLeave(e)
    End Sub
    Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
        ChangeMouseState(State.MouseOver)
        MyBase.OnMouseEnter(e)
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
        ChangeMouseState(State.MouseOver)
        MyBase.OnMouseUp(e)
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
        If e.Button = MouseButtons.Left Then ChangeMouseState(State.MouseDown)
        MyBase.OnMouseDown(e)
    End Sub

    Private Sub ChangeMouseState(ByVal e As State)
        MouseState = e
        Invalidate()
    End Sub

#End Region

#Region " Convienence "

    MustOverride Sub PaintHook()
    Protected NotOverridable Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        If Width = 0 OrElse Height = 0 Then Return
        PaintHook()
        e.Graphics.DrawImage(B, 0, 0)
    End Sub

    Protected Overrides Sub OnSizeChanged(ByVal e As EventArgs)
        If Not Width = 0 AndAlso Not Height = 0 Then
            B = New Bitmap(Width, Height)
            G = Graphics.FromImage(B)
            Invalidate()
        End If
        MyBase.OnSizeChanged(e)
    End Sub

    Private _NoRounding As Boolean
    Property NoRounding() As Boolean
        Get
            Return _NoRounding
        End Get
        Set(ByVal v As Boolean)
            _NoRounding = v
            Invalidate()
        End Set
    End Property

    Private _Image As Image
    Property Image() As Image
        Get
            Return _Image
        End Get
        Set(ByVal value As Image)
            _Image = value
            Invalidate()
        End Set
    End Property
    ReadOnly Property ImageWidth() As Integer
        Get
            If _Image Is Nothing Then Return 0
            Return _Image.Width
        End Get
    End Property
    ReadOnly Property ImageTop() As Integer
        Get
            If _Image Is Nothing Then Return 0
            Return Height \ 2 - _Image.Height \ 2
        End Get
    End Property

    Private _Size As Size
    Private _Rectangle As Rectangle
    Private _Gradient As LinearGradientBrush
    Private _Brush As SolidBrush

    Protected Sub DrawCorners(ByVal c As Color, ByVal rect As Rectangle)
        If _NoRounding Then Return

        B.SetPixel(rect.X, rect.Y, c)
        B.SetPixel(rect.X + (rect.Width - 1), rect.Y, c)
        B.SetPixel(rect.X, rect.Y + (rect.Height - 1), c)
        B.SetPixel(rect.X + (rect.Width - 1), rect.Y + (rect.Height - 1), c)
    End Sub

    Protected Sub DrawBorders(ByVal p1 As Pen, ByVal p2 As Pen, ByVal rect As Rectangle)
        G.DrawRectangle(p1, rect.X, rect.Y, rect.Width - 1, rect.Height - 1)
        G.DrawRectangle(p2, rect.X + 1, rect.Y + 1, rect.Width - 3, rect.Height - 3)
    End Sub

    Protected Sub DrawText(ByVal a As HorizontalAlignment, ByVal c As Color, ByVal x As Integer)
        DrawText(a, c, x, 0)
    End Sub
    Protected Sub DrawText(ByVal a As HorizontalAlignment, ByVal c As Color, ByVal x As Integer, ByVal y As Integer)
        If String.IsNullOrEmpty(Text) Then Return
        _Size = G.MeasureString(Text, Font).ToSize
        _Brush = New SolidBrush(c)

        Select Case a
            Case HorizontalAlignment.Left
                G.DrawString(Text, Font, _Brush, x, Height \ 2 - _Size.Height \ 2 + y)
            Case HorizontalAlignment.Right
                G.DrawString(Text, Font, _Brush, Width - _Size.Width - x, Height \ 2 - _Size.Height \ 2 + y)
            Case HorizontalAlignment.Center
                G.DrawString(Text, Font, _Brush, Width \ 2 - _Size.Width \ 2 + x, Height \ 2 - _Size.Height \ 2 + y)
        End Select
    End Sub

    Protected Sub DrawIcon(ByVal a As HorizontalAlignment, ByVal x As Integer)
        DrawIcon(a, x, 0)
    End Sub
    Protected Sub DrawIcon(ByVal a As HorizontalAlignment, ByVal x As Integer, ByVal y As Integer)
        If _Image Is Nothing Then Return
        Select Case a
            Case HorizontalAlignment.Left
                G.DrawImage(_Image, x, Height \ 2 - _Image.Height \ 2 + y)
            Case HorizontalAlignment.Right
                G.DrawImage(_Image, Width - _Image.Width - x, Height \ 2 - _Image.Height \ 2 + y)
            Case HorizontalAlignment.Center
                G.DrawImage(_Image, Width \ 2 - _Image.Width \ 2, Height \ 2 - _Image.Height \ 2)
        End Select
    End Sub

    Protected Sub DrawGradient(ByVal c1 As Color, ByVal c2 As Color, ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer, ByVal angle As Single)
        _Rectangle = New Rectangle(x, y, width, height)
        _Gradient = New LinearGradientBrush(_Rectangle, c1, c2, angle)
        G.FillRectangle(_Gradient, _Rectangle)
    End Sub
#End Region

End Class
MustInherit Class ThemeContainerControl
    Inherits ContainerControl

#Region " Initialization "

    Protected G As Graphics, B As Bitmap
    Sub New()
        SetStyle(DirectCast(139270, ControlStyles), True)
        B = New Bitmap(1, 1)
        G = Graphics.FromImage(B)
    End Sub

    Sub AllowTransparent()
        SetStyle(ControlStyles.Opaque, False)
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    End Sub

#End Region

#Region " Convienence "

    MustOverride Sub PaintHook()
    Protected NotOverridable Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        If Width = 0 OrElse Height = 0 Then Return
        PaintHook()
        e.Graphics.DrawImage(B, 0, 0)
    End Sub

    Protected Overrides Sub OnSizeChanged(ByVal e As EventArgs)
        If Not Width = 0 AndAlso Not Height = 0 Then
            B = New Bitmap(Width, Height)
            G = Graphics.FromImage(B)
            Invalidate()
        End If
        MyBase.OnSizeChanged(e)
    End Sub

    Private _NoRounding As Boolean
    Property NoRounding() As Boolean
        Get
            Return _NoRounding
        End Get
        Set(ByVal v As Boolean)
            _NoRounding = v
            Invalidate()
        End Set
    End Property

    Private _Rectangle As Rectangle
    Private _Gradient As LinearGradientBrush

    Protected Sub DrawCorners(ByVal c As Color, ByVal rect As Rectangle)
        If _NoRounding Then Return
        B.SetPixel(rect.X, rect.Y, c)
        B.SetPixel(rect.X + (rect.Width - 1), rect.Y, c)
        B.SetPixel(rect.X, rect.Y + (rect.Height - 1), c)
        B.SetPixel(rect.X + (rect.Width - 1), rect.Y + (rect.Height - 1), c)
    End Sub

    Protected Sub DrawBorders(ByVal p1 As Pen, ByVal p2 As Pen, ByVal rect As Rectangle)
        G.DrawRectangle(p1, rect.X, rect.Y, rect.Width - 1, rect.Height - 1)
        G.DrawRectangle(p2, rect.X + 1, rect.Y + 1, rect.Width - 3, rect.Height - 3)
    End Sub

    Protected Sub DrawGradient(ByVal c1 As Color, ByVal c2 As Color, ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer, ByVal angle As Single)
        _Rectangle = New Rectangle(x, y, width, height)
        _Gradient = New LinearGradientBrush(_Rectangle, c1, c2, angle)
        G.FillRectangle(_Gradient, _Rectangle)
    End Sub
#End Region

End Class

Class AdobeTheme
    Inherits Theme
    Enum TextAlign As Integer
        Left = 0
        Center = 1
        Right = 2
    End Enum

    Private TA As TextAlign
    Public Property TextAlignment() As TextAlign
        Get
            Return TA
        End Get
        Set(ByVal value As TextAlign)
            TA = value
            Invalidate()
        End Set
    End Property


    Sub New()
        MoveHeight = 19
        TransparencyKey = Color.Fuchsia
        Me.Resizable = False
        BackColor = Color.FromArgb(51, 51, 51)
        Me.Font = New Font("Microsoft Sans Serif", 9, FontStyle.Bold)
        Me.TextAlignment = Left
    End Sub

    Public Overrides Sub PaintHook()
        G.Clear(Color.FromArgb(68, 68, 68))
        DrawGradient(Color.FromArgb(51, 51, 51), Color.FromArgb(51, 51, 51), 0, 0, Width, 37, 45S)
        G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(31, 31, 31))), 0, 37, Width, 37)
        G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(60, 60, 60))), 0, 38, Width, 38)
        G.FillRectangle(New SolidBrush(Color.FromArgb(68, 68, 68)), 1, 39, Width - 2, Height - 39 - 2)
        Select Case TA
            Case 0
                DrawText(HorizontalAlignment.Left, Color.FromArgb(120, Color.Black), 12, 18, New Font("Microsoft Sans Serif", 10, FontStyle.Bold))
                DrawText(HorizontalAlignment.Left, Color.White, 10, 16, New Font("Microsoft Sans Serif", 10, FontStyle.Bold))
            Case 1
                DrawText(HorizontalAlignment.Center, Color.FromArgb(120, Color.Black), -1, 18, New Font("Microsoft Sans Serif", 10, FontStyle.Bold))
                DrawText(HorizontalAlignment.Center, Color.White, 1, 16, New Font("Microsoft Sans Serif", 10, FontStyle.Bold))
            Case 2
                DrawText(HorizontalAlignment.Right, Color.FromArgb(120, Color.Black), -1 + CInt(G.MeasureString(Text, Font).Width / 6), 18, New Font("Microsoft Sans Serif", 10, FontStyle.Bold))
                DrawText(HorizontalAlignment.Right, Color.White, 1 + CInt(G.MeasureString(Text, Font).Width / 6), 16, New Font("Microsoft Sans Serif", 10, FontStyle.Bold))
        End Select

        G.FillRectangle(New SolidBrush(Color.FromArgb(51, 51, 51)), 1, Height - 37, Width - 2, Height - 2)
        G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(31, 31, 31))), 0, Height - 37, Width, Height - 37)
        G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(60, 60, 60))), 0, Height - 38, Width, Height - 38)

        DrawBorders(Pens.Black, Pens.Gray, ClientRectangle)
        DrawCorners(Color.Fuchsia, ClientRectangle)
    End Sub
End Class

Class AdobeButton
    Inherits ThemeControl

#Region " Properties "

    Private _Orange As Boolean
    Public Property Orange() As Boolean
        Get
            Return _Orange
        End Get
        Set(ByVal value As Boolean)
            _Orange = value
            Invalidate()
        End Set
    End Property

#End Region

    Sub New()
        BackColor = Color.FromArgb(51, 51, 51)
    End Sub

    Overrides Sub PaintHook()
        G.Clear(Color.FromArgb(102, 102, 102))
        Dim gC As Integer = 15
        Dim _text As Color = Color.White
        Dim C1, C2, C3, C4 As Color

        Select Case _Orange
            Case True
                C1 = Color.FromArgb(255, 209, 51)
                C2 = Color.FromArgb(255, 165, 13)
                C3 = Color.FromArgb(255, 195, 13)
                C4 = Color.FromArgb(255, 163, 0)
                _text = Color.White
            Case False
                C1 = Color.FromArgb(105, 105, 105)
                C2 = Color.FromArgb(56, 56, 56)
                C3 = Color.FromArgb(73, 73, 73)
                C4 = Color.FromArgb(48, 48, 48)
        End Select

        DrawGradient(C1, C2, 0, 0, Width, Height, 90S)
        DrawGradient(C3, C4, 1, 1, Width - 2, Height - 2, 90S)

        Select Case MouseState
            Case State.MouseNone
                'NULL
            Case State.MouseOver
                Select Case _Orange
                    Case True
                        _text = Color.Black
                End Select
                gC = 10
            Case State.MouseDown
                Select Case _Orange
                    Case True
                        _text = Color.White
                End Select
                gC = 5
        End Select

        For i = 1 To 5
            G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(Int(255 / ((i * gC))), Color.Black))), New Rectangle(i, i, Width - 1 - (i * 2), Height - 1 - (i * 2)))
        Next

        DrawBorders(Pens.Black, Pens.Transparent, ClientRectangle)
        DrawText(HorizontalAlignment.Center, _text, -2, 0)
    End Sub
End Class

Class AdobeCheck
    Inherits ThemeControl

#Region " Properties "
    Private _CheckedState As Boolean
    Public Property CheckedState() As Boolean
        Get
            Return _CheckedState
        End Get
        Set(ByVal v As Boolean)
            _CheckedState = v
            Invalidate()
        End Set
    End Property
#End Region

    Sub New()
        'Default properties
        Size = New Size(90, 15)
        MinimumSize = New Size(16, 16)
        MaximumSize = New Size(600, 16)
        CheckedState = False
    End Sub

    Public Overrides Sub PaintHook()
        G.Clear(Color.FromArgb(68, 68, 68))

        Select Case CheckedState
            Case True
                'Fill with blue
                DrawGradient(Color.FromArgb(62, 62, 62), Color.FromArgb(38, 38, 38), 0, 0, 15, 15, 90S)
                DrawGradient(Color.FromArgb(132, 192, 240), Color.FromArgb(78, 123, 168), 3, 3, 9, 9, 90S)
                DrawGradient(Color.FromArgb(98, 159, 220), Color.FromArgb(62, 102, 147), 4, 4, 7, 7, 90S)
            Case False
                'Fill with gray
                DrawGradient(Color.FromArgb(80, 80, 80), Color.FromArgb(60, 60, 60), 0, 0, 15, 15, 90S)
        End Select

        'Draw Box (After Fill so no overflow)
        DrawBorders(Pens.Black, Pens.DimGray, New Rectangle(0, 0, 15, 15))

        'Draw Shadow
        DrawText(HorizontalAlignment.Left, Color.Black, 18, 1)

        'Draw Text
        DrawText(HorizontalAlignment.Left, Color.White, 17, 0)
    End Sub

    Sub changeCheck() Handles Me.Click
        Select Case CheckedState
            Case True
                CheckedState = False
            Case False
                CheckedState = True
        End Select
    End Sub
End Class

Class AdobeProgressBar
    Inherits ThemeControl
    Private _Maximum As Integer
    Public Property Maximum() As Integer
        Get
            Return _Maximum
        End Get
        Set(ByVal v As Integer)
            Select Case v
                Case Is < _Value
                    _Value = v
            End Select
            _Maximum = v
            Invalidate()
        End Set
    End Property
    Private _Value As Integer
    Public Property Value() As Integer
        Get
            Return _Value
        End Get
        Set(ByVal v As Integer)
            Select Case v
                Case Is > _Maximum
                    v = _Maximum
            End Select
            _Value = v
            Invalidate()
        End Set
    End Property
    Overrides Sub PaintHook()
        G.Clear(Color.FromArgb(51, 51, 51))
        'Fill
        Select Case _Value
            Case Is > 6
                DrawGradient(Color.FromArgb(132, 192, 240), Color.FromArgb(78, 123, 168), 3, 3, CInt(_Value / _Maximum * Width) - 6, Height - 6, 90S)
                DrawGradient(Color.FromArgb(98, 159, 220), Color.FromArgb(62, 102, 147), 4, 4, CInt(_Value / _Maximum * Width) - 8, Height - 8, 90S)
            Case Is > 1
                DrawGradient(Color.FromArgb(132, 192, 240), Color.FromArgb(78, 123, 168), 3, 3, CInt(_Value / _Maximum * Width), Height - 6, 90S)
                DrawGradient(Color.FromArgb(98, 159, 220), Color.FromArgb(62, 102, 147), 4, 4, CInt(_Value / _Maximum * Width) - 2, Height - 8, 90S)
        End Select

        'Borders
        G.DrawRectangle(Pens.Black, 0, 0, Width - 1, Height - 1)
        G.DrawRectangle(Pens.Gray, 1, 1, Width - 3, Height - 3)
    End Sub
    Public Sub Increment(ByVal Amount As Integer)
        If Me.Value + Amount > Maximum Then
            Me.Value = Maximum
        Else
            Me.Value += Amount
        End If
    End Sub
End Class

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

Ответ #3 @i32 20.08.2013 12:05
Вернее создаем класс и все это туда..

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

Ответ #4 @i32 20.08.2013 12:22
Ответ #5 @Алексей Немиро 20.08.2013 12:26
Использовать можно, но сомнительно сделано.

1. Элемент AdobeTheme постоянно разворачивает себя на всю форму (Dock = Fill).

Видимо с намеком на то, что он должен быть формой. Если у формы убрать заголовок (FormBorderStyle = None), то поведение формы будет не стандартным. Например, форма не будет сворачиваться и разворачиваться при клике по ней в панели задач - существенный косяк, учитывая, что нормальные формы сворачиваются/разворачиваются. Для этого придется писать какой-нибудь дополнительный код, хотя такой функционал вполне мог быть реализован на уровне темы.

Хотя изменить стиль формы будет непросто, контрол его будет менять назад:
    If ParentIsForm Then
      If Not _TransparencyKey = Color.Empty Then ParentForm.TransparencyKey = _TransparencyKey
      ParentForm.FormBorderstyle="FormBorderStyle.FixedSingle"
    End If

2. Кнопкам нельзя ставить картинки.

3. CheckBox не могут быть кнопками (Appearance = Button)

4. Свойство MoveHiegth элемента AdobeTheme смещает текст заголовка, но при этом не перерисовывает псевдозаголовок. Интересно накой он вообще нужен, если ParentForm.FormBorderstyle="FormBorderStyle.FixedSingle". Один заголовок - хорошо, а два - лучше :)

5. Свойства цветов - пустышки. Странное решение.

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

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

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
Необходимо записать файл в папку по определенному пути. Но если эта папка не существует ее необходимо создать! Как это можно реализовать?

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

Ответ #1 @Алексей Немиро 20.08.2013 11:21
В этой статье я подробно рассмотрел работу с файлами и папками: Работа с файлами в C#.

Статья хоть и по C#, но код несложный, можно легко сделать в Visual Basic .NET, ну или как минимум понять, какие классы использовать.
В крайнем случае конвертер кода поможет.
Как это можно реализовать?
1. Первый способ:
Dim d As New System.IO.DirectoryInfo("C:\Новая папка")
If Not d.Exists Then d.Create()'если папки не существует, создаем новую
2. Второй способ:
If Not System.IO.Directory.Exists("C:\Новая папка") Then System.IO.Directory.CreateDirectory("C:\Новая папка")

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

Ответ #2 @i32 20.08.2013 11:21
IO.Directory.CreateDirectory("c:\" & Format(Now, "dd.MM.%y"))

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

Ответ #3 @Дерепа Алексей 20.08.2013 21:26
Скажите пожалуйста, а какой смысл тогда проверять наличие папки и в противном случае ее создавать , если работает все от одной строки
IO.Directory.CreateDirectory("c:\" & Format(Now, "dd.MM.%y"))
объясните пожалуйста

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

Ответ #4 @Алексей Немиро 20.08.2013 23:27
Если директория уже существует, то повторное создание, в зависимости от метода создания, может привести к возникновению исключения (ошибки).


PS: Функция Format - из древнего бейсика, устаревшая. Лучше использовать String.Format, либо .ToString: Now.ToString("dd.MM.yyyy")

В будущем, при осовоении C# будет проще, т.к. это уже часть .Net Framework :)

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

Добавить свой ответ в эту тему
Здравствуйте, подскажите скрипт чтобы при в входе в определенный раздел сайта менялся цвет сайта

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

Ответ #1 @Алексей Немиро 19.08.2013 16:58
Решение будет зависеть от структуры сайта, движка, и того, что понимается под словом "скрипт".

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

Добавить свой ответ в эту тему
Необходимо в Word 2003 забрасывать формулы программно то есть это работа с Microsoft Equation 3.0 (для 2007 я научился но нужно для 2003)
как это можно реализовать ???

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

Ответ #1 @Алексей Немиро 19.08.2013 11:29
И как это сделано в Word 2007?

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

Ответ #2 @Дерепа Алексей 19.08.2013 12:11
Создаем файл html записываем в него ниже приведенный код закрываем документ переименовываем его в doc и открываем
данный фрагмент кода система уравнений!

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">

<body lang=RU style='tab-interval:35.4pt'>
<div class=WordSection1>
<m:oMathPara><m:oMath><m:d><m:dPr><m:begChr m:val="{"/><m:endChr m:val=""/></m:dPr><m:e><m:eqArr>
<m:e><m:r>2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>1</m:r></m:sub></m:sSub><m:r>+2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>2</m:r></m:sub></m:sSub><m:r>+2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>3</m:r></m:sub></m:sSub><m:r>=13</m:r></m:e>
<m:e><m:r>2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>1</m:r></m:sub></m:sSub><m:r>+2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>2</m:r></m:sub></m:sSub><m:r>+2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>3</m:r></m:sub></m:sSub><m:r>=13</m:r></m:e>
<m:e><m:r>2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>1</m:r></m:sub></m:sSub><m:r>+2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>2</m:r></m:sub></m:sSub><m:r>+2</m:r><m:r>&#8729;</m:r><m:sSub><m:e><m:r>x</m:r></m:e><m:sub><m:r>3</m:r></m:sub></m:sSub><m:r>=13</m:r></m:e>
</m:eqArr></m:e></m:d></m:oMath></m:oMathPara>
</div>
</body>
</html>

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

Ответ #3 @Дерепа Алексей 19.08.2013 12:15
Алексей если вам несложно помогите мне разобраться с Microsoft Equation 3.0
В нем необходимо работать через OLE функции , я лазил по форумам но так нечего и не нашел!

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

Ответ #4 @Алексей Немиро 19.08.2013 12:17
Создаем файл html записываем в него ниже приведенный код закрываем документ переименовываем его в doc и открываем
данный фрагмент кода система уравнений!
В 2003 версии это не работает?

Что показывает вместо формулы?

Если не работает, то нужно создать образец html с формулой в Word 2003 и посмотреть, какой код он использует.

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

Ответ #5 @Дерепа Алексей 19.08.2013 12:23
Этот фрагмент работает только в Word начиная с 2007, а в 2003 выдается набор цыфр и символов.
поэтому я и прошу вас помочь с OLE функцией
мне часть отчетов необходимо выполнять для Word 2003 поэтому и необходимо использовать Microsoft Equation 3.0 но как в него влезть не знаю

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

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

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

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

String or Hex to Brush Converter

Visual Basic .NET: Общие вопросы @Shark1 18.08.2013 23:49
Пример создания пользовательского класса реализующего интерфейс IValueConverter.

К данном исходному коду прилагаются файлы примеров. Скачать.

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

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

Вакансии в IT

Программист

Россия, Йошкар-Ола | Удаленная работа

Web-мастер

Россия, Чебоксары | Работа в офисе

Веб-программист

Россия, Самара | Работа в офисе | 25 000,00 KBP

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

Россия, Ростов-на-Дону | Работа в офисе | 30 000,00 KBP

Программист/Руководитель проекта (С++)

Россия, Ростов-на-Дону | Работа в офисе | 35 000,00 KBP

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

Россия, Екатеринбург | Работа в офисе | 25 000,00 KBP

Программист

Россия, Екатеринбург | Работа в офисе

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

Россия, Екатеринбург | Работа в офисе | 45 000,00 KBP

Программист Битрикс

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

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

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

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

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

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

Анонсирован первый дисплей для смартфона с разрешением 2560x1440

Корейская компания LG продемонстрировала дисплей для смартфонов с разрешением Quad HD, то есть 2560x1440 пикселей. Производитель утверждает, что новинка обладает рекордным разрешение 538 пикселей на дюйм при меньшей толщине в сравнении с выпускающимися сейчас моделями. О сроках появления устройства на рынке пока не сообщается.

22.08.2013 10:11 · Категория: Железо · Источник: Lenta.ru

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

Роскомнадзор опубликовал список пиратских сайтов

Роскомнадзор опубликовал список из девяти сайтов с незаконным видеоконтентом, в отношении которых поступили определения Мосгорсуда о блокировке. Три сайта выполнили рекомендации и закрыли доступ к нелицензионному контенту, портал Opensharing.org был внесен в реестр блокировки.

22.08.2013 10:09 · Категория: Бизнес в IT · Источник: Lenta.ru

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

«Инстаграм» запретил приложения со словами Insta и Gram

Сервис Instagram запретил сторонним приложениям, работающим с его API, использовать в названиях слова «Insta» и «Gram». Соответствующий пункт был включен в правила Instagram. Администрация сервиса разослала авторам приложений с нарушениями письмо с требованием переименовать продукты.

21.08.2013 11:18 · Категория: Бизнес в IT · Источник: 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 если иное не указано отдельно.


В избранное