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

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

Email в гриде. [D5, Win95/98]


Kyt ©   (2002-07-11 10:59:00) 

Господа, подскажите, пожалуйста, как грамотнее организовать следующее. В колонке грида(среди прочего) может находиться email.
Как грамотно его подчеркнуть(подсветить) и открыть OutLook.
Заранее спасибо.


Skier   (2002-07-11 17:39:00) [1]

>Kyt
Ааа... точно. Извини.

А как ты вообще собрался работать с TCustomGrid у него
же нет ничего для работы со строками ?

Тогда уж "тащи" в TCustomGrid всё что нужно для
работы со строками из TStringGrid


Kyt   (2002-07-11 17:33:00) [2]

У меня TCustomGrid


Skier   (2002-07-11 17:01:00) [3]

>Kyt
Cells[Col, Row]


Kyt   (2002-07-11 16:58:00) [4]

Пролетая мышью над записью, нужно знать значение этого поля, для проверки на Valid. Как??


Skier   (2002-07-11 16:05:00) [5]

>Kyt


> Как достучаться до цвета фонта?


Canvas.Brush.Color


> До ID записи на которой стоим?


Row


Kyt   (2002-07-11 15:29:00) [6]

SOS!!

procedure gEmployerMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
coord: TGridCoord;
begin
coord := gEmployer.MouseCoord(X, Y);
if gEmployer.Columnscoord.x].Field.Name "qEmployerEMail"
then Cursor := crHandPoint;
end;

Как достучаться до цвета фонта? До ID записи на которой стоим?

С уважениемм!


Skier   (2002-07-11 14:51:00) [7]

>Kyt
Если ты "ковыряешь" TCustomGrid, то смотри TCustomGrid.MouseMove
Там есть такой код :

var
CellHit: TGridCoord;
..........
CalcDrawInfo(DrawInfo);
..........
CellHit := CalcCoordFromPoint(X, Y, DrawInfo);

А далее смотришь CellHit.X и CellHit.Y



Kyt   (2002-07-11 14:44:00) [8]

Имею событие:
MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
Как определить нахожусь над нужной ячейкой или нет?


Skier   (2002-07-11 14:30:00) [9]

>Kyt

TCustomGrid.DrawCell - абстрактный метод !

тебе нужно убрать слово abstractи
написать реализацию метода


> Как перевести координаты мыши в номер ячейки??


Зачем ?


Kyt   (2002-07-11 14:17:00) [10]

TCustomGrid


Skier   (2002-07-11 14:14:00) [11]

>Kyt
А кстати, грид-то какой ? Какой класс ???


Kyt   (2002-07-11 14:11:00) [12]

Спасибо за ответы. Остались у меня проблемы. Как перевести координаты мыши в номер ячейки??

Я на событие DrawColumnCell пытаюсь менять цвет, но меняетс цвет всей строки. Как достучаться до цвета ячейки?


still   (2002-07-11 11:38:00) [13]

Если ты знаешь, в какой колонке находится e-mail, причем кроме адреса в ячейке ничего нет, то обрабатывай OnMouseMove, переводи координаты мыши в номер ячейки и меняй шрифт в OnDrawCell.
Если в ячейке может находится еще что-то, то тут сложнее (думать надо).
Outlook запустить можно API-функцией ShellExecute
ShellExecute(0, Pchar("open"), Pchar("mailto:aaa@aaa.ru"), nil, nil, SW_MAXIMIZE);
Запустится почтовая программа по умолчанию.


Skier   (2002-07-11 11:29:00) [14]

>Kyt

);
> и открыть OutLook.



Можно так :



uses ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
FUrl : String;
begin
FUrl := "mailto:adress@mail.ru";
ShellExecute(GetDesktopWindow(), "Open", PChar(Trim(FUrl)),
nil, nil, SW_SHOWNORMAL);
end;


Skier   (2002-07-11 11:15:00) [15]

>Kyt


> Как грамотно его подчеркнуть(подсветить)


Нужно написать обработчик OnDrawCell


Наверх

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