Autor |
Beitrag |
tah_rul0r
Hält's aus hier
Beiträge: 10
|
Verfasst: Mi 09.04.08 00:13
Hallihallo...
hab über einen freund vom diesem forum erfahren... bin leider ziemlich schlecht im programmieren mit delphi...
jetzt hab ich in der schule ein projekt bekommen... große zahlen...
also:
in einem editfeld soll eine große zahl, bsp. 2947603 eingelesen werden... dann sollen die einzelnen zahlen verknoten werden.. also 2->9->4->7->6->0->3... das ganze soll mit einem constructor objektorientiert gemacht werden...
im endeffekt soll man eine 2. zahl einketten, und die mit der ersten addieren... also die knoten jeweils, und natürlich immer den rest mitgeben, 2. möglichkeit: die lange zahl bzw. kette mit einer zahl von 0-10 multiplizieren...
ich hab halt leider null ahnung davon, mir gehts dabei in der schule nicht so gut^^... würd mich freuen wenn mir jemand helfen könnte... wenns zu wenig info ist, kann ich natürlich noch mehr geben...
danke euch, michael
|
|
GericasS
      
Beiträge: 540
Windows Vista Home Premium
D2010, VisualStudio2008
|
Verfasst: Mi 09.04.08 07:08
Morgen,
du sagt du seiest ziehmlich schlecht, hast du vll. trotzdem einen Lösungsansatz ?
Oder dir vll. schonmal ein paar gedanken gemacht wie man es "vll." umsetzten könnte ?
Unser Lehrer meint immer man kann so ein Projekt auch schon mal vorraus planen bevor man sich überhaupt an den PC setzt.
LG
GericasS
_________________ Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Mi 09.04.08 09:25
tah_rul0r hat folgendes geschrieben: |
also:
in einem editfeld soll eine große zahl, bsp. 2947603 eingelesen werden... dann sollen die einzelnen zahlen verknoten werden.. also 2->9->4->7->6->0->3... das ganze soll mit einem constructor objektorientiert gemacht werden...
im endeffekt soll man eine 2. zahl einketten, und die mit der ersten addieren... also die knoten jeweils, und natürlich immer den rest mitgeben, 2. möglichkeit: die lange zahl bzw. kette mit einer zahl von 0-10 multiplizieren...
|
besser wäre es die Zahlen andersherum zu "verknoten".
aus 2947603 wird 3>0>6>7>4>9>2.
Das Hat den Vorteil bei Opertionen das der Anfang immer die EinerStelle ist.
Das Schlüsselwort constructor bedeutet Du brauchst eine Klasse. Stichwort: Klassendefinition.
Zum verknoten nihmst Du Pointer bzw ObjektReferenzen.
|
|
tah_rul0r 
Hält's aus hier
Beiträge: 10
|
Verfasst: Mi 09.04.08 22:53
Titel: lösungsansatz wenn mans so nennen kann^^
Mein Anfang...
wenn das ein und auslesen mal funktionieren würde, wärs ja mal ein anfang...
aber das schaff ich leider auch noch nicht...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
| unit number_unit;
interface uses stdctrls,Dialogs,extctrls,Sysutils;
type TKnoten=class(TObject) nummer:integer; next:TKnoten; constructor Create(s:integer); end;
type TListe=class(TObject) anf:TKnoten; Constructor Create; procedure lifopush; procedure ausgabe; procedure add; procedure multi; end;
implementation
Constructor TKnoten.Create(s:integer); begin nummer:=0;next:=nil; end;
Constructor Tliste.Create; begin anf:=nil; end;
procedure lifopush(zahl:string); var neu: TKnoten; i: integer; begin for i:= 1 to length(zahl) do begin new(neu); neu.nummer:=copy(zahl,i,length(zahl)); neu.next:=anf; anf:=neu; end; end;
procedure ausgabe; begin counter:= 0; while anfang <> nil do zahl:= zahl + inttostr(neu.nummer); end;
procedure add; begin
end;
procedure multi; begin
end;
end. |
Moderiert von Christian S.: Quote- durch Delphi-Tags ersetzt
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Do 10.04.08 00:37
Hi!
Verkette Listen, herrlisch. Schreib ich morgen ne Klausur drüber. Wenn Du willst, schreib ich Dir ein halbwegs vernünftiges Tutorial oder erklär es Dir morgen hier nocheinmal genauer.
Oder haben wir bereits eins in der Library?
Cheers,
Marc.
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Do 10.04.08 06:53
Titel: Re: lösungsansatz wenn mans so nennen kann^^
satt
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure lifopush(zahl:string); var neu: TKnoten; i: integer; begin for i:= 1 to length(zahl) do begin new(neu); neu.nummer:=copy(zahl,i,length(zahl)); neu.next:=anf; anf:=neu; end; end; |
lieber so schreiben:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure lifopush(zahl:string); var neu: TKnoten; i: integer; begin for i:= 1 to length(zahl) do begin new(neu); neu.nummer:=copy(zahl,i,1); neu.next:=anf; anf:=neu; end; end; |
nächster Fehler:
Die Methode Ausgabe besser als Function mit Integer als Rückgabetyp deklarieren, die Variable "Zahl" lokal in der MEthode als String definieren und am Anfang der Methode auf '' setzen(Zahl:='').
weiterer Fehler:
Der Methode lifopush bitte auch in der Klassendefinition die Parameterliste hinzufügen.
noch ein Fehler:
in der Implementation der MEthode immer den Klassennamen vorran schreiben:
Delphi-Quelltext 1:
| procedure TMyClass.MyProd |
letzter fehler Komplex: unvollständige Constructor Methode und Fehlende Destructor MEthode.
Constructoren bitte so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Constructor TmyClass.Create; begin inherited Create; end;
destructor TmyClass.destroy; begin inhreited destroy; end; |
Das waren erstmal die Sachen die ich so gefunden habe.
kleines Edit:
highlight durch delphi ersetzt.
Zuletzt bearbeitet von Tilo am Do 10.04.08 07:48, insgesamt 1-mal bearbeitet
|
|
tah_rul0r 
Hält's aus hier
Beiträge: 10
|
Verfasst: Do 10.04.08 07:25
Marc. hat folgendes geschrieben: | Hi!
Verkette Listen, herrlisch. Schreib ich morgen ne Klausur drüber. Wenn Du willst, schreib ich Dir ein halbwegs vernünftiges Tutorial oder erklär es Dir morgen hier nocheinmal genauer.
Oder haben wir bereits eins in der Library?
Cheers,
Marc. |
perfekt!
versteh das leider eher weniger^^
@tilo
puh^^... teilweise versteh ich deine aussagen leider nicht ^^
bzw. das meiste check ich garnicht
lg, mike
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Do 10.04.08 08:07
Titel: Re: lösungsansatz wenn mans so nennen kann^^
Ich zeige Dir dann einfach mal was ich meinte:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81:
| unit number_unit;
interface uses stdctrls,Dialogs,extctrls,Sysutils;
type TKnoten=class(TObject) nummer:integer; next:TKnoten; constructor Create(s:integer); end;
type TListe=class(TObject) anf:TKnoten; Constructor Create; destructor destroy; procedure lifopush(zahl:string); function ausgabe:string; procedure add; procedure multi; end;
implementation
Constructor TKnoten.Create(s:integer); begin nummer:=s;next:=nil; end;
Constructor Tliste.Create; begin inherited Create; anf:=nil; end;
procedure Tliste.lifopush(zahl:string); var neu: TKnoten; i: integer; begin for i:= 1 to length(zahl) do begin new(neu); neu:=TKnoten.create(strtoint(zahl[i])); neu.next:=anf; anf:=neu; end; end;
function Tliste.ausgabe:string; var zahl:string;begin zahl:=''; while anfang <> nil do zahl:= zahl + inttostr(neu.nummer); result:=zahl; end;
destructor Tliste.destroy; var alt1,alt2:TKnoten; begin alt1:=neu; while alt1<>nil do begin alt2:=alt1; alt1:=alt1.next; alt2.free; dispose(alt2); end; inherited destroy; end; |
Der Wert den die Variable Result am Ende einer Function hat wird übergeben.
Welchen Compiler verwendest Du? Die Fehlermeldungen die Du beim Compilierungsversuch erhälst sind manchmal recht hilfreich;
Zusätzlich habe ich die Function lifopush umgeändert. da deine TKnoten Klasse im Constructor den Parameter s:integer hat kann man den gleich mitverwenden.
Ich hoffe das hilft.
gruß Tilo
|
|
tah_rul0r 
Hält's aus hier
Beiträge: 10
|
Verfasst: Do 10.04.08 16:47
Titel: Re: lösungsansatz wenn mans so nennen kann^^
Habs jetzt auf deine version umgeändert... aber ^^ :
ein paar fehlermeldungen
[Warning] number_unit.pas(1  : Method 'Destroy' hides virtual method of base type 'TObject'
[Error] number_unit.pas(53): Incompatible types
[Error] number_unit.pas(54): Not enough actual parameters
[Error] number_unit.pas(55): Missing operator or semicolon
[Error] number_unit.pas(55): Incompatible types: 'Integer' and 'String'
[Error] number_unit.pas(70): Undeclared identifier: 'neu'
[Error] number_unit.pas(79): Undeclared identifier: 'neu'`
[Error] number_unit.pas(85): Incompatible types
[Error] number_unit.pas(91): Declaration expected but end of file found
[Error] number_unit.pas(21): Unsatisfied forward or external declaration: 'TListe.add'
[Error] number_unit.pas(22): Unsatisfied forward or external declaration: 'TListe.multi'
[Fatal Error] form.pas(7): Could not compile used unit 'number_unit.pas'
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Do 10.04.08 21:47
Titel: Re: lösungsansatz wenn mans so nennen kann^^
Hab ja nicht behauptet das es fehlerfrei ist.
Dazu meine Bemerkungen:
[Warning] number_unit.pas(1  : Method 'Destroy' hides virtual method of base type 'TObject'
Vergess ich ständig. In der Deklaration hinter "destructor destroy;" das Schlüsselwort "override;" anfügen.
[Error] number_unit.pas(53): Incompatible types
[Error] number_unit.pas(85): Incompatible types
Kann passieren. In der Entsprechenden Zeile korreckte Typenumwandlung vornehmen oder die Variablen in kompatiple Typen umdeklarieren.
[Error] number_unit.pas(54): Not enough actual parameters
Da fehlt was
[Error] number_unit.pas(55): Missing operator or semicolon
wahrscheinlich das letztere
[Error] number_unit.pas(55): Incompatible types: 'Integer' and 'String'
entweder strtoint oder inttostr verwenden
[Error] number_unit.pas(70): Undeclared identifier: 'neu'
[Error] number_unit.pas(79): Undeclared identifier: 'neu'
"neu" als den Variablentyp definieren der er sein soll.
[Error] number_unit.pas(91): Declaration expected but end of file found
irgend wo entweder ein "begin" zu viel oder ein "end;" Eventuell hinterdem letzten "end" einen Punkt setzen
[Error] number_unit.pas(21): Unsatisfied forward or external declaration: 'TListe.add'
[Error] number_unit.pas(22): Unsatisfied forward or external declaration: 'TListe.multi'
Entweder schreibst Du die Methode oder löscht sie aus der Deklaration. Da sie ohne Code waren habe ich dort auch nichts gemacht.
[Fatal Error] form.pas(7): Could not compile used unit 'number_unit.pas'[/quote]
Wenn Du die anderen Fehler beseitig hast verschwindet diese Meldung von alleine.
So ich muss jetzt mal Schluss machen ->Kino.
einen schönen Abend noch.
|
|
tah_rul0r 
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 11.04.08 10:08
Titel: Re: lösungsansatz wenn mans so nennen kann^^
so, hab jetzt alles im griff...
ausser:
Tilo hat folgendes geschrieben: |
[Error] number_unit.pas(53): Incompatible types
[Error] number_unit.pas(85): Incompatible types
Kann passieren. In der Entsprechenden Zeile korreckte Typenumwandlung vornehmen oder die Variablen in kompatiple Typen umdeklarieren.
|
da gehts um die "neu"-variable... was da incompatible is, hab ich keine ahnung^^
die procedure selber ist jetzt so: (hoffe es stimmt)
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure Tliste.lifopush(zahl:string); var neu: TKnoten; i: integer; begin for i:= 1 to length(zahl) do begin new(neu); neu:=TKnoten.create(strtoint(zahl[i])); neu.nummer:=strtoint(copy(zahl,i,1)); neu.next:=anf; anf:=neu; end; end; |
dankeschön für hilfe,
lg, mike
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Fr 11.04.08 10:59
Titel: Re: lösungsansatz wenn mans so nennen kann^^
Wenn es die Stelle ist dann probier mal diese Alternative:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure Tliste.lifopush(zahl:string); var neu: TKnoten; i: integer; buffstr:string; buffint:integer; begin for i:= 1 to length(zahl) do begin new(neu); buffstr:=zahl[i]; buffint:=strtoint(buffstr); neu:=TKnoten.create(buffint); neu.nummer:=strtoint(copy(zahl,i,1)); neu.next:=anf; anf:=neu; end; end; |
|
|
tah_rul0r 
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 11.04.08 13:00
Titel: Re: lösungsansatz wenn mans so nennen kann^^
genau das selbe...
bei der zeile...
new(neu); // ...kommt die Fehlermeldung [Error] number_unit.pas(50): Incompatible types
Danach sagt er immer wenn "neu.*" vorkommt "Undeclared Identifier"
check ich leider überhaupt nicht, was kann bei new(neu) denn falsch sein...
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Fr 11.04.08 19:41
Dann wirst Du um die Verwendung von Pointern nicht durmher kommen.
Definiere eine Pointerklasse für TKnoten.
z.B. so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| type PKnoten=^TKnoten TKnoten=class(TObject) nummer:integer; next:PKnoten; constructor Create(s:integer); end; |
Überall wo Du TKnoten stehen hast schreibst Du nun PKnoten hin.
zur veranschaulichung:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure someProc; var aknoten:PKnoten; begin new(aknoten); aknoten^:=TKnoten.Create(4); aknoten^.next:=nil; aknoten^.free; dispose(aknoten); end; |
Ich hoffe das löst das Problem.
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Fr 11.04.08 20:37
Titel: Re: lösungsansatz wenn mans so nennen kann^^
tah_rul0r hat folgendes geschrieben: | Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure Tliste.lifopush(const zahl:string); var neu: TKnoten; i: integer; begin for i:= 1 to length(zahl) do begin new(neu); neu:=TKnoten.create(strtoint(zahl[i])); neu.nummer:=strtoint(copy(zahl,i,1)); neu.next:=anf; anf:=neu; end; end; | |
Hi,
Bitte den String-Parameter als const deklarieren. Ein String wird bei der Übergabe kopiert, damit mit dieser Kopie ohne Beeinträchtigung des Originals gearbeitet werden kann. Im Normalfall willst du das aber garnicht: Du arbeitest entweder mit einer Kopie, untersuchst das Original nur, etc.
Wenn du das Original verändern willst, deklariere den Parameter als var.
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
tah_rul0r 
Hält's aus hier
Beiträge: 10
|
Verfasst: Do 17.04.08 21:38
Titel: Momentaner Stand...
ich brings einfach nicht auf die Reihe^^
Form
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| unit form;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Spin, StdCtrls, ExtCtrls, number_unit;
type TForm1 = class(TForm) NumEd: TEdit; Einbtn: TButton; Ausbtn: TButton; addbtn: TButton; multibtn: TButton; SpinEdit1: TSpinEdit; Label1: TLabel; Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Label2: TLabel; procedure EinbtnClick(Sender: TObject); procedure AusbtnClick(Sender: TObject); procedure addbtnClick(Sender: TObject); procedure multibtnClick(Sender: TObject); procedure FormCreate(Sender: TObject); private public end;
var Form1: TForm1; bignum : Tliste; implementation
{$R *.dfm}
procedure TForm1.EinbtnClick(Sender: TObject); begin bignum.lifopush(numed.text); end;
procedure TForm1.AusbtnClick(Sender: TObject); begin bignum.ausgabe; end;
procedure TForm1.addbtnClick(Sender: TObject); begin end;
procedure TForm1.multibtnClick(Sender: TObject); begin end;
procedure TForm1.FormCreate(Sender: TObject); begin bignum:= Tliste.create; end;
end. |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78:
| unit number_unit;
interface uses stdctrls,Dialogs,extctrls,Sysutils;
type TKnoten=class(TObject) nummer:integer; next:TKnoten; constructor Create(s:integer); end;
type TListe=class(TObject) anf:TKnoten; Constructor Create; destructor destroy;override; procedure lifopush(zahl:string); function ausgabe:string; end; var neu: TKnoten; implementation
Constructor TKnoten.Create(s:integer); begin nummer:=s;next:=nil;
end;
Constructor Tliste.Create; begin inherited Create; anf:=nil; end;
procedure Tliste.lifopush(zahl:string); var i: integer; begin for i:= 1 to length(zahl) do begin neu:=TKnoten.create(strtoint(zahl[i])); neu.nummer:=strtoint(copy(zahl,i,1)); neu.next:=anf; anf:=neu; end; end;
function Tliste.ausgabe:string; var zahlstr:string; begin zahlstr:=''; while anf <> nil do zahlstr:= zahlstr + inttostr(neu.nummer); result:=zahlstr; panel1.caption:=zahlstr; end;
destructor Tliste.destroy; var alt1,alt2:TKnoten; begin alt1:=neu; while alt1<>nil do begin alt2:=alt1; alt1:=alt1.next; alt2.free; end; inherited destroy; end;
end. |
Einloggen, um Attachments anzusehen!
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Do 17.04.08 22:48
Zitat: | [Error] number_unit.pas(62): Undeclared identifier: 'panel1';
|
Kann es sein das Du das Panel umbenannt hast?
Ansonsten:
Wo hakt es?
|
|
jaenicke
      
Beiträge: 19321
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 17.04.08 23:28
Er hat es nicht umbenannt, sondern er versucht es aus einer anderen Klasse (TListe) zu erreichen als der in der es deklariert ist (der Formular-Klasse TForm1).
Lösung: Binde unterhalb von implementation die Formular-Unit form per uses ein und greife dann via Form1.Panel1 auf das Panel zu  : Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| implementation
uses form;
Form1.Panel1. ... |
|
|
tah_rul0r 
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 18.04.08 09:49
jaenicke hat folgendes geschrieben: | Er hat es nicht umbenannt, sondern er versucht es aus einer anderen Klasse (TListe) zu erreichen als der in der es deklariert ist (der Formular-Klasse TForm1).
Lösung: Binde unterhalb von implementation die Formular-Unit form per uses ein und greife dann via Form1.Panel1 auf das Panel zu : Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| implementation
uses form;
Form1.Panel1. ... | |
Nein, das Funzt leider nicht  ... steht immer noch dasselbe da...
nach implementation hab ich jetzt uses form;
unten form.panel1.caption:= blabla ...
gleiche Fehlermeldung
aja, kann mir jemand sagen wie ich die addition / multiplikation aufstellen muss??
lg
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Fr 18.04.08 10:40
Titel: Re: Momentaner Stand...
Ändere mal die markierten Stellen ab:
Form
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| unit form;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Spin, StdCtrls, ExtCtrls, number_unit;
type TForm1 = class(TForm) ... end;
var Form1: TForm1; bignum : Tliste; implementation
{$R *.dfm}
...
procedure TForm1.AusbtnClick(Sender: TObject); begin form1.panel1.caption:=bignum.ausgabe; end; ... |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| unit number_unit;
interface uses stdctrls,Dialogs,extctrls,Sysutils;
type TKnoten=class(TObject) ... end;
type TListe=class(TObject) ... end; var neu: TKnoten; implementation
...
function Tliste.ausgabe:string; var zahlstr:string; begin zahlstr:=''; while anf <> nil do zahlstr:= zahlstr + inttostr(neu.nummer); result:=zahlstr; end;
... |
... bedeutet nur das ich die Stellen ausgelassen habe -> nicht löschen!
|
|