Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Ошибка при компиляции....   Найти похожие ветки 

 
RustiK ©   (2004-03-12 11:00) [0]

Привет всем.

С недавнего времени у меня появилась следующая проблемка.

У меня на Onlick лейбла (хотя разницы нет на чем событие) стоит функция
ShellExecute(Application.Handle, nil,"mailto:kto-to"gde-to.ru",nil, nil, SW_SHOWNORMAL)
и при компиляции выдает ошибку типа:
[Error] Unit13.pas(41): Statement expected, but expression of type "Cardinal" found

Хотя открываю другой проект созданный мною же в этой же версии Дельфи и все работает ОК.
Не подскажите в чем проблемма?

Заранее спасибо.


 
pasha_golub ©   (2004-03-12 11:01) [1]

В строке 40 нету точки с запятой. :-)


 
RustiK ©   (2004-03-12 11:02) [2]

предположим что есть


 
RustiK ©   (2004-03-12 11:03) [3]

Кстати с MessageBox происходит тоже самое


 
pasha_golub ©   (2004-03-12 11:07) [4]

Поболее кода пожалуйста. Помехи мешают телепатировать. :-)


 
RustiK ©   (2004-03-12 11:09) [5]

procedure TForm13.Label3Click(Sender: TObject);
begin
ShellExecute(Application.Handle, nil,"mailto:kto-to@gte-to.ru",nil, nil, SW_SHOWNORMAL);
end;


 
ssk   (2004-03-12 11:12) [6]

а uses ShellAPI есть?


 
RustiK ©   (2004-03-12 11:13) [7]

есть


 
pasha_golub ©   (2004-03-12 11:13) [8]

Может так пройдет?

ShellAPI.ShellExecute(Application.Handle, nil,"mailto:kto-to@gte-to.ru",nil, nil, SW_SHOWNORMAL);


 
MU   (2004-03-12 11:15) [9]

PChar("mailto:kto-to@gte-to.ru") не надо?!


 
RustiK ©   (2004-03-12 11:15) [10]

нет к сожалению. тоже самое


 
Reindeer Moss Eater ©   (2004-03-12 11:16) [11]

В строке 40 нету точки с запятой. :-)

Где-то выше строки 41 нету точки с запятой или лишняя запятая


 
ssk   (2004-03-12 11:17) [12]

попробуй

ShellExecute(Application.Handle, "open", PChar("mailto:"+Adress), nil, nil, SW_NORMAL);


 
RustiK ©   (2004-03-12 11:22) [13]

не ничего не получилось таже сая ошибка.

Получилось вот так:

procedure TForm13.Label3Click(Sender: TObject);
var
a:integer;
begin
a:=ShellAPI.ShellExecute(Application.Handle, nil,"mailto:kto-to@gte-to.ru",nil, nil, SW_SHOWNORMAL);
end;


Странно но уж очень сильно это смахивает на Visual Basic-овский стиль.


 
Anatoly Podgoretsky ©   (2004-03-12 11:29) [14]

Тебе сказали ищи ошибку выще.


 
RustiK ©   (2004-03-12 11:29) [15]

Может мне ктонибудь объяснит в чем все таки проблема?


 
evvcom   (2004-03-12 11:32) [16]

Кликаешь два раза по ошибке, переходишь в окно редактора. На строку выше подымаешься и жмешь клавишу End. Курсор должен встать сразу за тчк с зпт.


 
Anatoly Podgoretsky ©   (2004-03-12 11:35) [17]

RustiK ©   (12.03.04 11:29) [15]
Смотри [1] и [11]


 
RustiK ©   (2004-03-12 11:44) [18]

Вот листинг всего юнита:

unit Unit13;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, jpeg, ExtCtrls, StdCtrls, shellapi;

type
 TForm13 = class(TForm)
   Label4: TLabel;
   procedure Label4Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form13: TForm13;

implementation

{$R *.dfm}

procedure TForm13.Label4Click(Sender: TObject);
begin;
ShellExecute(Application.Handle, nil,"http://www.codest.com",nil, nil, SW_SHOWNORMAL);
end;

end.


и где тут ошибка?


 
Anatoly Podgoretsky ©   (2004-03-12 11:50) [19]

Вот здесь begin;


 
Reindeer Moss Eater ©   (2004-03-12 11:50) [20]

В другом модуле значит.

Закоментарь всю свою Label4Click и ошибка не исчезнет


 
Anatoly Podgoretsky ©   (2004-03-12 11:51) [21]

И это было сказано в Reindeer Moss Eater ©   (12.03.04 11:16) [11]


 
NAlexey ©   (2004-03-12 11:53) [22]

Супер!:)


 
pasha_golub ©   (2004-03-12 11:55) [23]

Anatoly Podgoretsky ©   (12.03.04 11:50) [19]
Это не ошибка. Пустой оператор тама будет и все.


 
Reindeer Moss Eater ©   (2004-03-12 11:57) [24]

Ага.
Пустой оператор посреди другого оператора.
Так не бывает.


 
RustiK ©   (2004-03-12 11:57) [25]

Мда....

Первый раз вижу чтобы после бегин ставили " ; " .

и смех и грех


 
MU   (2004-03-12 12:04) [26]

>>Пустой оператор посреди другого оператора?!!
 Это как?!
 на D6 компилируется без ошибок


 
Anatoly Podgoretsky ©   (2004-03-12 12:09) [27]

pasha_golub ©   (12.03.04 11:55) [23]
Ты прав, не подумал я, данный код компилируется, запускается и работает в соответствии с задуманным, Вероятнее всего автор привел не тот код, который с ошибкой.


 
MU   (2004-03-12 12:11) [28]

>> RustiK ©   (12.03.04 11:44) [18]
И где в этом unit"е 41 строка???!!!


 
RustiK ©   (2004-03-12 12:16) [29]


> Вероятнее всего автор привел не тот код, который с ошибкой.

Да не это тот код.
я попробовал создать пустую форму кинул лэйбл поставил на собитие онклик:

ShellExecute(Application.Handle, nil,"http://www.codest.com",nil, nil, SW_SHOWNORMAL);

и все заработало

но вот именно в этом проекте он у меня выдает ошибку.
хотя заметте код который приводил выше работает

procedure TForm13.Label3Click(Sender: TObject);
var
a:integer;
begin
a:=ShellAPI.ShellExecute(Application.Handle, nil,"mailto:kto-to@gte-to.ru",nil, nil, SW_SHOWNORMAL);
end;


 
MU   (2004-03-12 12:18) [30]

Видимо, код мы не увидим...


 
Anatoly Podgoretsky ©   (2004-03-12 12:18) [31]

Ты предлаегаешь найти тебе ошибку по отсутствующему коду, это к телепатам, а причину тебу указали, смотри выше, там ошибка.


 
Anatoly Podgoretsky ©   (2004-03-12 12:19) [32]

MU   (12.03.04 12:18) [30]
А оно ему надо?


 
RustiK ©   (2004-03-12 12:22) [33]

вот

unit Unit13;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, jpeg, ExtCtrls, StdCtrls, shellapi;

type
 TForm13 = class(TForm)
   Image1: TImage;
   Label2: TLabel;
   Label1: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Label5: TLabel;
   Label6: TLabel;
   Label7: TLabel;
   Button1: TButton;
   Bevel1: TBevel;
   Label8: TLabel;
   procedure Label3Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Label4Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form13: TForm13;

implementation

{$R *.dfm}

procedure TForm13.Label3Click(Sender: TObject);
begin
ShellExecute(Application.Handle, nil,"mailto:rustik@bearingpoint.tajnet.com",nil, nil, SW_SHOWNORMAL);
end;

procedure TForm13.Button1Click(Sender: TObject);
begin
Close;
end;

procedure TForm13.Label4Click(Sender: TObject);
begin
ShellExecute(Application.Handle, nil,"http://www.codest.com",nil, nil, SW_SHOWNORMAL);
end;

end.


 
MU   (2004-03-12 12:30) [34]

Project->Options->Compiler
Extended Syntax птичку поставь...


 
MU   (2004-03-12 12:34) [35]

Extended syntax  
Enables you to define a function call as a procedure and to ignore the function result. Also enables PChar support. Corresponds to {$X}.


 
RustiK ©   (2004-03-12 12:35) [36]

Ну вот наконец-то

ОООООООГРОООООООМНОЕ СПАСИБО!!!


 
pasha_golub ©   (2004-03-12 12:43) [37]

Э, погоди. Ты ж писал, что такой вариант тоже не сработал:
a:=ShellAPI.ShellExecute(Application.Handle, nil,"mailto:kto-to@gte-to.ru",nil, nil, SW_SHOWNORMAL);

Значит ты не проверял, получается?


 
MU   (2004-03-12 12:54) [38]

>> pasha_golub ©   (12.03.04 12:43) [37]
  Писал [13] :)


 
pasha_golub ©   (2004-03-12 13:05) [39]

Не, ну извините. Тут человеки пыжутся, а автор даже код не проверяет. Это я вам скажу...



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.025 c
1-1079689274
ashnurov
2004-03-19 12:41
2004.04.04
ListBox


3-1078471446
HeoGtan
2004-03-05 10:24
2004.04.04
PARADOX - через АДО...


3-1078339764
Volodya_
2004-03-03 21:49
2004.04.04
refresh adoQuery


3-1078219576
senya
2004-03-02 12:26
2004.04.04
как использовать транзакции с ADO ?


1-1079688897
Ёпрст
2004-03-19 12:34
2004.04.04
Интерактивное назначение обработчика