Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Array Problem ! Benötige Hilfe... (https://www.delphipraxis.net/81045-array-problem-benoetige-hilfe.html)

lun87 20. Nov 2006 11:29

Re: Arry Problem ! Benötige Hilfe...
 
Ich kann leider nicht DezinHex verwenden, da wir mit div und mod arbeiten sollen. Mein Prog funktioniert auch soweit, bis auf das er die Werte aus dem Feld falsch ausgibt bzw nen Fehler... Ich habe echt keine Ahnung mehr.

Delphi-Quellcode:
unit UZahlensysteme;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    zahledt: TEdit;
    ausgabepanel: TPanel;
    RadioGroup1: TRadioGroup;
    RadioGroup2: TRadioGroup;
    wandelnbutton: TButton;
    clearbutton: TButton;
    procedure clearbuttonClick(Sender: TObject);
    procedure wandelnbuttonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.clearbuttonClick(Sender: TObject);
begin
  zahledt.text := '';
  ausgabepanel.caption := '';
end;

function DezinDual (var ewert : integer):String;
var n, divwert, modwert : integer; Feld : array of integer;
begin
 n := 0;
while ewert > 0 do
 begin
  setlength(Feld,high(Feld)+2);
  divwert := ewert div 2;
  ewert := divwert;
  modwert := ewert mod 2;
  Feld[n] := modwert;
  inc(n);
 end;
end;

{function DezinDual (ewert : integer):String;
var erg : String;
begin
  erg :='';
  while ewert > 0 do begin
    erg := inttostr(ewert mod 2) + erg;
    ewert := ewert div 2;
  end;
  result:= erg;
end; }

procedure TForm1.wandelnbuttonClick(Sender: TObject);
var ewert, ergebnis, Feld, erg : integer;
    n : array of string;
begin
  ewert := strtoint(zahledt.text);
  //DezinDual (ewert);
  DezinDual (ewert);
  //ausgabepanel.Caption := inttostr(erg);
  ausgabepanel.caption := inttostr(Feld[n]); ----> hier ist der Fehler = Array Type required... Hab ich in der Funktion u. Proc
  //ausgabepanel.caption := IntToHex(ewert,4);
end;

end.


Werd einfach weiter probieren bis es funzt.

mfg Lun87

NormanNG 20. Nov 2006 11:40

Re: Arry Problem ! Benötige Hilfe...
 
Hi,

Corpsman hat doch oben schon den Fehler beschrieben. Du hast eine Funktion, verwendest aber das Ergebnis nicht. Du verwendest lokale Variablen die den gleichen Namen haben. Diese sind aber "lokal" zur jeweilien Methode und haben, außer das sie den gleichen Namen tragen, nichts miteinander zu tun.

lun87 20. Nov 2006 11:52

Re: Arry Problem ! Benötige Hilfe...
 
so langsam verzweifel ich hiermit...-.- irgendwie steig ich da net hinter.. das was ihr mir sagt verstehe ich aber ich verstehe nicht warum er diese lokale variable (Feld) in der ja ALLES gespeichert ist an eine andere variable übergibt die dann eine ausgabe ermöglicht... Ist es nicht möglich in der function ein FEld zu haben was meine Werte speichert und die ich dann mittels einer anderen variable ausgebe?

Delphi-Quellcode:
function DezinDual (var ewert, ergebnis : integer):String;
var n, divwert, modwert : integer; Feld : array of integer;
begin
 n := 0;
while ewert > 0 do
 begin
  setlength(Feld,high(Feld)+2);
  divwert := ewert div 2;
  ewert := divwert;
  modwert := ewert mod 2;
  Feld[n] := modwert;
  inc(n);
 end;
 Feld[n] := ergebnis;
end;


procedure TForm1.wandelnbuttonClick(Sender: TObject);
var ewert, ergebnis, Feld, erg : integer;
    n : array of string;
begin
  ewert := strtoint(zahledt.text);
  DezinDual (ewert, ergebnis);
  ausgabepanel.caption := inttostr(ergebnis);
  //ausgabepanel.caption := IntToHex(ewert,4);
end;

end.

mfg
Lun87

mkinzler 20. Nov 2006 12:05

Re: Arry Problem ! Benötige Hilfe...
 
Der array ist ja nur lokal definiert und man kann auf ihn nur in dem einen Durchlauf der Funktion zugreifen.

lun87 20. Nov 2006 12:23

Re: Arry Problem ! Benötige Hilfe...
 
Jut gut das wusste ich nicht, dachte man kann von überall zugreifen. Naja dann werd ich das Prog löschen und anders versuchen... hab ja mehrere Anläufe... (inttoHex etc.) entspricht zwar nicht meiner übung die ich haben wollte aber naja... deswegen gibt der nur eine zahl aus...

Habt ihr vielleicht einen Typ für Anfänger? Wie sollen sie am besten rangehen an Delphi? Gibt es Übungen im Netz mit Lösung ?
Ich danke Euch bis hierhin

mfg
Lun87


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz