11. januar 2007 - 14:44
Der er
1 kommentar og 1 løsning
Kalde procedure med self variabel
Hej eksperter. Hvad kan jeg gøre i nedenstående tilfælde:(jeg har kun kopieret relevant kode) type Tsignal = class ukort:integer; port:Tport; constructor create(ukort:integer;port:Tport); procedure SetGreen; end; type Tkort = class procedure WriteKort(port:integer;setting:boolean); end; procedure Tsignal.SetGreen; begin case ukort of 1: kort1.WriteKort(self.port,true); 2: kort2.WriteKort(self.port,true); 3: kort3.WriteKort(self.port,true); 4: kort4.WriteKort(self.port,true); 5: kort5.WriteKort(self.port,true); ...... end; end; procedure Tkort.WriteKort(port:integer;setting:boolean); begin porte[port]:=setting; end; Jeg vil gerne af med case sætninger i SetGreen proceduren og i stedet gøre noget i retning af: procedure Tsignal.SetGreen; begin (kort+(self.ukort)).WriteKort(self.port,true); end; Er det mulig? Pft. Ellgaard
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
12. januar 2007 - 07:46
#1
du kan lave noget i retnng af type Tsignal = class ukort:tObject; // integer; KortID: integer; port:Tport; constructor create(ukort:tObject;port:Tport); procedure SetGreen; end; var kort : tKort; aKort : Array [0..10] of tKort; procedure Tsignal.SetGreen; begin tKort(self.ukort).WriteKort(self.port,true); tKort(aKort[self.kortID]).WriteKort(self.port,true); (*case ukort of 1: kort1.WriteKort(self.port,true); 2: kort2.WriteKort(self.port,true); 3: kort3.WriteKort(self.port,true); 4: kort4.WriteKort(self.port,true); 5: kort5.WriteKort(self.port,true); end; *) end; Constructor tSignal.create(ukort:tObject;port:Tport); begin end; procedure tKort.WriteKort(port:integer;setting:boolean); begin end; hvor du enten kan bruge kort/ukort eller aKort/KortID alt afhængig af hvordan dine kort skal være tilgængelige i Signal-objektet. mvh Anders