![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ListView
markers © (2006-03-01 23:20:00)Здраствуйте!
Как можно сделать пункты ListView в режиме List, по центру?
Заранее спасибо!
Джо (2006-03-02 23:32:00) [1]> [14] StriderMan © (02.03.06 23:27)
> ээээ
> а по какой причине используется ListView а не ListBox, если
> все равно элементы отображаются текстом
Это, похоже, Вопрос Вопросов :-) Чем больше я смотрю на варианты сабжевого кода, тем более меня этот вопрос волнует. Ну да ладно.
StriderMan (2006-03-02 23:27:00) [2]ээээ
а по какой причине используется ListView а не ListBox, если все равно элементы отображаются текстом
REA (2006-03-02 11:14:00) [3]Вывод по центру: SetTextAlign(Canvas.Handle, TA_TOP Or TA_CENTER)
markers (2006-03-02 01:59:00) [4]Если кому интересно:
specname & newp = переменные с текстами
var
DLT1:Integer;
DLT2:Integer;
DLT3:Integer;
function InsertSpace(Count:Integer):String;
var i:integer;
begin
Result:='';
for i:=TListView(Sender).Canvas.TextWidth(Result) to Count do
begin
Result:=Result+' ';
end;
end;
begin
DefaultDraw:=False;
DLT1:=DopCatList.Width div 2;
if Item.Index = 1 Then
begin
DLT2:=(DLT1-TListView(Sender).Canvas.TextWidth(newpName)) div 2;
TListView(Sender).Canvas.TextOut(1,2,InsertSpace((DLT2 div 2)-10)+newpName+' '+InsertSpace((DLT2 div 2)-10));
end
else
begin
DLT2:=(DLT1-TListView(Sender).Canvas.TextWidth(specName)) div 2;
'+specName+' '+InsertSpace(DLT2 div 2));
TListView(Sender).Canvas.TextOut(DLT1-10,2,InsertSpace((DLT2 div 2)-10)+' '+specName+' '+InsertSpace((DLT2 div 2)-10));
TListView(Sender).Canvas.TextOut(DLT1,2,InsertSpace(DLT2)+specName+InsertSpace(DLT2));
end;
end;
markers (2006-03-02 01:06:00) [5]Попраки:
... следующий
не бокс а ListView
Ссори.
markers (2006-03-02 01:05:00) [6]Что-то у меня маленько не получаеться сделать Itemы по центру, мой алгоритм слудующий:
"
Получаем ширину бокса
Делем пополам и даем всем поровну :)
Измеряем размер текста каждой ячейки
От половинки бокса отнимаем размер текста ячейки
Делем его пополам и добавляем по половинке пустоты к каждой стороне
"
Поправьте меня пожалуйста если что?
markers (2006-03-02 00:53:00) [7]Просто у меня есть сейчас идеи, я может смогу их воплатить, а может и нет. А время идёт, может за это время что-то предложет ещё лучше чем я придумал.
Джо (2006-03-02 00:44:00) [8]> [7] markers © (02.03.06 00:42)
> Уже впринцепи решил....
> И формулу впринцепи придумал, но если будут предложения,
> буду рад.
Если ты уже сам все, в принципе, решил — то каких предложений ты ждешь и зачем вообще просишь помощи на форуме?
markers (2006-03-02 00:42:00) [9]>> [3] markers © (02.03.06 00:24)
>> А как избавиться от "Новые поступ..."?
>Что это такое?
!ListView "сокращает" имя item`a Мне нужно чтоб было полно...
Уже впринцепи решил....
И формулу впринцепи придумал, но если будут предложения, буду рад.
Джо (2006-03-02 00:40:00) [10]> [2] markers © (02.03.06 00:19)
> Мне нужна формула вычесления.
Очень рад.
Джо (2006-03-02 00:39:00) [11]> [3] markers © (02.03.06 00:24)
> А как избавиться от "Новые поступ..."?
Что это такое?
markers (2006-03-02 00:24:00) [12]А как избавиться от "Новые поступ..."?
markers (2006-03-02 00:24:00) [13]Только через OwerDraw?
markers (2006-03-02 00:19:00) [14]Мне нужна формула вычесления.
Джо (2006-03-02 00:16:00) [15]Установить OwnerDraw в True и в обработчике события OnDrawItem самому отрисовывать элементы.