AGB  ·  Datenschutz  ·  Impressum  







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

Array einer Klasse (TRemotable) an procedure geben

Ein Thema von Joerginger · begonnen am 28. Okt 2013 · letzter Beitrag vom 28. Okt 2013
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.008 Beiträge
 
Delphi 12 Athens
 
#1

AW: Array einer Klasse (TRemotable) an procedure geben

  Alt 28. Okt 2013, 10:19
[DCC Fehler] OXBWOXID.pas(203): E2010 Inkompatible Typen: 'TRemArr' und 'Articles'
[DCC Fehler] OXBWOXID.pas(204): E2010 Inkompatible Typen: 'TRemArr' und 'Updates'
Dann sind Articles und Updates nicht als TRemArr deklariert.

Da der Programmierstil von Dir so schön ist frag ich mal zwischendurch:
Code:
  setLength(Array,0);

  // ist gleichzusetzen mit

  Array := nil;
Auf nil setzen ist schneller, da das gleich in einen Aufruf zum Löschen der Inhalte des Arrays kompiliert werden kann, während bei SetLength erst geprüft werden muss welche Elemente gelöscht werden usw.

Und - nicht ganz unwesentlich zum Verständnis... Warum rufst Du nicht .Destroy sondern
Code:
  Array[i].Free;
auf??
Free prüft vorher, ob der Zeiger nil ist. Das steht auch in der Hilfe:
Zitat:
Rufen Sie Destroy nicht direkt auf. Verwenden Sie stattdessen Free. Die Methode Free überprüft, ob die Objekt-Referenz nicht bereits nil ist und ruft Destroy nur bei Bedarf auf.
http://docwiki.embarcadero.com/Libra...Object.Destroy
Zudem könnte sich dort auch etwas in neueren Delphiversionen ändern (ARC beim Entwickeln für Android mit Delphi ist ein Beispiel), so dass es keinen Sinn macht Destroy direkt aufzurufen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Array einer Klasse (TRemotable) an procedure geben

  Alt 28. Okt 2013, 10:58
Danke, grad wieder Einiges gelernt (Free und so...)...

Zum Hauptthema:
Code:
  Article = class(TRemotable) //Article wird von TRemotalbe abgeleitet
  private
    FOXID: TXSString;
    FOXSHOPID: TXSString;
genauso siehts mit Update, Order, User etc. aus. Immer Ableitungen von TRemotalbe...

und später dann kömmt (da ja ein einzelner Artikel nicht sehr sinnvoll hochzuladen ist
Code:
    Articles  = array of Article;
alternativ dazu werden dann eben Updates = array of Update und so weiter...

Meine Befürchtung ist natürlich jetzt, dass ich so ein Array (weil ja immer unterschiedlich) nicht wirklich übergeben kann?

Greetz, Erwin J.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.663 Beiträge
 
Delphi 12 Athens
 
#3

AW: Array einer Klasse (TRemotable) an procedure geben

  Alt 28. Okt 2013, 11:06
Die Befürchtung trifft zu, das sind für Delphi unterschiedliche Typen. Wie schon gesagt wäre die Lösung, den selbstdefinierten Typ TRemotableArray zu verwenden, nur ist das ggf. mit div. Typecasts verbunden.
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
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Array einer Klasse (TRemotable) an procedure geben

  Alt 28. Okt 2013, 11:15
Danke, kapiert...

Ich fühl mich nur immer so blöde dabei, wenn ich 20 Routinen quasi kopieren muss (und darin nur eine Variable ändere), statt eine Routine zu pflegen die eben die Variable als Parameter bekommt

Nach mittlerweile 2 großen Umstellungen in dem Sumpf (und auch deshalb, weil das WebSeitige Modul sich immer wieder noch ändern kann und ich nicht jedesmal das von Delphi erzeugte Service nachbearbeiten will ) enscheide ich mich für die Lösung der 20 Einzelmodule...

Greetz, Erwin J.
  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 15:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz