Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
1-1211977078
TForumHelp
2008-05-28 16:17
2009.08.23
Создание компонента


2-1245226924
девушка
2009-06-17 12:22
2009.08.23
Вызов ХП из FastReport


1-1212411569
Kolan
2008-06-02 16:59
2009.08.23
Так присвоение булевой переменной атомарное или нет?


15-1245766056
Кто б сомневался
2009-06-23 18:07
2009.08.23
Машина времени


2-1245754773
Priest
2009-06-23 14:59
2009.08.23
Как правильно работать с палитрой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский