Windows и подсказки в Delphi

Включите это расширение в свой проект

  extension String{
func trim() -> String
{
    return self.trimmingCharacters(in: NSCharacterSet.whitespaces)
}

var length: Int {
    return self.count
}

subscript (i: Int) -> String {
    return self[i ..< i + 1]
}

func substring(fromIndex: Int) -> String {
    return self[min(fromIndex, length) ..< length]
}

func substring(toIndex: Int) -> String {
    return self[0 ..< max(0, toIndex)]
}

subscript (r: Range<Int>) -> String {
    let range = Range(uncheckedBounds: (lower: max(0, min(length, r.lowerBound)),
                                        upper: min(length, max(0, r.upperBound))))
    let start = index(startIndex, offsetBy: range.lowerBound)
    let end = index(start, offsetBy: range.upperBound - range.lowerBound)
    return String(self[start ..< end])
}

func substring(fromIndex: Int, toIndex:Int)->String{
    let startIndex = self.index(self.startIndex, offsetBy: fromIndex)
    let endIndex = self.index(startIndex, offsetBy: toIndex-fromIndex)

    return String(self[startIndex...endIndex])
}

, а затем используйте функцию, подобную этой

let str = "Sample-String"

let substring = str.substring(fromIndex: 0, toIndex: 0) //returns S
let sampleSubstr = str.substring(fromIndex: 0, toIndex: 5) //returns Sample
6
задан HX_unbanned 3 July 2009 в 07:27
поделиться

5 ответов

First, what version of Delphi do you use?

Second, I recommend you try creating a simple application from scratch, with just one form and say a tool-button (or any other control that can show hints), with ShowHints activated, and see if it shows. If on such a very simple app you'll get no hints, I would recommend reinstalling Delphi, maybe something in your installation is screwed up...

6
ответ дан 9 December 2019 в 22:38
поделиться

Несколько советов:

  • Убедитесь, что вы или другой компонент / модуль установили собственный класс подсказок. Если да, найдите этот компонент / блок и удалите его.
  • Скомпилируйте приложение с помощью DCU отладки и поместите точки останова в соответствующие места в Forms.pas. Затем выполните пошаговое выполнение кода и посмотрите, что произойдет.
0
ответ дан 9 December 2019 в 22:38
поделиться

Вы пробовали добавить Application.ShowHint в файл проекта?

Файл проекта будет выглядеть примерно так

begin
  Application.Initialize;
  Application.ShowHint := True;
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
1
ответ дан 9 December 2019 в 22:38
поделиться

Держу пари ' re на XP, и ваша установка довольно старая.

У моего друга была точно такая же проблема в его машине. Никаких намеков VCL в его машине не было. Сюда входят приложения, которые он создал, IDE Delphi, которую он использовал (7 afaicr), и любое другое приложение, созданное на Delphi, которое было на его машине. В итоге мы обвинили его экземпляр WinXP, который последние 2 года работал с большим количеством мусора (скорее всего, это было какое-то приложение, которое он когда-то установил, которое в какой-то момент перехватывает сообщения, вызывая такое странное поведение). Это может быть и ваш случай.

пс. Еще один интересный момент - подсказки появлялись, если вы устанавливали Application.HintPause на низкое значение, например 100-200. Вы можете попробовать и это.

Сюда входят приложения, которые он создал, IDE Delphi, которую он использовал (7 afaicr), и любое другое приложение, созданное на Delphi, которое было на его машине. В итоге мы обвинили его экземпляр WinXP, который последние 2 года работал с большим количеством мусора (скорее всего, это было какое-то приложение, которое он когда-то установил, которое в какой-то момент перехватывает сообщения, вызывая такое странное поведение). Это может быть и ваш случай.

пс. Еще один интересный момент - подсказки появлялись, если вы устанавливали Application.HintPause на низкое значение, например 100-200. Вы можете попробовать и это.

Сюда входят приложения, которые он создал, IDE Delphi, которую он использовал (7 afaicr), и любое другое приложение, созданное на Delphi, которое было на его машине. В итоге мы обвинили его экземпляр WinXP, который последние 2 года работал с большим количеством мусора (скорее всего, это было какое-то приложение, которое он когда-то установил, которое в какой-то момент перехватывает сообщения, вызывая такое странное поведение). Это может быть и ваш случай.

пс. Еще один интересный момент - подсказки появлялись, если вы устанавливали Application.HintPause на низкое значение, например 100-200. Вы можете попробовать и это.

В итоге мы обвинили его экземпляр WinXP, который последние 2 года работал с большим количеством мусора (скорее всего, это было какое-то приложение, которое он когда-то установил, которое в какой-то момент перехватывает сообщения, вызывая такое странное поведение). Это может быть и ваш случай.

пс. Еще один интересный момент - подсказки появлялись, если вы устанавливали Application.HintPause на низкое значение, например 100-200. Вы можете попробовать и это.

В итоге мы обвинили его экземпляр WinXP, который последние 2 года работал с большим количеством мусора (скорее всего, это было какое-то приложение, которое он когда-то установил, которое в какой-то момент перехватывает сообщения, вызывая такое странное поведение). Это может быть и ваш случай.

пс. Еще один интересный момент - подсказки появлялись, если вы устанавливали Application.HintPause на низкое значение, например 100-200. Вы можете попробовать и это.

3
ответ дан 9 December 2019 в 22:38
поделиться

Хорошо - Так как я недавно обновился до версии 2010 ( 14.x ), я, наконец, был уверен, что эта проблема с подсказками - это ошибка в IDE.

Только решения: - изменить свойство HintPause - попробуйте переустановить IDE

.
0
ответ дан 9 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

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