Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 11:32   #1
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию Incompatible types: 'PWideChar' and 'string'

Непонятно что за дела

procedure TForm1.StringGrid1DblClickCell(Send er: TObject; ARow,
ACol: Integer);
var
j:string;

begin
j:= StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];

if StringGrid1.Col = 1 then
ShellExecute( Handle, 'open', j, nil, nil, SW_NORMAL );
end;

Ошибка вся все время пробовал по разному

Делаешь так то ошибка при клике по ячейки

procedure TForm1.StringGrid1DblClickCell(Send er: TObject; ARow,
ACol: Integer);
var
j:Pwidechar;
s:string;
begin
s:= StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row];
s:=widechartostring(j);
if StringGrid1.Col = 1 then
ShellExecute( Handle, 'open', j, nil, nil, SW_NORMAL );
end;

Последний раз редактировалось Aleksandr69; 25.12.2011 в 11:38.
Aleksandr69 вне форума Ответить с цитированием
Старый 25.12.2011, 11:49   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
j:= StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];
 if StringGrid1.Col = 1 then 
 ShellExecute( Handle, 'open', PChar(j), nil, nil, SW_NORMAL );
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2011, 11:58   #3
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
j:= StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];
 if StringGrid1.Col = 1 then 
 ShellExecute( Handle, 'open', PChar(j), nil, nil, SW_NORMAL );
Тогда ошибка тут ,грид от тмс


[DCC Error] Unit1.pas(177): E2010 Incompatible types: 'PWideChar' and 'string'

j:= AdvStringGrid1.Cells[AdvStringGrid1.Col, AdvStringGrid1.Row];
Aleksandr69 вне форума Ответить с цитированием
Старый 25.12.2011, 12:01   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

j должна быть типа string.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2011, 12:02   #5
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
j должна быть типа string.
так у меня так и было изначально вот программа запускается и ошибка уже при клике

procedure TForm1.AdvStringGrid1DblClickCell(S ender: TObject; ARow,
ACol: Integer);
var
j:Pwidechar;
s:string;
begin
s:= AdvStringGrid1.Cells[AdvStringGrid1.Col, AdvStringGrid1.Row];
j:=widechartostring(s);
if AdvStringGrid1.Col = 1 then //ткнули в ячейку второй колонки
ShellExecute( Handle, 'open', j, nil, nil, SW_NORMAL );
end;
Aleksandr69 вне форума Ответить с цитированием
Старый 25.12.2011, 12:07   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это совсем другое.
Код:
procedure TForm1.StringGrid1DblClickCell(Send er: TObject; ARow,
 ACol: Integer);
 var
 j:string;
 begin
 j:= StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];
 if StringGrid1.Col = 1 then 
 ShellExecute( Handle, 'open', PChar(j), nil, nil, SW_NORMAL );
 end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2011, 12:07   #7
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Точно простите вот так все запускается и ошибки нет только на клик не реагирует и ничего не происходит


procedure TForm1.AdvStringGrid1DblClickCell(S ender: TObject; ARow,
ACol: Integer);
var
j:Pwidechar;
s:string;
begin
s:= AdvStringGrid1.Cells[AdvStringGrid1.Col, AdvStringGrid1.Row];
j:=PWidechar(s);
if AdvStringGrid1.Col = 1 then //ткнули в ячейку второй колонки
ShellExecute( Handle, 'open', j, nil, nil, SW_NORMAL );
end;



Вот ваш вариант тоже самое

procedure TForm1.AdvStringGrid1DblClickCell(S ender: TObject; ARow,
ACol: Integer);
var
j:string;
begin
j:= AdvStringGrid1.Cells[AdvStringGrid1.Col,AdvStringGrid1.R ow];
if AdvStringGrid1.Col = 1 then
ShellExecute( Handle, 'open', PChar(j), nil, nil, SW_NORMAL );
end;


Не хочет открывать ссылку из ячейки и все ,вот засада

Последний раз редактировалось Aleksandr69; 25.12.2011 в 12:09.
Aleksandr69 вне форума Ответить с цитированием
Старый 25.12.2011, 12:13   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ссылка записана как положено? с указанием протокола?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2011, 12:14   #9
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ссылка записана как положено? с указанием протокола?

да http://www.site.ru ,значит что то в системе ,даже браузер не запускается реакции 0

Проверил так тоже реакции нет

ShellExecute( Handle, 'open', 'http://www.site.ru', nil, nil, SW_NORMAL );

Что может быть,придется в прогу браузер добавлять наверно.

Все работает спасибо моя ошибка)))) была в строке if AdvStringGrid1.Col = 1 then а нужно if AdvStringGrid1.Col = 4 then

Последний раз редактировалось Aleksandr69; 25.12.2011 в 12:36.
Aleksandr69 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Incompatible types MetR Помощь студентам 4 22.12.2011 18:31
incompatible types nupinh Общие вопросы Delphi 1 21.05.2011 23:18
Incompatible types: 'String' and 'Text' eshik Помощь студентам 3 21.04.2010 00:41