Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Вниз

Почему не удается послать сообщение LB_SETTABSTOPS ???   Найти похожие ветки 

 
Альф   (2003-02-20 09:38) [0]

Для ListBox ??? Делаю так:

var
TabPos: array[0..1]of integer;
result: LongInt;
begin
TabPos[0] := 50;
TabPos[1] := 100;
result := GetWindowLong(ListBox1.Handle, GWL_STYLE) or LBS_USETABSTOPS;
result := SetWindowLong(ListBox1.Handle, GWL_STYLE, result);
if result = 0
then ShowMessage("false")
else ShowMessage("true");

result := SendMessage(ListBox1.Handle, LB_SETTABSTOPS, integer(2), LongInt(@TabPos[0]));
if result = 0
then ShowMessage("false")
else ShowMessage("true");

В результате получаю [true] [false]

В Help-е по поводу LB_SETTABSTOPS сказано следующее:
If all the specified tabs are set, the return value is TRUE; otherwise, it is FALSE.


 
Игорь Шевченко   (2003-02-20 10:00) [1]

ListBox.TabWidth := 50 не проще ли будет ?


 
Альф   (2003-02-20 10:09) [2]

2Игорь Шевченко © (20.02.03 10:00)
Не проще к сожалению :( - потому что нужно не одну позицию а несколько :) - смотрим StdCtrls и что мы видим :

if FTabWidth <> 0 then
SendMessage(Handle, LB_SETTABSTOPS, 1, Longint(@FTabWidth));
SetColumnWidth; //^^^ - вот это


- т.е. задается всего одна позиция - а мне нужно несколько :)


 
Игорь Шевченко   (2003-02-20 10:16) [3]

Попробуй:
Задать TabWidth не равный 0.
После того:

procedure TForm1.Button1Click(Sender: TObject);
var
TabPos: array[0..1]of integer;
result: LongInt;
begin
TabPos[0] := 50;
TabPos[1] := 100;

result := SendMessage(ListBox1.Handle, LB_SETTABSTOPS, integer(2), LongInt(@TabPos));
if result = 0
then ShowMessage("false")
else ShowMessage("true");
end;



 
Альф   (2003-02-20 10:24) [4]

2Игорь Шевченко © (20.02.03 10:16)
Спасибо, заработало, извини не додумался :) - еще не проснулся наверно
А как думаешь с чем это связано ?

Может с тем, что одно дело когда стиль устанавливается перед созданием окна, а другое дело - после создания ч-з SetWindowLong
Ведь если TabWidth <> 0, то ListBox-у стиль LBS_USETABSTOPS устанавливается ДО создания.


 
Игорь Шевченко   (2003-02-20 10:28) [5]


> Может с тем, что одно дело когда стиль устанавливается перед
> созданием окна, а другое дело - после создания ч-з SetWindowLong
> Ведь если TabWidth <> 0, то ListBox-у стиль LBS_USETABSTOPS
> устанавливается ДО создания.


Именно



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
14-5846
Johnny Smith
2003-02-11 12:12
2003.03.03
Хотелось бы комментарии, особенно от Мазута Берегового,


8-5663
DimaK
2002-11-14 23:09
2003.03.03
Ребята, помогите разобраться со звуком.


8-5654
Dimon14
2002-11-15 03:13
2003.03.03
Сравниваю битовые матрицы через цикл, а нелзя ли засунуть их в пе


1-5611
Dolton
2003-02-20 07:36
2003.03.03
Запрос пароля


1-5502
UDS
2003-02-20 20:20
2003.03.03
Вопрос по компоненту





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