Главная страница
    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.56 MB
Время: 0.045 c
1-5556
Jolik
2003-02-19 12:05
2003.03.03
как можно импортировать из DLL объекты?


1-5536
Lenchik
2003-02-17 12:43
2003.03.03
Word Wrap - как сделать?


3-5418
Prihod
2003-02-12 12:22
2003.03.03
ПОМОГИТЕ ПОЖАЛУЙСТА ПОДКЛЮЧИТЬСЯ К БАЗАМ ДАННЫХ FoxPro


14-5719
MsGuns
2003-02-07 11:36
2003.03.03
Еще о музыке


8-5666
evgeniy_t
2002-11-19 12:44
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский