Текущий архив: 2003.03.03;
Скачать: CL | DM;
ВнизПочему не удается послать сообщение 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;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.008 c