Avatar billede jhald Nybegynder
29. oktober 2002 - 11:50 Der er 2 kommentarer og
2 løsninger

abstract...

Jeg skal lige bruge lidt viden vedr. is og as i delphi med abstrakte klasser..

jeg har 3 klasser, TDeltager, THold og TPerson - hvor TDeltager er abstrakt.

Et THold indeholder en eller flere TPersoner i array eller lign.

I et andet objekt skal jeg så  have mulighed for at arbejde med en deltager, uanset om der ligger et hold eller en person bagved.

Jeg forstiller mig at det er noget lign. det nedenfor, men har endnu ikke fået det til at virke. Nogle der kan fortælle mig hvordan det virker, for jeg har nok taget fejl et eller andet sted.

(Det skal lige nævnes at Deltager så er kommet med ind i proceduren, værende enten en person eller et hold)

var
Deltager : TDeltager;
begin
*arbejd med (en eller flere Deltager) f.eks. fordele  disse i puljer eller turneringen*
if (Deltager is THold) then
begin
*arbejd med (Deltager as THold)*
end
else
begin
*arbejd med (Deltager as TPerson)*
end;
end;
Avatar billede diz Nybegynder
29. oktober 2002 - 11:55 #1
var
  Deltager : TDeltager;
begin
  //arbejd med (en eller flere Deltager) f.eks. fordele  disse i puljer eller turneringen*
  if (Deltager is THold) then
  begin
    with Deltager as THold do
    begin
      //arbejd med deltager som et hold
    end;
  end
  else
  begin
    with Deltager as TPerson do
    begin
      //arbejd med deltager som person.
    end;
  end;
end;
Avatar billede jhald Nybegynder
29. oktober 2002 - 12:34 #2
ahm, du har ikke rigtigt sagt noget i det svar, andet end with do, har du ?

Men jeg fandt selv ud af min fejl, den lå i erklæringen af klasserne, hvor jeg åbenbart havde lavet en fejl. Da jeg lavede dem om virkede det anyway som jeg havde håbet. Lidt kvaj af mig at jeg ikke skrev dem med herinde åbenbart :)
Avatar billede diz Nybegynder
29. oktober 2002 - 12:36 #3
nej, men jeg kunne heller ikke lige se hvad der var galt med din kode, og det kunne være det gav lidt bedre overblik :)
Avatar billede diz Nybegynder
29. oktober 2002 - 12:37 #4
men godt at høre at du fandt fejlen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester