Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.06;
Скачать: CL | DM;

Вниз

Как ? 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
3-17841
Sewix
2002-05-16 15:43
2002.06.06
QReport отправить в Word


1-17969
Delphi5.01
2002-05-23 08:05
2002.06.06
Как удалить своиства нужного мне компонента?


1-17853
Григорий
2002-05-26 01:51
2002.06.06
Кто-нибудь подскажите как из моего EXE-шника открыть, просто для


1-17925
Борис А.В.
2002-05-27 19:34
2002.06.06
Развернуть окно...


3-17781
wHammer
2002-05-15 15:05
2002.06.06
QReport