Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DrawText в OnDrawColumnCell [D5, Volga]


Oleg Barsky ©   (2003-10-13 14:50:00) 

Какой в сабже там синтаксис?
Пробую:
DrawText(Handle, PChar(s),-1,R,DT_Right or DT_SINGLELINE);
Тоесть хочу вставить s:string.
Ничего не получается. Строка нагло украдена из другого обработчика.
Помогите излечиться!!!


MsGuns   (2003-10-13 15:47:00) [1]

1.Допустим, вместо содержимого поля MyFld НД, отображаемого в гриде, надо показывать поле AnotherFld из другой таблицы.
В SQL отображаемого НД добавляешь вывод AnotherFld и условие Where <Условие>
2.В событии OnGetText поля MyFld шлепаешь что-то вроде этого:

Text := FieldByName("AnotherFld").AsString;

и в гриде отображается вместо "родного" поля то, что надо

Если не устраивает по простецки, то в событии грида рисуй TextOut, предварительно создав пустой обработчик OnGetText для того, чтобы не допустить прорисовку родного поля. Но там трабла: как обратиться к соотв.записи другого НД, которая, ИМХО, решается куда хитрее и требует значительно бОльших ресурсов проц.времени.


Oleg Barsky   (2003-10-13 15:43:00) [2]

Весь гемор был из за того, что забыл строку
with DbGrid1.Canvas do
Ну учусь я еще...


Oleg Barsky   (2003-10-13 15:39:00) [3]

Понимаю, вчера выходной.
Спасибо.


Vlad   (2003-10-13 15:33:00) [4]

Извини, с телепатией сегодня у меня туговато... Выпил вчера лишнего :(


Oleg Barsky   (2003-10-13 15:28:00) [5]

Ты пальцем покажи.
Что написать что бы заработало?


Vlad   (2003-10-13 15:23:00) [6]

Самый тупой способ - TField.OnGetText
Самый нормальный способ - сделать в выборке Join с другой табличкой и выводить вместо инн поле из другой таблички


Oleg Barsky   (2003-10-13 15:18:00) [7]

В том то и дело, что ошибки нету. Просто ничего не происходит.
Объясню чего хочу добиться.

Рисуестя табличка с ИНН"ами. Мне нужно вместо них подставить имена из другой таблички. Имя отловил в s:string. Теперь его нужно просто подставить.
КАК? =(


Vlad   (2003-10-13 15:13:00) [8]

>Oleg Barsky (13.10.03 15:09) [4]
Нет, я не Парфенов. И не Шендерович.
Чего не получается-то ? Какая ошибка ?


Oleg Barsky   (2003-10-13 15:09:00) [9]

2Vlad: А ты случайно не Парфенов?
R:=Rect;


Oleg Barsky   (2003-10-13 15:03:00) [10]

Совсем не завелось.
Распиши, плз, все обозначения.


Vlad   (2003-10-13 15:03:00) [11]

Кнопку F1 трудно нажать ?
Какой хендл ты туда передаешь ? Нужен хендл Canvas"a
Параметр, названный тобой R как описан ? д.б. TRect, желательно взять Rect из параметра процедуры.


ZrenBy   (2003-10-13 15:01:00) [12]

Windows.DrawText(Grid.Canvas.Handle,LPSTR(S),-1,Rect,DT_VCENTER or DT_SINGLELINE or dtStyle);


Наверх

Титульная страница Поиск, карта сайта Написать письмо