Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
Внизсделать для формы (фрейма, WinControl) аналог Begin/EndUpdatе Найти похожие ветки
← →
SPeller © (2009-06-08 12:44) [80]Я уже понял что мысль моя первоначальная оказалась оторвана от действительности )
← →
SPeller © (2009-06-08 12:48) [81]Кстати, я когда баловался с перекомпиляцией Variants для kol обнаружил что компилятор ругается на Unit variants was compiled with different version of kol.pas только тогда когда в этом kol.pas затрагиваешь функцию, вызов которой присутствует в variants. Думаю что по аналогии можно перенести и поле класса, и не тронуть при этом никого из существующих модулей.
← →
Игорь Шевченко © (2009-06-08 12:48) [82]
> А можно перекомпилить системные исходники и сунуть FComponentState
> в protected :)
нельзя, они в BPL :)
← →
SPeller © (2009-06-08 12:50) [83]ну это уже засада )
← →
SPeller © (2009-06-08 13:52) [84]Такой вопрос - зачем вам TEdit и откуда он рожает кучу сообщений?
← →
Игорь Шевченко © (2009-06-08 13:54) [85]SPeller © (08.06.09 13:52) [84]
TEdit мне нужен, чтобы из него текст мышкой/клавиатурой выбирать, и вставлять в Clipboard.
Сообщений он рождает по своей природе - практически любой наследник TWinControl порождает больше сообщений, чем наследник TGraphicControl, не говоря о ресурсах :)
← →
SPeller © (2009-06-09 04:19) [86]Можно в этом случае показывать графические контролы, а один единственный эдит держать скрытым и показывать при клике по нужному полю настраивая размеры перед показом
← →
Игорь Шевченко © (2009-06-09 12:00) [87]
> Можно в этом случае показывать графические контролы, а один
> единственный эдит держать скрытым и показывать при клике
> по нужному полю настраивая размеры перед показом
Думал на эту тему (тем более, есть опыт). Здорово усложняется поведение, еще не до конца понятно, стоит ли овчинка выделки. Пока лучшим вариантом является, на мой взгляд, неспешный поиск TGraphicControl, который умеет текст мышью выделять :)
← →
vuk © (2009-06-09 12:39) [88]Ну... Если бы у меня возникла такая задачка, я бы, наверное, применил QuantumGrid и его CardView. То есть, на каждом фрейме - всего один грид c CardView и потом опять плодить кучу фреймов.
Ну, или, как вариант, их же VerticalGrid...
← →
oxffff © (2009-06-09 15:21) [89]
> Игорь Шевченко © (09.06.09 12:00) [87]
>
> > Можно в этом случае показывать графические контролы, а
> один
> > единственный эдит держать скрытым и показывать при клике
>
> > по нужному полю настраивая размеры перед показом
>
>
> Думал на эту тему (тем более, есть опыт). Здорово усложняется
> поведение, еще не до конца понятно, стоит ли овчинка выделки.
> Пока лучшим вариантом является, на мой взгляд, неспешный
> поиск TGraphicControl, который умеет текст мышью выделять
> :)
TGraphicControl получает все сообщения от WinControl.
Поэтому от TWincontol вы ни как не избавитесь.
Сообщения от мыши он получает здесь
function TWinControl.IsControlMouseMsg(var Message: TWMMouse): Boolean;
Control := ControlAtPos(SmallPointToPoint(Message.Pos), False);
Result := False;
if Control <> nil then
begin
P.X := Message.XPos - Control.Left;
P.Y := Message.YPos - Control.Top;
Message.Result := Control.Perform(Message.Msg, Message.Keys, Longint(PointToSmallPoint(P)));
Result := True;
А вот сообщения от клавиатуры до него не доходят. Read Help.
TGraphicControl is the base class for all lightweight controls.
Unit
Controls
Description
TGraphicControl supports simple lightweight controls that do not need the ability to accept keyboard input or contain other controls.
Поэтому наблюдая за развитием темы со стороны мне не понятно как вы собираетесь и я решил поделиться своим IMHO
> Игорь Шевченко © (08.06.09 13:54) [85]
> TEdit мне нужен, чтобы из него текст мышкой/клавиатурой
> выбирать, и вставлять в Clipboard
Если мышкой возможно, то клавиатура не предусмотрена.
P.S.
Очень надеюсь обойтись без вашего бана.
← →
oxffff © (2009-06-09 15:29) [90]
> Игорь Шевченко © (09.06.09 12:00) [87]
>
> > Можно в этом случае показывать графические контролы, а
> один
> > единственный эдит держать скрытым и показывать при клике
>
> > по нужному полю настраивая размеры перед показом
>
>
> Думал на эту тему (тем более, есть опыт). Здорово усложняется
> поведение, еще не до конца понятно, стоит ли овчинка выделки.
> Пока лучшим вариантом является, на мой взгляд, неспешный
> поиск TGraphicControl, который умеет текст мышью выделять
> :)
Не думал что Мастера Delphi настолько суровы, что готовы отказываться от решения очень простой задачи.
От Вас ли я это слышу?
← →
Игорь Шевченко © (2009-06-09 16:12) [91]
> очень простой задачи
если задача очень простая, очевидно для нее имеются ясные и необременительные решения ? Не затруднит дать если не само простое решение, то, может быть, ссылку ?
← →
oxffff © (2009-06-09 17:21) [92]
> Игорь Шевченко © (09.06.09 16:12) [91]
Алгоритм высчитывания длины текста в определенном шрифте есть в интернете.
Может стоить обратиться к google?
Например начать с GetTextExtentPoint32.
← →
ANB (2009-06-09 18:03) [93]
> Не думал что Мастера Delphi настолько суровы, что готовы
> отказываться от решения очень простой задачи.
Вопрос - а надо ли ее решать таким способом ?
← →
Игорь Шевченко © (2009-06-09 18:29) [94]oxffff © (09.06.09 17:21) [92]
> Алгоритм высчитывания длины текста в определенном шрифте
> есть в интернете.
Это и есть решение МОЕЙ задачи ?
Странно, мне казалось, для решения моей задачи требуется слегка побольше действий.
← →
oxffff © (2009-06-09 20:43) [95]
> Игорь Шевченко © (09.06.09 18:29) [94]
Для начала прошу ответить на мой вопрос из [89] как TGraphicControl будет принимать ввод с клавиатуры?
← →
Игорь Шевченко © (2009-06-09 21:43) [96]oxffff © (09.06.09 20:43) [95]
Ты где-нибудь в моих постах видел упоминание о клавиатуре ? Напротив, я писал о выделении текста мышью.
Я не понимаю, чего ты так возбуждаешься ? Я несколько раз писал, что благодаря советам добился приемлемого быстродействия, дальнейшие пути его повышения вижу в том-то и в том-то, и также написал, что дальнейшие пути будут неспешными. Ты ветку почитай, чтобы мне несколько раз одно и тоже не писать.
← →
oxffff © (2009-06-09 21:44) [97]
> Это и есть решение МОЕЙ задачи ?
Боюсь Ваша личная самая самая самая главная задача нерешаема.
← →
oxffff © (2009-06-09 21:51) [98]
> Игорь Шевченко © (08.06.09 13:54) [85]
> SPeller © (08.06.09 13:52) [84]
>
> TEdit мне нужен, чтобы из него текст мышкой/клавиатурой
> выбирать, и вставлять в Clipboard.
И поскольку вы далее в качестве дальнейших шагов рассматриваете замену на TGraphicControl вместо TEdit.
Поэтому у меня(и не только у меня) возникает вопрос как быть в копированием в буфер с клавиатуры. Разве он не возникнет, как вы считаете?
← →
oxffff © (2009-06-09 21:53) [99]
> Я не понимаю, чего ты так возбуждаешься ?
:).
Спасибо конечно. Мне бухгалтерии на работе хватает.
И компилятора по вечерам. Так что я сейчас спокоен как танк.
← →
Игорь Шевченко © (2009-06-09 22:43) [100]oxffff © (09.06.09 21:53) [99]
Мне, собственно, тоже хватает других задач. Если ты внимательно читал, то я спрашивал про некую общую гайку, которая может позволить, а не про замену компонентов, мамбл-ванго с WndProc и прочие, требующие больших дополнительных усилий, действия. Если простой гайки нет - дополнительные телодвижения делаться, скорее всего, не будут, кто бы тут не возбуждался насчет суровых мастеров дельфи.
← →
Дмитрий С © (2009-06-24 05:52) [101]
> Игорь Шевченко © (09.06.09 22:43) [100]
А если использовать TLabel для показа текста. А если по нему клинкнуть (провести над ним мышью или как удобно). Создавать на его месте TEdit.
Есть затем ткнуть во второй Label, то Edit на месте первого удаляется, а на месте второго появляется.
Для того, чтобы было понятно, что по нему можно ткнуть - изменить форму курсора мыши для labelов.
← →
Дмитрий С © (2009-06-24 05:55) [102]И еще мне немного помогло в аналогичной ситуации скрыть scrollbox на время обновления.
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.01 c