Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-17879
dim-
2002-05-26 12:17
2002.06.06
интеграция в эксплорер


4-18183
Sender
2002-04-02 18:42
2002.06.06
ПОМОГИТЕ!!!


1-18042
Ura
2002-05-23 16:44
2002.06.06
Проверка времени на попадания в диапазон времени.


1-17976
ION T
2002-05-28 14:54
2002.06.06
Параметры register


4-18205
_Alex_
2002-04-03 06:27
2002.06.06
чтение данных о ярлыке





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский