Seite 1 von 1

Structure als Prozedurparameter

Verfasst: 05.10.2014 18:56
von ProgOldie
Sorry, wenn ich das Thema noch einmal aufgreife, aber ich kapier die Anwendung einfach nicht.

Code: Alles auswählen

Structure webcam
  Name.s       ; The description of Webcam
  URL.s       ; URL of webcam
  country.s   ; country where webcam stands
  position.s  ; city or location of webcam
  lastModify.s;Datum der letzten Aktualisierung
EndStructure
 
Dim cam.webcam(10)
cam(1)\Name = "Krankenhaus Bahlingen"
cam(1)\URL = "http://webcam.zollernalbkreis.de/kkhbl1.jpg"
Nun will ich z.B. die Structure cam(1) an eine Prozedur showWebcam() übergeben, wo auf alle Daten der Structure zugegriffen werden soll.
Dazu definiere ich mir eine Variable act_cam vom Typ webcam.

Code: Alles auswählen

Define act_cam.webcam
*act_cam=@cam(1)
Das klappt schon einmal nicht.
Wenn act_cam richtig cam(1) zugewiesen wäre, wie lautet dann der Prozedurkopf?

Code: Alles auswählen

procedure showWebcam( ????)

Re: Structure als Prozedurparameter

Verfasst: 05.10.2014 19:20
von ts-soft

Code: Alles auswählen

EnableExplicit

Structure webcam
  Name.s       ; The description of Webcam
  URL.s       ; URL of webcam
  country.s   ; country where webcam stands
  position.s  ; city or location of webcam
  lastModify.s;Datum der letzten Aktualisierung
EndStructure

Procedure ShowWebcam(Array act_cam.webcam(1)); 1 steht für eine Dimension!
  Debug act_cam(1)\Name
  Debug act_cam(1)\URL
  Debug act_cam(2)\Name
  Debug act_cam(2)\URL
EndProcedure

Dim cam.webcam(10)
cam(1)\Name = "Krankenhaus Bahlingen"
cam(1)\URL = "http://webcam.zollernalbkreis.de/kkhbl1.jpg"
cam(2)\Name = "Krankenhaus Barmbek"
cam(2)\URL = "http://webcam.hamburg-barmbek.de"

ShowWebcam(cam.webcam())
Und wenn nur eine Camera übergeben werden soll:

Code: Alles auswählen

EnableExplicit

Structure webcam
  Name.s       ; The description of Webcam
  URL.s       ; URL of webcam
  country.s   ; country where webcam stands
  position.s  ; city or location of webcam
  lastModify.s;Datum der letzten Aktualisierung
EndStructure

Procedure ShowWebcam(*act_cam.webcam); 1 steht für Camera 1!
  Debug *act_cam\Name
  Debug *act_cam\URL
EndProcedure

Dim cam.webcam(10)
cam(1)\Name = "Krankenhaus Bahlingen"
cam(1)\URL = "http://webcam.zollernalbkreis.de/kkhbl1.jpg"

ShowWebcam(@cam.webcam(1))

Re: Structure als Prozedurparameter

Verfasst: 05.10.2014 19:58
von ProgOldie
Hab' die zweite Version mit einer übergebenen Camera genommen. Klappt prima!
Danke

Re: Structure als Prozedurparameter

Verfasst: 05.10.2014 20:08
von ts-soft
Du hattest ja bei:

Code: Alles auswählen

Define act_cam.webcam
*act_cam=@cam(1)
nur das * vergessen:

Code: Alles auswählen

Define *act_cam.webcam
*act_cam=@cam(1)
und das wäre eigentlich bei EnableExplicit aufgefallen :wink:

Gruß
Thomas