Hirdetés
- mefistofeles: A furcsa hobbi.....
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- Brogyi: CTEK akkumulátor töltő és másolatai
- Mr Dini: Mindent a StreamSharkról!
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Pajac: PassMark - Intel Core2 Quad Q9400
- Lalikiraly: Kinek milyen setupja van?
Új hozzászólás Aktív témák
-
czappa
aktív tag
Sziasztok!
Már megint elakadtam, most a mutatókkal gyűlt meg a bajom.
Suliban volt szó egyirányú listákról; ehhez írtam egy kis progit, ami még csak annyit csinál, hogy lehet a végéhez felvenni egy új elemet és az egészet listázni (kiíratni egy listboxba).
Ez szép és jó és elvileg működik is ([link]), ám én balga arra gondoltam, hogy nem recorddal kéne megcsinálni hanem osztály példányokkal ha már úgyis oop-t tanulok.
Itt azonban már nem mentek olyan simán a dolgok. Ha csak egy elemet veszek fel a listába, akkor minden működik rendesen, azonban több elemnél a kilistázáskor a progi bekerül egy végtelen ciklusba és már két napja ezen rágódok és nem tudok rájönni sehogy se; ennek itt a linkje:
[link]
Azért bemásolok ide kódrészeket:
private
fej, p: point;
uj: TRek;
ujertek: integer; (...)
procedure TForm1.Button1Click(Sender: TObject);
begin
//beszúrás a lista végéhez
ujertek:=StrToInt(Edit1.Text);
Edit1.Text:='';
uj:=TRek.Create(ujertek);
uj.setKov(nil);
if fej=nil then //ha nincs még eleme a listának
begin
fej:=@uj;
end
else //ha a fej nem nil-re mutat, azaz ha van már eleme a listának
begin
p:=fej;
while p.getKov<>nil do
begin
p:=p^.getKov;
end;
p^.setKov(@uj);
end;
Edit1.SetFocus;
end;
procedure TForm1.ListazClick(Sender: TObject);
var i: integer; //
begin
for i:=ListBox1.Count downto 0 do //a LsitBox1 elemeinek törlése
ListBox1.Items.Delete(i);
p:=fej;
while p<>nil do
begin
Listbox1.Items.Add( IntToStr(p^.getTart) );
p:=p^.getKov;
end;
end;
és a TRek osztály:
unit Rek;
interface
type
point = ^TRek;
TRek=class
private
tart : Integer ;
kov : point;
public
constructor create(tart: integer);
procedure setKov(kov: point);
function getKov: point;
function getTart: integer;
end;
Végülis a lényegi részeket fentebb kimásoltam.
[Szerkesztve]
[Szerkesztve]
Új hozzászólás Aktív témák
- Végre elkezdődik a DGX Spark gépek szállítása
- Mibe tegyem a megtakarításaimat?
- Battlefield 6
- Négy nagy x86-os újítással készül a jövőre az AMD és az Intel
- World of Tanks - MMO
- exHWSW - Értünk mindenhez IS
- HiFi műszaki szemmel - sztereó hangrendszerek
- Gumi és felni topik
- mefistofeles: A furcsa hobbi.....
- CADA, Polymobil, és más építőkockák
- További aktív témák...
- AKCIÓ ÚJ Bontatlan Macbook Pro 14 M4 MAX 14 32GPU 36GB 1TB Magyar billentyűzet Azonnal átvehető Deák
- BONTATLAN Új Ipad 9th 10th 11 gen. Air 6 7 , Ipad Pro Mini 7 IPADEK Azonnal DEÁK Térnél Átvehető.
- BONTATLAN Új iPhone 17 PRO MAX 256-512GGB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- Dell Precision 7740 Workstation 17,3", i9-9980HQ, 32GB, RTX3000 6GB
- Gamer PC - i5 14600k, RTX 3080 és 32gb RAM + GARANCIA
- Microsoft Surface Pro 6 fekete
- GYÖNYÖRŰ iPhone 12 Pro 128GB Graphite - 1 ÉV GARANCIA - Kártyafüggetlen, MS3258,100% Akkumulátor
- Apple MacBook Pro 13" 2019 256/8GB Akku:40 ciklus! Magyar
- Akció! Hordozható GAMER Monitor! MSI MAG162V ! 15.6 1920x1080 FULLHD! Bolti ár fele!
- Apple iPhone 15 Pro Max 256GB,Átlagos,Adatkábel,12 hónap garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest