Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
ВнизКак ? 2 вопроса Найти похожие ветки
← →
allrussia (2002-05-27 04:34) [0]1.Дано: Form1.Label1.Caption - с несколькими строчками текста (wordwrap включен). Как узнать значение Top относительно формы
у последней строки этой метки. (имхо надо узнать количество строк , помножить на (размер шрифта+расстояние между строчками), плюс высота первой строки. Но в голову не приходит как узнать.
2. Как запретить помещение в Listbox какой-то строки, например с названием "OPTIONS";
Пишу:
with ListBox do
for i:=0 to count-1 do
if UpperCase(ListBox.Items.Strings[i])="OPTIONS" then delete(i)
не работает..... ошибка out of bounds
Поправьте код, подозреваю что нужно downto но не знаю как
← →
allrussia (2002-05-27 04:37) [1]ко 2 >> имеется ввиду что строка(и) уже там
← →
Walker (2002-05-27 04:54) [2]1.
есть функция:
windows.DrawText(...);
например выглядеть это будет так
var
r: TRect;
h: Integer;
begin
r:=Rect(0, 0, Label1.Width, 0);
DrawText(Label1.Canvas.Handle,
PChar(Label1.Caption), -1, r,
DT_CALCRECT or
DT_LEFT or
DT_WORDBREAK
);
h:=Label1.Canvas.TextHeight("1");
end;
вот..... после выполнения этих ф-ций:
r - содержит размеры всего текста (r.Bottom - r.Top = высота всего текста)
h = высота одной строки
следовательно
Top_X := r.Bottom - r.Top + h; - то что требовалось найти
2. всё верно, цикл надо проходить от конца к началу, с низу-вверх:
with ListBox do
for i:=count-1 to 0 do
if UpperCase(ListBox.Items.Strings[i])="OPTIONS" then ListBox.Items.delete(i)
← →
allrussia (2002-05-27 06:43) [3]Walker >> СпаСи6ище
Только (2) цикл не работает - может из-за Delphi3?
Я проверял у меня с конца циклы не работают
← →
Sniffer (2002-05-27 07:17) [4]>Walker
with ListBox do
for i:=count-1 DOWNTO 0 do
if UpperCase(ListBox.Items.Strings[i])="OPTIONS" then ListBox.Items.delete(i)
>allrussia
Только (2) цикл не работает - может из-за Delphi3?
Это врядли :)
← →
allrussia (2002-05-28 02:20) [5]Sniffer - спасибо, я уже сам догадался
Просто ты вначале написал to, поэтому...
← →
rhf (2002-05-28 02:42) [6]out of bounds было потому, что вы запускали на прохождение всех элементов, а в середине один или несколько удаляли, соответственно их становилось меньше чем то количество, которое вы собрались просмотреть
← →
allrussia (2002-05-28 06:57) [7]rhf - поделиться советом никогда не поздно! :))))))))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c