AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Aufbau einer Funktion für mehrere Anwendungsmöglichkeiten
Thema durchsuchen
Ansicht
Themen-Optionen

Aufbau einer Funktion für mehrere Anwendungsmöglichkeiten

Ein Thema von schwa226 · begonnen am 10. Mär 2011 · letzter Beitrag vom 10. Mär 2011
 
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#1

Aufbau einer Funktion für mehrere Anwendungsmöglichkeiten

  Alt 10. Mär 2011, 08:27
Klingt etwas komisch, weiß aber nicht wie ich es besser ausdrücken soll

Ich brauche eine Funktion die das kann:
1. Senden eines Commands (Array[0..4] of Byte)
2. Senden eines Commands (Array[0..4] of Byte) und senden von Data (Array of Byte)
3. Senden eines Commands (Array[0..4] of Byte) und empfangen von Data (Array of Byte)

Ich möchte es Typenlos machen um Arrays of Byte oder TBytes oder PByteArrays übergeben zu können.

Mein Ansatz ist zuerst einmal dieser gewesen:
function SendCommand(const Command; var Data) : Boolean; Dies deckt einmal Variante 2. ab.
Bei Variante 1. scheitere ich nun da ich trotzdem einen Parameter für Data übergeben muss.

Ein Overload geht ja auch so nicht, da Variante 2 & 3 dann nicht auseinander gehalten werden kann.
Der Kompiler meckert auch bei:
Delphi-Quellcode:
      function SendCommand(const Command; const Data) : Boolean; Overload;
      function SendCommand(const Command; var Data) : Boolean; Overload;
Auch ein Aufruf von SendCommand(CMD[0], nil); geht nicht, da nil nicht als var Parameter übergeben werden kann.

Oder sollen Typenlose Parameter generell vermieden werden?
Dazu müsste ich mich halt auf einen Type festlegen. Hier wär das PByteArray wohl am besten.

Dann könnte es so aussehen:
Delphi-Quellcode:
      function SendCommand(
            const Command : PByteArray;
            const InData : PByteArray = nil;
            var OutData : PByteArray = nil
            ) : Boolean;
Geht nicht weil nil nicht als var übergeben werden kann!
Muss ich bei einem PByteArray überhaupt den Parameter als var übergeben?
Ich ändere ja eigentlich nicht den Pointer des Arrays sondern dessen Inhalt.

Also so: ?
Delphi-Quellcode:
      function SendCommand(
            const Command : PByteArray;
            const InData : PByteArray = nil;
            const OutData : PByteArray = nil
            ) : Boolean;
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
 


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 18:00 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