Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Shellexecute will nicht....


0nk3lz - Mi 08.04.09 21:28
Titel: Shellexecute will nicht....
Ich versuche eine Internetseite über einen Button aufzurufen...
Aber wenn ich den Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
uses {...,}shellapi;

{...}
procedure TForm1.Label1Click(Sender: TObject);
begin
if shellexecute(handle,'open','http://www.delphi-forum.de',nil,nil,sw_show)<=32
then showmessage('Internetseite konnte nicht geöffnet werden!');
end;

...eingebe, kommt nur folgendes:

[Fehler] Unit1.pas(73): Anweisung erwartet, aber 'USES' gefunden
[Fehler] Unit1.pas(73): Undefinierter Bezeichner: 'shellapi'
[Fehler] Unit1.pas(76): Anweisung erwartet, aber 'PROCEDURE' gefunden
[Fehler] Unit1.pas(76): Undefinierter Bezeichner: 'Label1Click'
[Fehler] Unit1.pas(76): ';' erwartet, aber '(' gefunden
[Fehler] Unit1.pas(78): Undefinierter Bezeichner: 'shellexecute'
[Fehler] Unit1.pas(78): Undefinierter Bezeichner: 'handle'
[Warnung] Unit1.pas(79): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
[Fataler Fehler] Project1.dpr(5): Verwendete Unit '..\Unit1.pas' kann nicht compiliert werden


Ich bin schon am verzweifeln... Was soll ich tun??

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Internet / Netzwerk verschoben am Do 09.04.2009 um 00:00


Andreas L. - Mi 08.04.09 21:30

Komma in der Uses-Klausel vergessen oder falsch gesetzt? Poste mal die komplette USES.


Xentar - Mi 08.04.09 21:31

Zitat:
[Fehler] Unit1.pas(73): Anweisung erwartet, aber 'USES' gefunden

Tja.. dann hast du das Uses wohl an der falschen Stelle stehen.
Post mal, was davor steht.


jaenicke - Mi 08.04.09 21:33

Hallo und :welcome: im Forum!

Schau mal oben in dem Quelltext, da wird irgendwo bereits stehen "uses ...", füge ShellAPI dort einfach hinzu.


0nk3lz - Mi 08.04.09 21:34

Das is jetz der komplette Quellcode:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn11: TBitBtn;
    BitBtn12: TBitBtn;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    BitBtn13: TBitBtn;
    BitBtn14: TBitBtn;
    StaticText6: TStaticText;
    StaticText7: TStaticText;
    BitBtn15: TBitBtn;
    BitBtn16: TBitBtn;
    BitBtn17: TBitBtn;
    BitBtn18: TBitBtn;
    BitBtn19: TBitBtn;
    StaticText9: TStaticText;
    BitBtn20: TBitBtn;
    BitBtn21: TBitBtn;
    BitBtn22: TBitBtn;
    StaticText10: TStaticText;
    StaticText5: TStaticText;
    StaticText8: TStaticText;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  Close();
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    MessageBox(0'Test''Test', MB_OK or MB_ICONINFORMATION);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
uses {...,}shellapi;

{...}
procedure TForm1.Label1Click(Sender: TObject);
begin
if shellexecute(handle,'open','http://www.delphi-forum.de',nil,nil,sw_show)<=32
then showmessage('Internetseite konnte nicht geöffnet werden!');
end;

end.


user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Hallo und :welcome: im Forum!

Schau mal oben in dem Quelltext, da wird irgendwo bereits stehen "uses ...", füge ShellAPI dort einfach hinzu.


Hab ich gerade... Macht er aber auch nicht...

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt


Xentar - Mi 08.04.09 21:37

Ähm.. ja. Wir setzen das uses einfach mal irgendwohin, und hoffen, dass Delphi damit klar kommt?

Ne.. pack die Unit ShellAPI ganz oben mit rein, da gibt es schon eine Uses (Zeile 6 und 7).

Zitat:
Hab ich gerade... Macht er aber auch nicht...
Du musst das "andere" natürlich dann auch rausnehmen. Wenn immer noch nicht geht -> nochmal zeigen.


0nk3lz - Mi 08.04.09 21:46

Will immernoch nicht...^^


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
nit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons; ShellAPI;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn11: TBitBtn;
    BitBtn12: TBitBtn;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    StaticText5: TStaticText;
    BitBtn13: TBitBtn;
    BitBtn14: TBitBtn;
    StaticText6: TStaticText;
    StaticText7: TStaticText;
    BitBtn15: TBitBtn;
    BitBtn16: TBitBtn;
    BitBtn17: TBitBtn;
    BitBtn18: TBitBtn;
    BitBtn19: TBitBtn;
    StaticText8: TStaticText;
    StaticText9: TStaticText;
    BitBtn20: TBitBtn;
    BitBtn21: TBitBtn;
    BitBtn22: TBitBtn;
    StaticText10: TStaticText;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  Close();
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    MessageBox(0'Test''Test', MB_OK or MB_ICONINFORMATION);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
     if shellexecute(handle,'open','http://www.delphi-forum.de',nil,nil,sw_show)<=32
     then showmessage('Internetseite konnte nicht geöffnet werden!');
end;

end.


Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt


Xentar - Mi 08.04.09 21:48

Maaa..
vergleich mal bitte die vorherigen units, mit der die, wie du sie hinzugefügt hast..

ich machs mal einfach:

Delphi-Quelltext
1:
2:
uses
  .... StdCtrls, Buttons; ShellAPI;

na, fällt was auf?


0nk3lz - Mi 08.04.09 21:52

Jaa, immer diese Fehler(chen)...
Aaaber er meckert weiter :(

[Fehler] Unit1.pas(8): Bezeichner erwartet, aber 'TYPE' gefunden


jaenicke - Mi 08.04.09 21:54

Und wie sehen die Zeilen jetzt aus? :roll:


Xentar - Mi 08.04.09 21:54

Lass mich raten, du hast nun beide ; durch Kommas ersetzt?
Hinter der letzten Unit kann das ; ruhig bleiben.

Hat ma bitte jemand den Link zu dem Einsteiger Tutorial? ;)


0nk3lz - Mi 08.04.09 21:55

Problem gelöst! :)
Ja ich hab mich schon länger nicht mehr mit damit beschäftigt und bin auch nich so drauf heute ;)
Danke für eure Hilfen! Ich hör nu ma auf euch zu nerven ;)


jaenicke - Mi 08.04.09 21:57

Einen sehr guten Crashkurs findest du hier:
http://crashkurs.christian-stelzmann.de
und die neue Version speziell ab Turbo Delphi:
http://www.christian-stelzmann.de/index_tutorials_crashkurs_reloaded.html


0nk3lz - Mi 08.04.09 21:59

Ich werd nochmal reingucken, danke ;)