Autor Beitrag
tah_rul0r
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 540

Windows Vista Home Premium
D2010, VisualStudio2008
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Mi 09.04.08 09:25 
user profile icontah_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 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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...


ausblenden volle Höhe 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:
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 user profile iconChristian S.: Quote- durch Delphi-Tags ersetzt
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Do 10.04.08 06:53 
Titel: Re: lösungsansatz wenn mans so nennen kann^^
satt
ausblenden 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:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
procedure TMyClass.MyProd					


letzter fehler Komplex: unvollständige Constructor Methode und Fehlende Destructor MEthode.
Constructoren bitte so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Constructor TmyClass.Create;
begin
 inherited Create;//eventuell mit Parameterliste
 //eigener Code
end;

destructor TmyClass.destroy;
begin
 //hier selbst erzeugte Strukturen freigeben.
 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 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 10.04.08 07:25 
user profile iconMarc. 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Do 10.04.08 08:07 
Titel: Re: lösungsansatz wenn mans so nennen kann^^
Ich zeige Dir dann einfach mal was ich meinte:


ausblenden volle Höhe 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:
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;
  //war wohl so gemeint, oder?
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);
   // ist mir gereade aufgefallen,
   // hier müsste noch
   //neu:=TKnoten.Create stehen
   //neu.nummer:=copy(zahl,i,length(zahl));
   neu:=TKnoten.create(strtoint(zahl[i]));
   neu.next:=anf;
   anf:=neu;
  end;
end;

function Tliste.ausgabe:string;
var
zahl:string;
//einbischen verwirrend besser zahlstr nennen
begin
 //counter:= 0; //was der soll weis ich nicht ist zur Zeit ohne Funktion
 zahl:='';
 while anfang <> nil do
  zahl:= zahl + inttostr(neu.nummer);
 result:=zahl; // durch die Deklaration von ausgabe als function darf du hier result verwenden.
end;

destructor Tliste.destroy;
var
alt1,alt2:TKnoten;
begin
 alt1:=neu;
 while alt1<>nil do
 begin
  alt2:=alt1;
  alt1:=alt1.next;
  alt2.free;//Speicher des Objectes freigeben;
  dispose(alt2); //Speicher der ObjectReferenz freigeben;
 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 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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(18): 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: 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(18): 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 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 11.04.08 10:08 
Titel: Re: lösungsansatz wenn mans so nennen kann^^
so, hab jetzt alles im griff...

ausser:

user profile iconTilo 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)

ausblenden 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: 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:

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: 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:

ausblenden 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure someProc;
var
aknoten:PKnoten;
begin
 new(aknoten);// Speicher für ObjectReferenz wird reserviert;
 aknoten^:=TKnoten.Create(4); //ObjectInstanz wird erzeugt;
 aknoten^.next:=nil//Zugrift auf das Object.
 aknoten^.free; //objectinstanz wird gelöscht ->Speicherfreigabe
 dispose(aknoten); //Speicher für ObjectReferenz wird freigegeben
end;


Ich hoffe das löst das Problem.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Fr 11.04.08 20:37 
Titel: Re: lösungsansatz wenn mans so nennen kann^^
user profile icontah_rul0r hat folgendes geschrieben:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 17.04.08 21:38 
Titel: Momentaner Stand...
ich brings einfach nicht auf die Reihe^^

Form

ausblenden volle Höhe 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:
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
    { Private declarations }
  public
    { Public declarations }
  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
// bignum.add;
end;

procedure TForm1.multibtnClick(Sender: TObject);
begin
// bignum.multi;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
bignum:= Tliste.create;
end;

end.


ausblenden volle Höhe 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:
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;
//      procedure add;
//      procedure multi;
     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
 //counter:= 0;
 zahlstr:='';
 while anf <> nil do
  zahlstr:= zahlstr + inttostr(neu.nummer);
 result:=zahlstr;
 panel1.caption:=zahlstr;     // [Error] number_unit.pas(62): Undeclared identifier: 'panel1';-)
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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19321
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 ;-):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
implementation

uses
  form;

// ...

  Form1.Panel1. ...
tah_rul0r Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 18.04.08 09:49 
user profile iconjaenicke 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 ;-):
ausblenden 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Fr 18.04.08 10:40 
Titel: Re: Momentaner Stand...
Ändere mal die markierten Stellen ab:

Form

ausblenden 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); //Ich vermute dieser Button soll die Ausgabe starten.
begin
 form1.panel1.caption:=bignum.ausgabe;
end;
...


ausblenden volle Höhe 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:
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
 //counter:= 0;
 zahlstr:='';
 while anf <> nil do
  zahlstr:= zahlstr + inttostr(neu.nummer);
 result:=zahlstr;
 //panel1.caption:=zahlstr;     // [Error] number_unit.pas(62): Undeclared identifier: 'panel1';-)
end;

...


... bedeutet nur das ich die Stellen ausgelassen habe -> nicht löschen!