AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

function mit zwei Rückgabewerten?

Ein Thema von Hansi · begonnen am 24. Aug 2006 · letzter Beitrag vom 24. Aug 2006
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 13:50
Wie bitte? Du willst tatsächlich alles in einen String speichern? Du weißt schon, dass das unglaublich ineffezient ist? Erstmal muss Speicher für den String reserviert werden, dann wird der alte String in den neuen kopiert, dann wird der Wert (Integer, Float, wasweißich) nach String gecastet und in den String reingespeichert und beim auslesen das ganze nochmal umgekehrt und zusätzlich Schleifengefummel mit pos.

Das ist eine absolut unsaubere und langsame Methode. Benutze records oder vars, wobei ich eher zu records tendiere.

Wenn du eine Variable nicht ändern willst, dann deklariere den Parameter einfach ohne var. Oder, falls du var brauchst, deklariere dir eine Hilfsvariable, in die du den Wert speicherst.

Edit: @JasonDX: Das Wort ist "noobig".
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#22

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 15:07
Zitat von ---Bernhard---:
Du musst 'result' verwenden:
Man sollte Result verwenden. Es ist auch möglich den Namen der Funktion zu verwenden.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#23

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 15:57
Zitat von Garfield:
Zitat von ---Bernhard---:
Du musst 'result' verwenden:
Man sollte Result verwenden. Es ist auch möglich den Namen der Funktion zu verwenden.
...was zu Pascal-Zeiten die einzige Möglichkeit war
Hatte das weiter oben aus Zeitmangel bisschen falsch gehabt...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#24

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 16:17
/ganz schön offtopic inzwischen

Zitat von JasonDX:
Nee, ganz sicher nicht. with ist mehr eine Hilfe beim programmieren,
Meiner Meinung nach ist with eine Hilfe für schreibfaule Programmierer.
es ist kontraproduktiv, wenn ich erst schauen muss, zu welchem with die Variable jetzt gehört. Und ganz toll wird es bei verschachtelten with.

Und hast Du mal mit D7 debuggen müssen, wenn im Code einige with drin sind?
Der Debugger kann das dann nämlich nicht auflösen und zeigt beim drüberfahren keinen Wert für die Variable an.

Delphi-Quellcode:
with taMeineTabelle do
begin
  ...hier sind 20 Zeilen Code...
  Database := MeineDatenbank;
  TableName := MeineTabelle;
  Open;
  FieldByName ('MeinFeld').AsString := MeinString;
  ...hier ist nochmehr Code...
end;
ist das vielleicht übersichtlich?
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#25

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 16:28
Zitat von RavenIV:
Zitat von JasonDX:
Nee, ganz sicher nicht. with ist mehr eine Hilfe beim programmieren,
Meiner Meinung nach ist with eine Hilfe für schreibfaule Programmierer.
es ist kontraproduktiv, wenn ich erst schauen muss, zu welchem with die Variable jetzt gehört. Und ganz toll wird es bei verschachtelten with.
Klar, ich kann jedes Konstrukt so verwenden, dass ich den Code anschliessend nicht mehr lesen kann, aber fuer mich ist bspw. ein
Delphi-Quellcode:
with MyContactlist.GetPerson('') do
begin
  FirstName := '';
  SurName := '';
  Address := '';
  Age := 0;
  //...
end;
weitaus uebersichtlicher als das:
Delphi-Quellcode:
MyContactlist.GetPerson('').FirstName := '';
MyContactlist.GetPerson('').SurName := '';
MyContactlist.GetPerson('').Address := '';
MyContactlist.GetPerson('').Age := 0;//...
Wie immer geht es also darum, wann, wo und wie ich das ganze verwende, und bei welcher Anwendung die Vorteile ueberwiegen.

Um das nicht als Pure-OT-Post dastehn zu lassen:

IMO sind Delphi-Referenz durchsuchenvar/Delphi-Referenz durchsuchenout die beste Moeglichkeit, solangs nicht zu viele Parameter werden. Bei 2 gehts eigentlich noch ziemlich gut, aber wenn mehrere Rueckgabeparameter gebraucht werden, sollte ein Record verwendet werden. (Ob dies dann ueber CallByReference oder Rueckgabewert erledigt wird, bleibt dem Programmierer ueberlassen )

greetz
Mike

PS: Gibts auch Programmierer, die nicht schreibfaul sind?
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#26

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 16:39
Zitat von JasonDX:
weitaus uebersichtlicher als das:
Delphi-Quellcode:
MyContactlist.GetPerson('').FirstName := '';
MyContactlist.GetPerson('').SurName := '';
MyContactlist.GetPerson('').Address := '';
MyContactlist.GetPerson('').Age := 0;//...
nicht nur das ... ohne WITH wird auch MyContactlist.GetPerson('') mehrmals aufgerufen .... in deinem Beispiel nur einmal mit WITH und 4-mal ohne
$2B or not $2B
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#27

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 17:11
Zitat von himitsu:
Zitat von JasonDX:
weitaus uebersichtlicher als das:
Delphi-Quellcode:
MyContactlist.GetPerson('').FirstName := '';
MyContactlist.GetPerson('').SurName := '';
MyContactlist.GetPerson('').Address := '';
MyContactlist.GetPerson('').Age := 0;//...
nicht nur das ... ohne WITH wird auch MyContactlist.GetPerson('') mehrmals aufgerufen .... in deinem Beispiel nur einmal mit WITH und 4-mal ohne
Deshalb mag ich das hier:
Delphi-Quellcode:
with person := MyContactlist.GetPerson('') do
begin
  person.FirstName := 'blabla'
  person.BlaBla...
end;
Da Nick Hodges jetzt der Delphi PM ist könnte sowas oder etwas ähnliches bald Einzug in Delphi finden.[1]
Er hasst with wahrscheinlich sogar noch mehr als ich und bereits ich bekomme davon allergischen Ausschlag...

[1]Wobei sie es ähnlich wie die Delphi.Net Generics, die ich bis jetzt gesehen habe absichtlich nicht wie in Chrome aussehen lassen werden.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 04:16 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