URL поиска загрузки в браузере из Visual Studio

Одно раздражение с использованием с - то, что отладчик не может обработать его. Таким образом, это делает отладку более трудной.

А большая проблема состоит в том, что менее легко прочитать код. Особенно, если с оператором немного длиннее.

procedure TMyForm.ButtonClick(...)
begin
  with OtherForm do begin
    Left := 10;
    Top := 20;
    CallThisFunction;
  end;
end;

, Которым назовут CallThisFunction Формы? Сам (TMyForm) или OtherForm? Вы не можете знать, не проверяя, имеет ли OtherForm метод CallThisFunction.

И самая большая проблема то, что можно сделать ошибки легкими, даже не зная это. Что, если и TMyForm и OtherForm имеют CallThisFunction, но это является частным. Вы могли бы ожидать/хотеть OtherForm. CallThisFunction, который назовут, но это действительно не. Компилятор предупредил бы Вас, если Вы не использовали с, но теперь он не делает.

Используя несколько объектов в с умножает проблемы. См. http://blog.marcocantu.com/blog/with_harmful.html

5
задан Alex Angas 26 August 2009 в 11:59
поделиться

2 ответа

Вот еще одна версия (на основе ответа Алекса), которая также выберет текущее слово, на котором вы находитесь. Больше похоже на типичную справку F1.

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module Search
    Sub GoogleSearch()
        AnySearch("http://www.google.com/search?q=.net+")
    End Sub

    Sub BingSearch()
        AnySearch("http://www.bing.com/search?q=")
    End Sub

    Private Sub AnySearch(ByVal searchUrl)
        Dim strUrl As String
        Dim selection As String = GetSelection()
        If selection <> "" Then
            strUrl = searchUrl + selection
            DTE.ExecuteCommand("nav", strUrl & " /ext")
        Else
            MsgBox("Select text to search for.")
        End If
    End Sub

    Private Function GetSelection() As String
        Dim selection As TextSelection = DTE.ActiveDocument.Selection()
        If selection.Text <> "" Then
            Return selection.Text
        Else
            DTE.ExecuteCommand("Edit.SelectCurrentWord")
            selection = DTE.ActiveDocument.Selection()
            Return selection.Text
        End If
    End Function
End Module
5
ответ дан 14 December 2019 в 04:44
поделиться

Используя ссылку Предоставленный Preet , я придумал, что запускает браузер по умолчанию:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module Search
    Sub GoogleSearch()
        AnySearch("http://www.google.com/search?q=")
    End Sub

    Sub BingSearch()
        AnySearch("http://www.bing.com/search?q=")
    End Sub

    Private Sub AnySearch(ByVal searchUrl)
        Dim strUrl As String
        Dim selection As TextSelection = DTE.ActiveDocument.Selection()
        If selection.Text <> "" Then
            strUrl = searchUrl + selection.Text
            DTE.ExecuteCommand("nav", strUrl & " /ext")
        Else
            MsgBox("Select text to search for.")
        End If
    End Sub
End Module
2
ответ дан 14 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: