Results 1 to 9 of 9

Thread: assign object geeft foutmelding

  1. #1

    assign object geeft foutmelding

    Hallo ik heb de volgende situatie

    Ik heb een object (TRep = class Tobject) met daarin een lijst van objecten (Tuploader = class(TPersistent).
    Daarnaast heb ik een formulier welke ook 1 object van het type Tuploader heeft.
    Nu wil ik vanuit mijn hoofdformulier 1 van de 1 van de Tupload objecten toekennen aan het Tupload object van het formulier.
    Op het formulier kunnen allerlei parameters van het object worden aangepast.

    bij Save moet alle informatie van het tijdelijke component weer terug gekopieerd worden
    Bij cancel gebeurd er niks

    Echter ik krijg de volgende foutmelden wanneer ik de volgende code uitvoer (dus compilen gaat wel goed)
    Code:
     tempUploader:=TUploader.Create;
     tempUploader.Assign(Reparatie.Analyse.AnalyseItems[0].Fotos);
    First chance exception at $769FC6F2. Exception class EConvertError with message 'Cannot assign a TUploader to a TUploader'. Process ARGUS.exe (5620)

    Kan iemand zien wat ik fout doe.

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    De assign method van TUploader debuggen? Uit de source code die je post kan je verder niks afleiden

  3. #3
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Is er wel een Assign() - overridden - method?

  4. #4
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Of assignto. Ik neem aan van wel. Converterror is niet de logische exceptie als dat niet zo is. Maar hoe dan ook moet je in tuploader (of diens ancestors) zijn, dit lijkt me geen VCL melding.

  5. #5
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Cannot assign a TUploader to a TUploader is de typische foutmelding als er geen dedicated Assign() of inderdaad AssignTo() is

  6. #6
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Quote Originally Posted by EricLang View Post
    als er geen dedicated Assign() of inderdaad AssignTo() is
    Precies, maar je kunt zo'n melding ook verwachten als je een type tweemaal declareert in verschillende units.
    Maar ik verwacht eerder dat Assign of AssignTo niet overriden is door TS.
    TMemoryLeak.Create(Nil);

  7. #7
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Dan zit ik fout. Ik herkende de foutmelding niet (of is die veranderd na D7? Ik gebruik in mijn huidige baan maar weinig tcomponent afgeleiden)

  8. #8
    Assign roept in de standaard implementatie AssignTo aan. Die geeft standaard deze fout. Je moet dus Assign of AssignTo overriden. Er is geen magische standaard-toekenning die properties gaat koppelen.
    En net zo belangrijk: je mag alleen inherited aanroepen als je de assignment niet kan doen, anders zal alsnog dit standaard-gedrag getriggerd worden, en krijg je dus alsnog de foutmelding voor of na de daadwerkelijke toekenning.
    1+1=b

  9. #9
    Was iid het feit dat ik geen dedicated assign functie had.
    Ben nu dus druk bezig met het schrijven van de assign functie

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •