AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi wie erstelle ich eine function mit aufruf & deklaration
Thema durchsuchen
Ansicht
Themen-Optionen

wie erstelle ich eine function mit aufruf & deklaration

Ein Thema von sneumann · begonnen am 11. Okt 2011 · letzter Beitrag vom 11. Okt 2011
Antwort Antwort
sneumann
(Gast)

n/a Beiträge
 
#1

wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 08:41
wie packe ich jetzt diese Anweisungen in eine Funktion die ich jederzeit aufrufen kann? + aufruf und deklaration?!

muss ich einfach davor schreiben zum deklarieren? Das packe ich dann oben zu public bzw private?!
und dann irgendwo im programm mit Connecten(); aufrufen?!

Delphi-Quellcode:
function Connecten()

begin
SerialPortNG1.SendString('0000sr' +#$05);
  if WaitForAnswer(100) < 0 then
    begin
      memoResult.Lines.Add('Error: No Answer on 4422');
      Exit;
    end;
  pbProgress.StepIt;
    if Ord(SerialPortNG1.ReadNextClusterAsString[1]) = 6 then // Wenn Antwort =6 dann ist OKAY
    memoResult.Lines.Add('Connect erfolgreich')
    else
   memoResult.Lines.Add('Answer : '+IntToHex(Ord(SerialPortNG1.ReadNextClusterAsString[1]),2));
end;

{wenn Antwort nicht 06(ACKNOWLEDGE) dann zeige mir andere Antwort. Kann ich hier auch die komplette Antwort als String ausgeben?!? anstatt in Hex umwandeln?!}

Geändert von sneumann (11. Okt 2011 um 09:01 Uhr) Grund: Delphi Tags ersetzt, das ist kein Delphi. jetzt ist es doch wieder Delphi. Entscheide dich bitte.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 08:46
Guck dir bitte mal ein Grundlagentutorial an, da sollte das erklärt werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 08:48
Bevor Du an der Hardware herumhantierst solltest Du Dich wohl besser zunächst mit den Grundlagen beschäftigen.
http://www.delphi-treff.de/tutorials/grundlagen/
http://www.delphi-treff.de/downloads/e-book/
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.490 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 09:17
Ich schlage Dir auch vor, Dich erst mal mit den Sprachgrundlagen auseinanderzusetzen. Zunächst einmal braucht eine Function einen Rückgabewert:
function Connecten : string; Dieser wird mittels result gesetzt.

Delphi-Quellcode:
function Hallo : string;
begin
   result := 'Hallo';
end;
Die Implementierung erfolgt im Implementation Abschnitt. Damit die Funktion aufrufbar wird, muss sie entweder in der gleichen Sourcedatei oberhalb der aufrufenden Funktion stehen oder deklariert (Funktionskopf) werden. Soll eine Funktion aus einer anderen Sourcecodedatei verwendet werden, muss deren Deklaration im Interface Abschnitt der sie enthaltenen Sourcecode Datei erfolgen.

Die Sourcecode Datei mit der Funktion muss oberhalb des ersten Aufrufes mit der uses Klausel eingebunden werden.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 09:30
Zitat:
Zunächst einmal braucht eine Function einen Rückgabewert:
Logisch!

Nur das ist keine function sondern eine procedure da hier nichts zurückgegeben wird.

gruss
  Mit Zitat antworten Zitat
sneumann
(Gast)

n/a Beiträge
 
#6

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 11:34
Zitat:
Zunächst einmal braucht eine Function einen Rückgabewert:
Logisch!

Nur das ist keine function sondern eine procedure da hier nichts zurückgegeben wird.

gruss
okay habe ein paar andere prozeduren jetzt schon hinbekommen danke!
was mache ich jedoch bei dieser Prozedur falsch? Er zeigt mir an inkompatible Typen String und Integer
Ich will einen Temperaturwert aus einem Gerät lesen.
temp soll die Temperatur sein, die ich als Zahl dann sozusagen zurück bekomme...am Besten ja Float eigentlich?!

Delphi-Quellcode:
      // --------------------Messwert auslesen----------------------------
   function messwertLesen : integer;
      var temp: integer;
      begin
        temp := StrToInt(SerialPortNG1.ReadNextClusterAsString);
        SerialPortNG1.SendString(#$02 + ':FETC' +#$0A +#$03);
      if WaitForAnswer(100) < 0 then
          memoResult.Lines.Add('Error: No Answer on 4422')
        else
          memoResult.Lines.Add('Messwert : ' + IntToStr(temp));
          result := IntToStr(temp);
      end;

rufe die funktion folgendermaßen auf:
messwertLesen;
EDIT:
kennt jemand SerialNG? was steht denn eigentlich hinter dem ReadNextCluster? Er liest bei mir glaub ich die Antwort vom Gerät ab aber als String?! als Integer?? bzw was macht die Funktion genau und was steckt drin?!
Will die Antwort als Float wieder geben zum Beispiel: 25.5 Grad Celius halt. Wie finde ich jetzt heraus ob er mir überhaupt so eine Zahl liefert oder etwas ganz anderes? Mit dem Befehl Fetc? lese ich den Messwert des Geräts aus laut meines Handbuchs..

Geändert von sneumann (11. Okt 2011 um 11:43 Uhr)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#7

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 11:44
Von GRUNDLAGENKENNTNISSEN bist Du weit entfernt!

Willst Du die GRUNDLAGENKENNTNISSE wirklich hier im "Trial and Error"-Verfahren erwerben?

- Du wirfst Funktionen und Prozeduren wild durcheinander
- einen String kannst Du nicht einer Integer-Variablen zuordnen
- wenn Du eine Funktion aufrufst, musst Du auch das Ergebnis zuordnen
- das letzte IntToStr(temp) ist auch falsch

Geändert von hathor (11. Okt 2011 um 11:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.490 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 11:45
Delphi-Quellcode:
function messwertLesen : double;
begin
  // Wie sehen die Stringdaten genau aus?
  result := StrToFloat(SerialPortNG1.ReadNextClusterAsString);
  SerialPortNG1.SendString(#$02 + ':FETC' +#$0A +#$03);
  if WaitForAnswer(100) < 0 then
     memoResult.Lines.Add('Error: No Answer on 4422')
  else
     memoResult.Lines.Add(Format('Messwert : %f', [result]));
end;
Aber die ursprüngliche Logik sieht mir schon seltsam aus. Das Senden von FETCH sollte ja wahrscheinlich einen Messwert anfordern, der muss erst noch empfangen werden. Mach Dir mal ein Ablaufdiagramm, das setzt Du in Kommentare um und dann schreibst Du den Source dazu.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 11:47
Ist müßig, auf Grundlagenkenntnisse hinzuweisen. Denn diese Hinweise ignoriert er schon seit Tagen. Auch im DF sind ihm mehrfach die allseits bekannten Grundlagentutorials ans Herz gelegt worden. Zeitverschwendung.
Jens
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#10

AW: wie erstelle ich eine function mit aufruf & deklaration

  Alt 11. Okt 2011, 12:03
Diese Funktionen in #6 und #8 werden wahrscheinlich nicht funktionieren:

- erst muss man die Daten anfordern
- warten
- dann muss man sie auf Plausibilität prüfen (z.B. Stringlänge, welche Zeichen dürfen enthalten sein, wenn negativ: neu anfordern
- dann evtl. umwandeln in ein anderes Format
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz