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

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



Выпуск # 270


http://www.kbyte.ru/

 

Новый выпуск!

Здравствуйте дамы и господа!
Представляю очередной выпуск рассылки научно-информационного портала Kbyte.Ru. Надеюсь он Вам понравится. Если у Вас есть какие либо вопросы или предложения по рассылке, пишите нам – admin@kbyte.ru!

 

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

Новости Kbyte.Ru

    Небольшие изменения на сайте

Система ЭКСПЕРТ

    Вопрос #000764: Програмное определение позиции меню в vb6

    Вопрос #000754: HttpWebRequest и HttpWebResponse

    Вопрос #000745: Проблема с компонентом WINSOCK

    Вопрос #000743: C#, forms

    Вопрос #000735: Localization and DataBase

Последнее на форумах

    Тестирование

    Помогите пожалуйста найти ошибку

    Kbyte.Ru 4.5

    Интернет в VB .NET

    создать PictureBox

Последние статьи

    Как узнать размер базы данных MySQL через php

    Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)

    Работа с SQL – Запросы

    Использование XML.Serialization

    Выбор языка программирования для научных работ (2-я редакция)

Интересные коды и решения

Юмор на Kbyte.Ru

 

Новости Kbyte.Ru

 

25 февраля 2008 / Небольшие изменения на сайте

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

 

Все новости Kbyte.Ru

Наверх

 

 

Система ЭКСПЕРТ

 

Система «Эксперт» - уникальная система, которая поможет решить, если не все, то многие Ваши проблемы с программированием и разработкой! Если у Вас есть какой-либо вопрос по программированию или разработке, то Вы всегда можете задать его нашим Экспертам! При этом каких-либо особых действий от Вас не потребуется! Просто отправьте Ваш вопрос на адрес mailto:expert@kbyte.ru, в теме письма укажите тему вопроса, в тексте – сам вопрос, и все! Эксперты дадут Вам ответ в течение 12-24 часов, на тот адрес, с которого Вы отправите вопрос. Все проще простого! Никакой регистрации и заполнение бесконечных форм, просто спросите и получите ответ ;-)


Вопрос #000764: Програмное определение позиции меню в vb6

Автор вопроса: Иван Денишев // 16.02.2008 / 23:24

Здравствуйте уважаемые эксперты!
Говорят, что вы можете ответить на любой вопрос.
Как программно в vb6 узнать, на каком пункте меню находится курсор.
Для примера, возьмём меню "файл".
Caption | Name
Файл | MnuFile
Создать | MnuFileNew
Открыть | MnuFileOpen
Ну, и пожалуй, хватит. И так будет понятно.
Запускаем программу и жмём: либо f10, либо alt.
Затем стрелку вниз.
Меню "Создать", выделится другим цветом.
Так вот, как программно получить, где находится курсор?
Ведь, в vb нету свойства GotFocus у менюшек.
Очень надеюсь на вашу помощь!
---
С уважением: Иван Денишев.

Отвечает: Алексей Немиро // 17.02.2008 / 10:12

Здравствуйте, Иван.

ВНИМАНИЕ: Данный пример довольно опасный, и может привести к зависанию Visual Basic!

Скачать готовый пример можно тут: http://kbyte.ru/Code/Samples/form1.zip

Создайте новый EXE-проект, на форме разместите Timer и вставьте следующий код:

Код формы:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
Option Explicit

Private Sub Form_Load()
 gHW = Me.hwnd
 Hook
End Sub

Private Sub Form_Unload(Cancel As Integer)
 Unhook
End Sub

Private Sub Timer1_Timer()
 Me.Caption = SelectedMenuString
End Sub


Также добавьте несколько элементов меню.
Дополнительно создайте новый модуль и вставьте следующий код:

Код модуля:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
Option Explicit

Public SelectedMenuString As String 'здесь будет заголовок выбранного элемента меню

Private Declare Function CallWindowProc Lib "user32" _
  Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
  ByVal hwnd As Long, ByVal Msg As Long, _
  ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function SetWindowLong Lib "user32" _
  Alias "SetWindowLongA" (ByVal hwnd As Long, _
  ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Declare Function GetMenu Lib "user32" _
 (ByVal hwnd As Long) As Long

Private Declare Function GetSubMenu Lib "user32" _
 (ByVal hMenu As Long, ByVal nPos As Long) As Long

Private Declare Function GetMenuItemCount Lib "user32" _
 (ByVal hMenu As Long) As Long

Private Declare Function GetMenuState Lib "user32" _
 (ByVal hMenu As Long, ByVal wID As Long, _
  ByVal wFlags As Long) As Long

Private Declare Function GetMenuString Lib "user32" _
  Alias "GetMenuStringA" (ByVal hMenu As Long, _
  ByVal wIDItem As Long, ByVal lpString As String, _
  ByVal nMaxCount As Long, ByVal wFlag As Long) As Long

Private Const MF_BYPOSITION = &H400&
Private Const MF_HILITE = &H80&
Private Const WM_MENUSELECT = &H11F
Private Const GWL_WNDPROC = -4

Public lpPrevWndProc As Long
Public gHW As Long

Public Sub Hook()
  'Begin hooking into messages.
  lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
  AddressOf WindowProc)
End Sub

Public Sub Unhook()
  'Cease hooking into messages.
  SetWindowLong gHW, GWL_WNDPROC, lpPrevWndProc
End Sub

Function AnyLit(hSubSubMenu As Long) As Long
  Dim i As Long
  Dim MenuCount As Long

  'Get the number of items in the menu.
  MenuCount = GetMenuItemCount(hSubSubMenu)

  'Loop through the menu items.
  For i = 0 To MenuCount - 1
    'Check whether this item is highlighted.
    If GetMenuState(hSubSubMenu, i, MF_BYPOSITION) And _
        MF_HILITE Then
      AnyLit = True
      Exit Function
    End If
  Next i

  'Return FALSE, no items highlighted.
  AnyLit = False
End Function

Private Sub WalkSubMenu(hSubMenu As Long)
  Dim i As Long
  Dim MenuItems As Long
  Dim hSubSubMenu As Long
  Dim buffer As String
  Dim result As Long

  'Get the count of menu items in this menu.
  MenuItems = GetMenuItemCount(hSubMenu)

  'Loop through all the items on the menu.
  For i = 0 To MenuItems - 1
    'Determine whether this item is highlighted.
    If GetMenuState(hSubMenu, i, MF_BYPOSITION) And _
        MF_HILITE Then
      'Attempt to get a submenu for each menu item.
      hSubSubMenu = GetSubMenu(hSubMenu, i)

      'Check for a submenu with something selected on it.
      If hSubSubMenu And AnyLit(hSubSubMenu) Then
        'There is a submenu with a selection so walk it.
        WalkSubMenu hSubSubMenu
      Else
        buffer = Space(255)
        result = GetMenuString(hSubMenu, i, buffer, Len(buffer), MF_BYPOSITION)
        buffer = Left$(buffer, result)
        SelectedMenuString = GetDescription(buffer)
        Exit Sub
      End If
    End If
  Next i
End Sub

Public Sub FindHilite(TheForm As Form)
  Dim hMenu As Long
  Dim hSubMenu As Long
  Dim i As Long
  Dim MenuCount As Long

  'Clear any previous description.
  SelectedMenuString = ""

  'Get the menu handle.
  hMenu = GetMenu(TheForm.hwnd)

  'Check to see if there is no menu.
  If hMenu <> 0 Then
    'Get the number of top-level menus.
    MenuCount = GetMenuItemCount(hMenu)

    'Enumerate through all top-level menus.
    For i = 0 To MenuCount - 1
      'Ignore top-level menus not currently selected.
      If GetMenuState(hMenu, i, MF_BYPOSITION) And _
          MF_HILITE Then
        'Get a handle to the submenu.
        hSubMenu = GetSubMenu(hMenu, i)

        'Walk the submenu.
        WalkSubMenu hSubMenu
      End If
    Next i
  End If
End Sub

Private Function GetDescription(MenuCaption As String) As String
 GetDescription = MenuCaption
End Function

Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
 If uMsg = WM_MENUSELECT Then
  FindHilite Form1
 End If
 WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function


При выборе элемента меню в переменной SelectedMenuString будет текст заголовка выбранного элемента меню.

 

Вопрос #000754: HttpWebRequest и HttpWebResponse

Автор вопроса: Сергей // 13.02.2008 / 23:01

Здравствуйте.
Алексей Сергеевич в статье "Взаимодействие с другими сайтами через HTTP" хорошо описал, как можно программно заполнить и отправить Web-форму и получить результат. Спасибо. А как быть, если есть защита от автоматов? Т.е. как отобразить имиджи с цифрами, получить и отправить выбранный вручную ответ? Спасибо.

--------------------------------------
Категория: --- C# (Си шарп)

Отвечает: Алексей Немиро // 14.02.2008 / 03:35

Здравствуйте, Сергей.

Для этого придется икать уязвимости в самой CAPTCHA, «проще всего» разобраться с картинкой, которая в url содержит код, по которому она была сгенерирована.

http://www.captcha.ru/breakings/

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

Либо придется подключать человека, отдавать ему картинки и чтобы он сам вручную вводил номера.


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000745: Проблема с компонентом WINSOCK

Автор вопроса: Дмитрий // 10.02.2008 / 15:57

Уважаемые Эксперты!
Помогите решить вот такую проблему: создал приложение с использованием сокетов но на других компьютерах оно не запускается из-за того что якобы отсутствует компонент MSWINSCK.OCX. Как можно решить эту проблему?
Заранее спасибо


--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: Алексей Немиро // 10.02.2008 / 16:09

Здравствуйте, Дмитрий!

Файл MSWINSCK.OCX можно найти в папке WINDOWS\system32 Вашего
компьютера. Чтобы Ваша программа работала на другом компьютере, Вам
необходимо перенести этот файл, и возможно зарегистрировать его.
Регистрация компонентов производится программой regsvr32.exe,
которую можно найти в той же папке (system32). Для регистрации достаточно
перетащить файл компонента (mswinsck.ocx) на файл regsvr32.exe в проводнике Windows.


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000743: C#, forms

Автор вопроса: "Slonov K." // 09.02.2008 / 14:05



Добрый день.
C# .
Есть форма(Form1) с кнопкой, при нажатии на неё создаётся другая
форма(Form2).

private void button1_Click(object sender, EventArgs e)
{
Form2 Fr = new Form2();
Fr.Show();
}

Вопрос : как добиться чтобы чтобы при повторном нажатии на эту же
кнопку не создавалось ещё одно окно(типа Form2) , а просто
становилось становилось активным уже существующее Fr.
Заранее спасибо.
Костя

З.Ы. Может я что то принципиально не так делаю?

Отвечает: EROS // 10.02.2008 / 18:36

Здравствуйте
Подобного поведения можно добиться различными способами, вот один из
них:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
private void button1_Click(object sender, EventArgs e)
    {
      foreach (Form item in Application.OpenForms)
      {
        if (item is Form2)
        {
          item.Focus();
          return;
        }
      }

      Form2 frm = new Form2();
      frm.Show();
    }


--
С уважением,
EROS mailto:eros@fromru.com

 

Вопрос #000735: Localization and DataBase

Автор вопроса: Taleh Mikailov // 05.02.2008 / 15:36

Здравствуйте уважаемые эксперты!
На свой вопрос, что написал прошлый раз не получил ответа. В связи с этим решил более подробнее обьяснить ситуацию и более точно сформулировать свой вопрос...
Мне нужно включить в Веб Приложение поддержку локализации из Баз Данных.
Долго искал, по этому вопросу, какой-нибудь материал в сети.
Мое внимание привлекла вот эта статья: www.microsoft.com/rus/msdn/publish/articles/asap.mspx
После того, как прочитал статью, для примера создал не большое приложение и одну таблицу в Базе Данных()
Таблица(StringResources) из Базы Данных(CustomResourceProviderSample)

resourceType | cultureCode |resourceKey | resourceValue
Default.aspx en lbHelloLocalResource1.Text Hello(en)
Default.aspx en lbLanguageLocalResource1.Text English(en)
Default.aspx en lbWelcomeLocalResource1.Text Welcome(en)
Default.aspx en hlAboutCompanyLocalResource1.Text About Company(en)
Default.aspx en hlContactUsLocalResource1.Text Contact Us(en)
Default.aspx en hlLearnMoreLocalResource1.Text Learn More(en)
Default.aspx en btnSendDemoMailLocalResource1.Text Send Demo Mail(en)
AboutCompany.aspx en lbCompanyNameLocalResource1.Text MatrixSoftware(en)
AboutCompany.aspx en Literal1LocalResource1.Text "Текст с описанием фирмы(en)"
AboutCompany.aspx en hlContactUsLocalResource1.Text Contact Us(en)
AboutCompany.aspx en btnBackLocalResource1.Text Main Page(en)


Обращение к ресурсам осуществляю следующим образом:

this.lbHello.Text = HttpContext.GetLocalResourceObject("Default.aspx", "lbHelloLocalResource1.Text") as string;

Одним словом строго следую указаниям из статьи...
Проблема в том, что при компиляции приложения получаю 8 ошибок:

Error 1 The type or namespace name 'ResourceProviderFactory' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProviderFactory.cs 11 46 CustomResourceProviders


using System;

using System.Web;

using System.Diagnostics;

using System.Globalization;

using System.Resources;

using System.Threading;

namespace CustomResourceProviders

{

public class DBResourceProviderFactory : ResourceProviderFactory

{

public override IResourceProvider CreateGlobalResourceProvider(string classKey)

{

Debug.WriteLine(String.Format(CultureInfo.InvariantCulture, "DBResourceProviderFactory.CreateGlobalResourceProvider({0})", classKey));

return new DBResourceProvider(classKey);

}

public override IResourceProvider CreateLocalResourceProvider(string virtualPath)

{

Debug.WriteLine(String.Format(CultureInfo.InvariantCulture, "DBResourceProviderFactory.CreateLocalResourceProvider({0}", virtualPath));

// we should always get a path from the runtime

string classKey = virtualPath;

if (!string.IsNullOrEmpty(virtualPath))

{

virtualPath = virtualPath.Remove(0, 1);

classKey = virtualPath.Remove(0, virtualPath.IndexOf('/') + 1);

}

return new DBResourceProvider(classKey);

}

}

}

-----------------------------------

Error 2 The type or namespace name 'Compilation' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProvider.cs 2 18 CustomResourceProviders


using System.Web.Compilation; <-????

------------------------------------------

Error 3 The type or namespace name 'DisposableBaseType' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProvider.cs 17 36 CustomResourceProviders


namespace CustomResourceProviders

{

/// <summary>

/// Resource provider accessing resources from the database.

/// This type is thread safe.

/// </summary>

public class DBResourceProvider : DisposableBaseType, IResourceProvider <- ????????

{

private string m_classKey;

private StringResourcesDALC m_dalc;

// resource cache

private Dictionary<string, Dictionary<string, string>> m_resourceCache = new Dictionary<string, Dictionary<string, string>>();

/// <summary>

/// Constructs this instance of the provider

/// supplying a resource type for the instance.

/// </summary>

--------------------------------------------

Error 4 The type or namespace name 'IResourceProvider' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProvider.cs 17 56 CustomResourceProviders


------------------------------------

Error 5 The type or namespace name 'Security' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceReader.cs 5 18 CustomResourceProviders
С этой разобрался!

Error 6 The type or namespace name 'DisposableBaseType' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceReader.cs 23 34 CustomResourceProviders


Error 7 The type or namespace name 'IResourceProvider' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProviderFactory.cs 14 25 CustomResourceProviders


Error 8 The type or namespace name 'IResourceProvider' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProviderFactory.cs 20 25 CustomResourceProviders


Совсем НЕ уверен, что делаю все как надобно, поэтому обращаюсь к вам !!!
Очень прошу помочь !!!

Буду рад получить от вас замечания и исправления !!!
Заранее благодарю!!!

Отвечает: EROS // 08.02.2008 / 03:47

Здравствуйте.
Судя по описанию ошибок вы не подключили необходимые библиотеки либо
не указали нужную директиву using


--
С уважением,
EROS

 


Чтобы задать Ваш вопрос, отправьте его на адрес expert@kbyte.ru

Раздел Эксперт на сайте Kbyte.Ru

Наверх

 

 

Последнее на форумах

Тестирование | Автор: Алексей
Добавлено: 26.02.2008 / 06:55 | ответов: 0 | просмотров: 29

Все за сертификатами в систему тестирования! :) Может даже кто-то нормальный тест сможет написать ;-)

Сертификат #000001

Сертификат
#000010

http://kbyte.ru/UserServices/MyTests.aspx
http://kbyte.ru/Service/Tests.aspx

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Помогите пожалуйста найти ошибку | Автор: agakamran
Добавлено: 25.02.2008 / 23:41 | ответов: 2 | просмотров: 63

private void addToolStripMenuItem_Click(object sender, EventArgs e)
{
//Dialog d = new Dialog();
Form2 d=new Form2();
if (d.ShowDialog() == DialogResult.OK)
{
//yeni yaradilani massive daxil edek
arTheCars.Add(d.theCar);
UpdateGrid();
}

SaveFileDialog mySav = new SaveFileDialog();
mySav.InitialDirectory = ".";
mySav.Filter = "xidmet files(*.ham)|*.ham|All files(*.*)|*.*";
mySav.FilterIndex = 1;
mySav.RestoreDirectory = true;
mySav.FileName = "xidmet.ham";
//if (mySav.ShowDialog() == DialogResult.OK)
// {
// Stream myStream = null;
FileStream myStream = new FileStream("xidmet.ham", FileMode.Create);
// if ((myStream = mySav.OpenFile()) != null)
// {
BinaryFormatter myBin = new BinaryFormatter();
myBin.Serialize(myStream, arTheCars);
myStream.Close();
// }
// }
}

Помогите пожалуйста найти ошибку немого сохранить новое добавленное запись по отладкам посмотрю arTheCars получает добавленное количества строк но выдается такое ошибка заранее благодарен
Type 'Car.Form1' in Assembly 'Car, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:26.02.2008 / 04:50
Общий форум (ASP .NET)

Form2 d=new Form2();

SaveFileDialog mySav = new SaveFileDialog();

все верно? :)

И что такое arTheCars? ArrayList? или какой-то другой массив, или коллекция?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Edlin
Добавлено:26.02.2008 / 09:02
Я так понял Form2.theCar возвращает объект типа Car.Form1 (?). Похоже этот тип не помечен аттрибутом Serializable. По крайней мере один из типов объектов, хранящихся в arTheCars не имеет такого аттрибута.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Kbyte.Ru 4.5 | Автор: Алексей
Добавлено: 25.02.2008 / 14:47 | ответов: 2 | просмотров: 52

Свершилось чудо :) я наконец таки сделал апдейт Kbyte.Ru. Текущая версия 4.5.
Более подробно обо всех изменениях я напишу чуть позже в блоге.
Если вы заметите какие-либо косяки, просьба сообщать мне об этом в мыло, либо в этот топик.
Спасибо.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:26.02.2008 / 05:10
По пользовательскому меню, там пока мало разделов, из которых можно сделать меню, в будущем я засуну туда все разделы сайта, но если есть какие-либо пожелания, по разделам первой необходимости, пишите в этот топик, или мне в личку, добавлю их в первую очередь.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Алексей
Добавлено:26.02.2008 / 06:58
Для тех, кто не найдет: http://kbyte.ru/Help/ForumTags.aspx

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Интернет в VB .NET | Автор: vbpro
Добавлено: 24.02.2008 / 20:22 | ответов: 1 | просмотров: 49

В VB6 можно было использовать WinSock. Вроде в .NET есть TCPListener и TCPClient. Как их подключить и как ими пользоваться? Я в VB6 не новичок, но с .NET столкнулся недавно...
Заранее спасибо.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:25.02.2008 / 04:03
001:
002:
003:
004:
Imports System.Net
Imports System.Net.Sockets

Colorized by: Eros.CodeSyntaxColor Engine


001:
002:
003:
004:
Dim lstr As New TcpListener(Net.IPAddress.Any, 80)
lstr.Start()

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


создать PictureBox | Автор: Vetolez
Добавлено: 23.02.2008 / 16:55 | ответов: 12 | просмотров: 238

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

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Артeм
Добавлено:23.02.2008 / 19:27
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
Dim myPicBox As New PictureBox

 With myPicBox
.Width = 100
.Height = 100
.left=100
.Top=100
End With

Me.Controls.Add(myPicBox)

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Артeм
Добавлено:23.02.2008 / 19:48
Кстати это для любого контролла... т.е. тип Control

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: 5acred Phoenix
Добавлено:23.02.2008 / 20:56
Аффтар хочет VB6, сюдя по подфоруму

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Артeм
Добавлено:23.02.2008 / 21:07
На VB6 то же самое почти... (я на память пишу...)

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
Dim myPicBox As Picture

Set myPicBox = New Picture

With myPicBox
.Width = 100
.Height = 100
.left=100
.Top=100
End With

Form1.Controls.Add(myPicBox)

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: 5acred Phoenix
Добавлено:23.02.2008 / 21:17
Просто я не помню, есть ли там свойство .Controls.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Алексей
Добавлено:24.02.2008 / 05:05
Свойство Controls есть, а вот с тем же самым кодом - это вряд ли :-) это ж все таки VB 6.0 :-), ему нужен "живой" объект, чтобы подобный способ сработал.

Надо вот так:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
Form1.Controls.Add "VB.PictureBox", "MyPicture"
 With Form1!MyPicture
 .Top = 120
 .Left = 120
 .AutoSize = True
 .Picture = LoadPicture("C:\Windows\BACKGRND.GIF")
 .Visible = True
End With

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Vetolez
Добавлено:25.02.2008 / 12:39
Благодарен за оказанную помощь!
Возникла следующая задача, мне нужно создать более одного PictureBox. Воспользовался я последним примером и пытаясь осуществить подледную идею наткнулся на сложности с этой строкой:
With Form1!MyPicture
Вся проблема что мне не известен такой вид записи, и справка в моей версии VB не работает. Не получается менять имя каждого нового создаваемого PictureBox, первый благополучно создается, а вот для второго говорит что такое имя уже существует. Как мне сделать так чтобы при нажатий одной кнопки создавались несколько (столько сколько мне понадобиться) PictureBox?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: Алексей
Добавлено:25.02.2008 / 15:15
001:
002:
003:
004:
005:
For i = 0 To 100
 Form1.Controls.Add "VB.PictureBox", "MyPicture" & CStr(i)
Next i

Colorized by: Eros.CodeSyntaxColor Engine

Поиск контролов можно делать циклом, искать нужный контрол по имени, и изменять его параметры:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
For i = 0 To Form1.Controls.Count - 1
 For j = 0 To 100
  If (Form1.Controls(i).Name = "MyPicture" & CStr(j)) Then
   Form1.Controls(i).Top = 120 : Form1.Controls(i).Left = 120
   Form1.Controls(i).Width = 200 : Form1.Controls(i).Height = 200
   Form1.Controls(i).Visible = True
  End If
 Next j
Next i

Colorized by: Eros.CodeSyntaxColor Engine

грубая реализация, не проверял, должно работать.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Vetolez
Добавлено:26.02.2008 / 02:26
Что то не получается, не работает...(

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 10 | Автор: Алексей
Добавлено:26.02.2008 / 04:15
Кстати, а зачем именно отдельные элементы создавать? Чем массив элементов не устраивает, с ним проще работаеть.

Создаем на форме PictureBox, ставим ему свойство Index = 0 (в окне свойств) и всё, далее код:
001:
002:
003:
004:
005:
006:
007:
008:
009:
For i = 1 To 10
 Load Picture1(i)
 Picture1(i).Visible = True
 Picture1(i).Width = Picture1(i - 1).Width
 Picture1(i).Height = Picture1(i - 1).Height
 Picture1(i).Top = Picture1(i - 1).Top + Picture1(i - 1).Height
Next i

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 11 | Автор: Vetolez
Добавлено:26.02.2008 / 19:30
Да и так можно, согласен.
А как мне теперь при нажатий на одну их созданных PictureBox получать ее имя, ну для дальнейшего редактирования или изменения?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 12 | Автор: Алексей
Добавлено:27.02.2008 / 05:12
Имя получать не надо, имя у них у всех одинаковое, а вот индекс разный. Параметр Index может быть во всех событиях PictureBox:
001:
002:
003:
004:
005:
Private Sub Picture1_Click(Index As Integer)
 MsgBox "Кликнули по PictureBox с индексом " & CStr(Index)
End Sub

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Наверх

 

Последние статьи

Как узнать размер базы данных MySQL через php
Автор: Николай Рудченко | добавлено: 14.02.2008 / 13:01 | просмотров: 84

В этой небольшой статье вы узнаете, как получить размер вашей базы данных (БД) MySQL используя язык программирования PHP.

Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)
Автор: Немиро Алексей | добавлено: 27.07.2007 / 14:01 | просмотров: 2937

В данной статье речь пойдет о том, как можно программно заполнить и отправить Web-форму, а также получить результат с использованием довольно простых классов - HttpWebRequest и HttpWebResponse.

Работа с SQL – Запросы
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 22.07.2007 / 04:43 | просмотров: 5462

В данной статье рассмотрены часто используемые SQL-запросы и приведены примеры их использования.

Использование XML.Serialization
Автор: Немиро Алексей | добавлено: 19.07.2007 / 15:38 | просмотров: 1513

В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.

Выбор языка программирования для научных работ (2-я редакция)
Автор: Юдин С. Ю. | добавлено: 15.03.2007 / 02:49 | просмотров: 4188

Идея написания этой статьи возникла после того, как на одном из сайтов по физике http://physics.nad.ru/aniboard/messages/291.html я обнаружил интересный алгоритм моделирования движения тела в поле постоянной напряженности по различным направляющим. Вернее, меня заинтересовал не весь алгоритм, т.к. основа их всех одна (принцип Даламбера, если не считать квазиалгоритма с применением уравнений Лагранжа 2-го рода) и различаются они только способом определения реакций в месте соприкосновения тел. ...

 

Статьи на Kbyte.Ru

Наверх

 

Интересные коды и решения

Воспроизведение звукового файла #2
Дата добавления: 31.07.2006 / 12:54 | просмотров: 2085 | платформа: VB

Программная обработка HTML-элементов управления
Дата добавления: 31.07.2006 / 16:25 | просмотров: 1269 | платформа: ASP .NET (VB)

Как получить содержимое каталога?
Дата добавления: 31.07.2006 / 17:31 | просмотров: 1150 | платформа: ASP .NET (VB)

Как создать новую папку (каталог) с использованием API?
Дата добавления: 31.07.2006 / 12:37 | просмотров: 1323 | платформа: VB

Работа с группами ListView
Дата добавления: 23.08.2006 / 22:09 | просмотров: 2049 | платформа: VB .NET

Как программно отправить E-Mail?
Дата добавления: 31.07.2006 / 15:02 | просмотров: 2489 | платформа: ASP .NET (VB)

Пример добавления окончания к числу (англ.)
Дата добавления: 24.03.2007 / 12:33 | просмотров: 1206 | платформа: VB .NET

Как получить текущее системное время?
Дата добавления: 16.08.2006 / 20:18 | просмотров: 1806 | платформа: VB

Как переключиться в любое окно?
Дата добавления: 31.07.2006 / 12:51 | просмотров: 1307 | платформа: VB

Как программно изменить дату в Calendar?
Дата добавления: 25.03.2007 / 08:33 | просмотров: 1350 | платформа: ASP .NET (VB)

 

Универсальные коды на Kbyte.Ru

Наверх

 

Юмор на Kbyte.Ru

- А вот я себе Windоws98 поставил...
- Ты че, оху*л?!!
- Да нет, у жены месячные начались...

 

Рейтинг: 175
Всего голосов: 288
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Хирург
- Скажите, доктор, обязательно делать эту дорогую операцию? Мне, в конце концов, необходимо содержать жену и моих детей.
- Мне тоже, уважаемый!
end data of the request.

 

Рейтинг: 165
Всего голосов: 249
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Программисту сказали написать архиватор. Он написал. Заказчик: "Ну заархивируй", прогер архивирует, показывает заказчику. "А теперь обратно разархивируй". Прогер: "А этого не было в исходной задаче!"

 

Рейтинг: 259
Всего голосов: 422
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Хакер приходит к специалисту по паранормальным явлениям:
- Доктор, помогите мне! У меня дома такое творится. Диски по комнате летают, сами в компьютер ставятся и Windows устанавливают!
- У-у! Батенька, да у вас полтерГейтс!

 

Рейтинг: 264
Всего голосов: 386
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Рабинович узнал о возвращении Гагарина на Землю:
- Вылететь из Советского Союза, облететь вокруг земли - и все это для того, чтобы снова вернуться!

 

Рейтинг: 630
Всего голосов: 805
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Ехали как-то на джипе четыре братка, вдруг в них врезается сзади старая шестерка. Братки злые выходят из машины и видят из шестерки выходит старый дед. Братки ему:
Ну все дед ты попал!!!
Дед: Не злитесь ребятки, у меня сын на птицефабрике работает, я ему позвоню, он все уладит.
Братки думают ладно раз на птицефабрике работает, значит деньги есть.
Дед позвонил, приезжают через десять минут СОБРовцы, всех братков на землю повалили.
Подходид СОБРовец к деду и говорит:
Батя, сколько раз повторять можно, не на птицефабрике, а в отряде ОРЕЛ!!!

 

Рейтинг: 192
Всего голосов: 285
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Она била себя в грудь и рвала на груди волосы.

 

Рейтинг: 267
Всего голосов: 396
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Человеку свойственно ошибаться, и он пользуется этим свойством часто и с удовольствием

 

Рейтинг: 287
Всего голосов: 442
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

- Почему считается, что Windows 2000 не падает?
- А куда ей падать, если она ничего не поддерживает.

 

Рейтинг: 231
Всего голосов: 336
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Сначала предыстория:
По роду работы у меня имеются несколько серверов, разбросанных по городу. Иногда для работы с ними приходится подключаться к ним удаленно и работать из дому.
А теперь собственно история:
- в последние пару недель работы стало меньше, и по вечерам ничем более полезным, кроме просмотра телевизора, заниматься не приходится. И все бы хорошо, но какой-то идиот взялся звонить по вечерам и молчать в трубку. Звонит - и молчит, гад. Сначала думали - у кого-то телефон неисправен, он нас слышит, а мы его - нет. Но звонит-то каждый вечер.
Кто бы трубку не брал - молчит, гад. Пробовал "кто кого переждет" - вдруг раньше что скажет - нет, молчит. Жена начинает вспоминать, что во всех фильмах ужасов с этого обычно начинается что-нибудь страшное - про маньяков и им подобное. И тут решили посмотреть на часы - оказалось, он звонит ровно в 22-10. Точность цифры насторожила...
Как с трудом удалось вспомнить - около месяца назад я тестировал модем на входящие звонки, для чего заставлял звонить мне один из серверов. Потом пару недель по вечерам телефон был как правило занят, и про сервер забыли. А вот он не забыл, исправно каждый вечер звонил мне и молчал…

 

Рейтинг: 266
Всего голосов: 389
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Весь юмор на Kbyte.Ru

Наверх


Выпуск подготовил: R-KDR-19826

Редактор: Немиро Алексей

Copyright (c) Nemiro AS, 2005-2007


В избранное