![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Предел ширины контрола
KilkennyCat © (2012-12-09 23:05:00)Когда ширина TPanel за 2000 с небольшим, позиционирование (Tpanel.Left) сбивается. Это нормально? Или что-то надо предпринимать?
KilkennyCat (2012-12-11 09:32:00) [1]
> Anatoly Podgoretsky © (11.12.12 08:16) [26]
ньютону и яблоко: вначале было трясение, падение, ударение и лишь последним - думанье.
Anatoly Podgoretsky (2012-12-11 08:16:00) [2]> KilkennyCat (11.12.2012 02:29:25) [25]
Правильно, чего думать, трясти надо
KilkennyCat (2012-12-11 02:29:00) [3]ага. я этим занимаюсь, только я упростил процесс, выкинув "подумать" :)
Германн (2012-12-11 02:09:00) [4]
> KilkennyCat © (11.12.12 01:48) [23]
>
> понял, зачем я тогда мудрил... клипрект теперь не отрабатывает
> :)
>
А если ещё подумать и попробовать? А потом попробовать и ещё подумать?
KilkennyCat (2012-12-11 01:48:00) [5]понял, зачем я тогда мудрил... клипрект теперь не отрабатывает :)
сплошной малайс.
Игорь Шевченко (2012-12-10 10:43:00) [6]KilkennyCat © (10.12.12 02:04) [19]
Never attribute to malice... :)
Anatoly Podgoretsky (2012-12-10 07:14:00) [7]> KilkennyCat (10.12.2012 00:50:12) [12]
Главаря всегда убивают в конце фильма.
Германн (2012-12-10 02:15:00) [8]
> KilkennyCat © (10.12.12 02:04) [19]
>
> вот блин... готов провалится от стыда. проверил все тщательно,
> и обнаружил у себя перекрытие WMWindowPosChanged где сам
> же и накосячил.
> Давно его зачем-то сделал, непомню (у меня типа болванки-
> заготовки написано, на базе которой я леплю маленькие программки)
У меня тоже есть подобная болванка, появившаяся после настоятельного пожелания коллег из техотдела, чтобы тестовые программы всегда нормально работали(выглядели) на нетбуке (1024х600) :)
KilkennyCat (2012-12-10 02:04:00) [9]вот блин... готов провалится от стыда. проверил все тщательно, и обнаружил у себя перекрытие WMWindowPosChanged где сам же и накосячил.
Давно его зачем-то сделал, непомню (у меня типа болванки-заготовки написано, на базе которой я леплю маленькие программки)
Тысяча извинений, проблемы нет.
Германн (2012-12-10 02:03:00) [10]Отчасти оффтоп, отчасти нет.
Вспомнил свои ранние непонятки с максимальными размерами формы.
Германн (2012-12-10 02:02:00) [11]
> KilkennyCat © (10.12.12 01:58) [16]
>
>
> > Германн © (10.12.12 01:41) [15]
>
> версия делфи, виндоус?
>
Д2007, ХР SP3
> предел есть.
Готов выложить свой тестовый проект.
KilkennyCat (2012-12-10 01:58:00) [12]
> Германн © (10.12.12 01:41) [15]
версия делфи, виндоус?
> Ну вот а я кинулся проверять и уже проверил и не нашел сего
> предела.
предел есть. мне показалось, что я нашел возможность от него избавиться.
Германн (2012-12-10 01:41:00) [13]
> KilkennyCat © (10.12.12 01:32) [14]
>
> не, эт мне показалось.
Ну вот а я кинулся проверять и уже проверил и не нашел сего предела.
А сообщить об этом не успел :(
KilkennyCat (2012-12-10 01:32:00) [14]не, эт мне показалось. просто не сразу перерисовалось. ща досмотрю кино и покопаю дальше.
KilkennyCat (2012-12-10 00:56:00) [15]все-таки очень странно.
вот исходник:
procedure TCustomPanel.WMWindowPosChanged(var Message: TWMWindowPosChanged);
var
BevelPixels: Integer;
Rect: TRect;
begin
if FullRepaint or (ShowCaption and (Caption <> '')) then
Invalidate
else
begin
BevelPixels := BorderWidth;
if BevelInner <> bvNone then Inc(BevelPixels, BevelWidth);
if BevelOuter <> bvNone then Inc(BevelPixels, BevelWidth);
if BevelPixels > 0 then
begin
Rect.Right := Width;
Rect.Bottom := Height;
if Message.WindowPos.cx <> Rect.Right then
begin
Rect.Top := 0;
Rect.Left := Rect.Right - BevelPixels - 1;
InvalidateRect(Handle, Rect, True);
end;
if Message.WindowPos.cy <> Rect.Bottom then
begin
Rect.Left := 0;
Rect.Top := Rect.Bottom - BevelPixels - 1;
InvalidateRect(Handle, Rect, True);
end;
end;
end;
inherited;
end;
то есть, дела капшион панели равным пробелу и нет "проблемы 2000".
Непонятно, почему сразу инвалидэйт не вызвать, в чем проблема, если текста нет? с фуллрепаинтом фиг с ним, зверь неизвестный мне, но влияние текста... странно. я бы еще понял наоборот, что если есть текст - то вот, получите ограничение.
KilkennyCat (2012-12-10 00:50:00) [16]все-таки параллельно работе смотреть фильмы невозможно, проблема проявилась в начале фильма, и разрешилась в конце фильма :)
KilkennyCat (2012-12-10 00:49:00) [17]procedure TCustomPanel.WMWindowPosChanged(var Message: TWMWindowPosChanged); - вот где засада.
KilkennyCat (2012-12-10 00:44:00) [18]подрубил второй монитор, получив суммарную ширину более 2500. форма растягивается, панель - нет. однако, есть хорошая новость: не все контролы так глючат, например, скроллбар ведет себя нормально. Что ж, я умею и без панелей...
KilkennyCat (2012-12-10 00:38:00) [19]Вот, не хватило...
DVM (2012-12-10 00:19:00) [20]
> Inovet © (10.12.12 00:15) [7]
2000 точек должно было хватить всем думали в 95 году