AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Copy(aclass)...

Ein Thema von Teekeks · begonnen am 22. Jun 2009 · letzter Beitrag vom 23. Jun 2009
Antwort Antwort
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#1

Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 16:26
Hallo!
Ich habe ein Problem.
Folgende Situation ist gegeben:
Delphi-Quellcode:
function TDatabaseConnector.CreateDatabase(Name: TDatabaseName): boolean;
var tmp:TDatabase;
begin
  result:=true;
  try
    tmp:=TDatabase.Create(Name);
  except
    result:=false;
    exit;
  end;
  _Database:=Copy(tmp);//hier tritt der Fehler auf...
  result:=SaveDatabase;
end;

// TDatabase:
  TDatabase=class
  private
  public
    constructor Create(Name:TDatabaseName);
    destructor Destroy; override;
    _Tables:TTableArray;
    _Name:TDatabaseName;
    function AddTable(Name:TTableName; Rows:TRowArray):boolean;
  end;
Der Fehler den ich kriege lautet so:
Zitat:
Wrong number of parameters specifed for call to "$fpc_shortstr_copy"
Ich nehme man an er würde denken das ich das String-Copy nehmen will, dem ist aber nicht so.
Ich will das Copy für Classen!

Weis jemand was ich falsch gemacht habe?

gruß Teekeks
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 16:28
Copy() kann nicht auf den Typ TDatabase angewendet werden. Schau dir mal die .Assign()-Methode an
Markus Kinzler
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 16:31
Aber warum nicht? bei allen anderen einfachen Klassen geht es doch auch...
Und, bitte verzei meine begrifsstuzigkeit, was soll ich da sehen? und wo ist die?

gruß Teekeks
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 16:45
Zitat von Teekeks:
Aber warum nicht? bei allen anderen einfachen Klassen geht es doch auch...
Und, bitte verzei meine begrifsstuzigkeit, was soll ich da sehen? und wo ist die?
Nein, geht nicht. Du wirst auch bei einfachen Klassen einen Fehler bekommen vom Compiler. Es gibt kein Copy für Klassen.
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 20:26
OOps stimmt!
Das waren ja Dynamische Arrays
Und wie Kopiert man sonst Klassen?
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 20:28
Zitat von Teekeks:
OOps stimmt!
Das waren ja Dynamische Arrays
Und wie Kopiert man sonst Klassen?
http://www.delphipraxis.net/internal...051475#1051475
Markus Kinzler
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 20:51
Ok.
Aber wie wende ich das an?
_Database.Assign gibt es bei mir nicht.
Ich hab hier Lazarus v0.9.26b...

Ich habe auch nichts (für mich) verständliches dazu gefunden.
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Problem mit Copy(aclass)...

  Alt 22. Jun 2009, 21:28
in deinem Fall reicht vermutlich schon
Delphi-Quellcode:
function TDatabaseConnector.CreateDatabase(Name: TDatabaseName): boolean;
var tmp:TDatabase;
begin
  try
    tmp:=TDatabase.Create(Name);
  except
    result:=false;
    exit;
  end;
  _Database:=tmp;
  result:=SaveDatabase;
end;
oder einfach nur, denn tritt im Constructor eine Exception auf, wird der Variable nix zugewiesen
Delphi-Quellcode:
function TDatabaseConnector.CreateDatabase(Name: TDatabaseName): boolean;
begin
  try
    _Database := TDatabase.Create(Name);
    result:=SaveDatabase;
  except
    result:=false;
  end;
end;
ansonsten mehr so
Delphi-Quellcode:
tmp := ...;
_Database := TDatabase.Create;
_Databate.Assigned(tmp);
tmp.Free;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Problem mit Copy(aclass)...

  Alt 23. Jun 2009, 06:45
@himitsu: try/finally, Assigned()?
  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 13:51 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