Главная страница
    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
6-18077
Yuri Pipchenko
2002-03-25 14:26
2002.06.06
Telnet-клиент


1-17875
Schummi
2002-05-25 15:38
2002.06.06
ClipCursor()


1-17885
Tahion
2002-05-20 09:00
2002.06.06
Как printdialog1 заставить вносить имен. в настройки QuickRep1


3-17788
ORFO
2002-05-15 12:29
2002.06.06
Как работать с индексами в Парадокс?


1-17884
Art-Support1
2002-05-21 22:44
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский