Avatar billede spectual Nybegynder
14. oktober 2001 - 14:17 Der er 11 kommentarer og
1 løsning

hvad er der galt her?

Jeg får en \"17. Record, object or class type required\" når jeg prøver at compile følgende unit:

unit cs_server;

interface

uses classes;

type

eventhandlers = class

  public

  procedure cs_getinfo_connected (Sender: TObject; Error: Word);

end;

function cs_getinfo (ipadresse : string; serverport : string) : integer;

implementation

uses
WSocket, extctrls;

var
tid : ttimer;

conn : twsocket;
in_use : boolean;

procedure free_time; // destroyer timer objektet
begin;
tid.free;
end;

procedure make_time; // Opretter timer objektet hvis det ikke er oprettet
begin;
  if assigned (tid)=false then begin;
    tid := ttimer.create (nil);
    tid.enabled := false;
  end;
end;

procedure make_conn; // Opretter connection objectet hvis det ikke er oprettet
begin;
  if assigned (conn)=false then begin;
    conn := twsocket.create (nil);
  end;
end;

// -1 = kunne ikke bruge connection objektet fordi det var i brug
// -2 = kunne ikke forbinde med serveren

procedure eventhandlers.cs_getinfo_connected (Sender: TObject; Error: Word);
begin;
end;

function cs_getinfo (ipadresse : string; serverport : string) : integer;
begin;
if (in_use) then begin;result:=-1;exit;end;

//conn.OnSessionConnected := cs_getinfo_connected;

in_use := true;

with conn do begin;
proto := \'udp\';
port := serverport;
addr := ipadresse;

try
connect;
except
result:=-2;in_use:=false;exit;
end;

end;

begin;
in_use := false;
make_time;
make_conn;
end.
Avatar billede dkn Nybegynder
14. oktober 2001 - 14:22 #1
type

eventhandlers = class

end;


Kunne være det
Avatar billede dkn Nybegynder
14. oktober 2001 - 14:22 #2
ups nej glem det
Avatar billede dkn Nybegynder
14. oktober 2001 - 14:26 #3
unit cs_server;

interface

uses classes, WSocket, extctrls;

type
eventhandlers = class
  public
  procedure cs_getinfo_connected (Sender: TObject; Error: Word);
  function cs_getinfo (ipadresse : string; serverport : string) : integer;
end;

implementation

var
tid : ttimer;

conn : twsocket;
in_use : boolean;

procedure free_time; // destroyer timer objektet
begin;
tid.free;
end;

procedure make_time; // Opretter timer objektet hvis det ikke er oprettet
begin;
  if assigned (tid)=false then begin;
    tid := ttimer.create (nil);
    tid.enabled := false;
  end;
end;

procedure make_conn; // Opretter connection objectet hvis det ikke er oprettet
begin;
  if assigned (conn)=false then begin;
    conn := twsocket.create (nil);
  end;
end;

// -1 = kunne ikke bruge connection objektet fordi det var i brug
// -2 = kunne ikke forbinde med serveren

procedure eventhandlers.cs_getinfo_connected (Sender: TObject; Error: Word);
begin;
end;

function cs_getinfo (ipadresse : string; serverport : string) : integer;
begin;
if (in_use) then begin;result:=-1;exit;end;

//conn.OnSessionConnected := cs_getinfo_connected;

in_use := true;

with conn do begin;
proto := \'udp\';
port := serverport;
addr := ipadresse;

try
connect;
except
result:=-2;in_use:=false;exit;
end;

end;

begin;
in_use := false;
make_time;
make_conn;
end.


Man har jo ikke nogen chance for at teste om det virker, så det er op til dig at prøve.
Når du compiler, siger den slet ikke noget??
Avatar billede spectual Nybegynder
14. oktober 2001 - 14:27 #4
hov . sorry
Avatar billede dkn Nybegynder
14. oktober 2001 - 14:28 #5
?
Avatar billede spectual Nybegynder
14. oktober 2001 - 14:29 #6
den siger bare det samme = \"Record, object or class type required\" - og så peger den helt i bunden af programmet
Avatar billede spectual Nybegynder
14. oktober 2001 - 14:31 #7
jeg kom bare til at afvise dit svar lidt for tidligt
Avatar billede dkn Nybegynder
14. oktober 2001 - 14:31 #8
hvorfor har du valgt ikke at have nogen form i programmet?
Avatar billede spectual Nybegynder
14. oktober 2001 - 14:34 #9
det har jeg også til min test-applikation - men jeg skal bruge unit\'et i en anden samhæng.
Avatar billede snowball Novice
14. oktober 2001 - 15:41 #10
Nu har jeg kun lige hurtigt kigget på den, men mangler du ikke en end; nede i bunden !? Altså det den sidste funktion bli\'r til:

function cs_getinfo (ipadresse : string; serverport : string) : integer;
begin;
if (in_use) then begin;result:=-1;exit;end;

//conn.OnSessionConnected := cs_getinfo_connected;

in_use := true;

with conn do begin;
proto := \'udp\';
port := serverport;
addr := ipadresse;

try
connect;
except
result:=-2;in_use:=false;exit;
end;

end;

begin;
in_use := false;
make_time;
make_conn;
end; //<----Den her !?
end.

Snowball
Avatar billede spectual Nybegynder
14. oktober 2001 - 16:35 #11
det er rigtigt der mangler en end men ikke der hvor du siger.

function cs_getinfo (ipadresse : string; serverport : string) : integer;
begin;
if (in_use) then begin;result:=-1;exit;end;

//conn.OnSessionConnected := cs_getinfo_connected;

in_use := true;

with conn do begin;
proto := \'udp\';
port := serverport;
addr := ipadresse;

try
connect;
except
result:=-2;in_use:=false;exit;
end;

end;

end; //<----Nej her! :-)

begin;
in_use := false;
make_time;
make_conn;
end.
Avatar billede martinlind Nybegynder
14. oktober 2001 - 17:45 #12
spectual>> Et godt råd

Lav en ordenlig structur på dinne begin end, så er der MEGET nemere at finde en manglende end

begin
  begin
      begin
      end;
  end;
end;

og husk indryk det gør at du kan se det med det samme
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester