Форум: "Начинающим";
Текущий архив: 2013.08.11;
Скачать: [xml.tar.bz2];
ВнизПредел ширины контрола Найти похожие ветки
← →
KilkennyCat © (2012-12-09 23:05) [0]Когда ширина TPanel за 2000 с небольшим, позиционирование (Tpanel.Left) сбивается. Это нормально? Или что-то надо предпринимать?
← →
Игорь Шевченко © (2012-12-09 23:10) [1]Пример ?
← →
Игорь Шевченко © (2012-12-09 23:15) [2]Просто интересно - в одной из задач (даже ветка в потрепаловке была три года назад) я делал окно довольно больших размеров, правда, не Panel, а Scrollbox, проблем с позиционированием не было.
← →
KilkennyCat © (2012-12-09 23:18) [3]пример очень простой, сейчас проэкспериментировал, этот глюк возникает в дезижнтайме, если кинуть на форму панель, установить ей Left в инспекторе объектов равным 0, и там же
Width сделать до 2000 включительно: Left остается 0;
свыше 2000 на некую Х: Left становится равным -Х
← →
KilkennyCat © (2012-12-09 23:19) [4]XE2, Win7x64
← →
KilkennyCat © (2012-12-09 23:21) [5]
> этот глюк возникает в дезижнтайме
ну и в рантайме тоже. собственно, сначала тоже в скроллбокс кинул, проект простой, не хотелось особо мучаться, а тут бац, скроллбокс назад левую часть не вернул. Ну, я решил, что фиг с ним, сам проскроллю. А вот фиг, как только за 2000 ширина увеличивается, лефт становится отрицательным и отказывается изменятся (по крайней мере, вправо).
← →
KilkennyCat © (2012-12-09 23:24) [6]Я могу решить эту проблему, сэмулировав. Сложнее немного, но могу.
То есть, не предлагайте альтернатив :) заранее спасибо, но знаю их.
Любопытен именно этот вариант, просто никогда не сталкивался и не думал, что там есть ограничение более чем Integer и/или ресурсы.
← →
Inovet © (2012-12-10 00:15) [7]> [5] KilkennyCat © (09.12.12 23:21)
> как только за 2000 ширина увеличивается, лефт становится
> отрицательным и отказывается изменятся
Это проблема 2000-ного года проявилась.:)
← →
DVM © (2012-12-10 00:19) [8]
> Inovet © (10.12.12 00:15) [7]
2000 точек должно было хватить всем думали в 95 году
← →
KilkennyCat © (2012-12-10 00:38) [9]Вот, не хватило...
← →
KilkennyCat © (2012-12-10 00:44) [10]подрубил второй монитор, получив суммарную ширину более 2500. форма растягивается, панель - нет. однако, есть хорошая новость: не все контролы так глючат, например, скроллбар ведет себя нормально. Что ж, я умею и без панелей...
← →
KilkennyCat © (2012-12-10 00:49) [11]procedure TCustomPanel.WMWindowPosChanged(var Message: TWMWindowPosChanged); - вот где засада.
← →
KilkennyCat © (2012-12-10 00:50) [12]все-таки параллельно работе смотреть фильмы невозможно, проблема проявилась в начале фильма, и разрешилась в конце фильма :)
← →
KilkennyCat © (2012-12-10 00:56) [13]все-таки очень странно.
вот исходник: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 01:32) [14]не, эт мне показалось. просто не сразу перерисовалось. ща досмотрю кино и покопаю дальше.
← →
Германн © (2012-12-10 01:41) [15]
> KilkennyCat © (10.12.12 01:32) [14]
>
> не, эт мне показалось.
Ну вот а я кинулся проверять и уже проверил и не нашел сего предела.
А сообщить об этом не успел :(
← →
KilkennyCat © (2012-12-10 01:58) [16]
> Германн © (10.12.12 01:41) [15]
версия делфи, виндоус?
> Ну вот а я кинулся проверять и уже проверил и не нашел сего
> предела.
предел есть. мне показалось, что я нашел возможность от него избавиться.
← →
Германн © (2012-12-10 02:02) [17]
> KilkennyCat © (10.12.12 01:58) [16]
>
>
> > Германн © (10.12.12 01:41) [15]
>
> версия делфи, виндоус?
>
Д2007, ХР SP3
> предел есть.
Готов выложить свой тестовый проект.
← →
Германн © (2012-12-10 02:03) [18]Отчасти оффтоп, отчасти нет.
Вспомнил свои ранние непонятки с максимальными размерами формы.
← →
KilkennyCat © (2012-12-10 02:04) [19]вот блин... готов провалится от стыда. проверил все тщательно, и обнаружил у себя перекрытие WMWindowPosChanged где сам же и накосячил.
Давно его зачем-то сделал, непомню (у меня типа болванки-заготовки написано, на базе которой я леплю маленькие программки)
Тысяча извинений, проблемы нет.
← →
Германн © (2012-12-10 02:15) [20]
> KilkennyCat © (10.12.12 02:04) [19]
>
> вот блин... готов провалится от стыда. проверил все тщательно,
> и обнаружил у себя перекрытие WMWindowPosChanged где сам
> же и накосячил.
> Давно его зачем-то сделал, непомню (у меня типа болванки-
> заготовки написано, на базе которой я леплю маленькие программки)
У меня тоже есть подобная болванка, появившаяся после настоятельного пожелания коллег из техотдела, чтобы тестовые программы всегда нормально работали(выглядели) на нетбуке (1024х600) :)
← →
Anatoly Podgoretsky © (2012-12-10 07:14) [21]> KilkennyCat (10.12.2012 00:50:12) [12]
Главаря всегда убивают в конце фильма.
← →
Игорь Шевченко © (2012-12-10 10:43) [22]KilkennyCat © (10.12.12 02:04) [19]
Never attribute to malice... :)
← →
KilkennyCat © (2012-12-11 01:48) [23]понял, зачем я тогда мудрил... клипрект теперь не отрабатывает :)
сплошной малайс.
← →
Германн © (2012-12-11 02:09) [24]
> KilkennyCat © (11.12.12 01:48) [23]
>
> понял, зачем я тогда мудрил... клипрект теперь не отрабатывает
> :)
>
А если ещё подумать и попробовать? А потом попробовать и ещё подумать?
← →
KilkennyCat © (2012-12-11 02:29) [25]ага. я этим занимаюсь, только я упростил процесс, выкинув "подумать" :)
← →
Anatoly Podgoretsky © (2012-12-11 08:16) [26]> KilkennyCat (11.12.2012 02:29:25) [25]
Правильно, чего думать, трясти надо
← →
KilkennyCat © (2012-12-11 09:32) [27]
> Anatoly Podgoretsky © (11.12.12 08:16) [26]
ньютону и яблоко: вначале было трясение, падение, ударение и лишь последним - думанье.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.08.11;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.003 c