AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ausgabe Matrix

Ein Thema von n00b_on_knees · begonnen am 10. Mai 2003 · letzter Beitrag vom 11. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#1

Ausgabe Matrix

  Alt 10. Mai 2003, 16:17
Hallo!

Ich hab da mal wieder ne Frage zu ner Ausgabe ...

Ich muss ein Mehrdimensionales Feld erstellen, 1..3 und 1..6.
Dann muss ich das ganze in einem Memofeld ausgeben, was bei mir nicht so richtig funktioniert, obwohl ich den Teil aus unserem Schulscript hab. Wísst ihr was an diesem Teil falsch ist?

Delphi-Quellcode:
procedure TForm1.ShowArray(a: TFeld);
var i, j: integer;
begin
  for i:=1 to 2 do begin
    mmAus.Lines.add(format('%3d. Reihe:',[i]));
    for j:=1 to 6 do
      mmAus.Lines:= mmAus.Lines[i]+format('%3d',[a[i,j]]);
  end;
end;
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#2
  Alt 10. Mai 2003, 16:22
Ich hab den Code mal einfach so eingefügt und er meint:
Zitat:
[Error] Unit1.pas(27): Missing operator or semicolon
[Error] Unit1.pas(29): Missing operator or semicolon
[Error] Unit1.pas(29): Missing operator or semicolon
Die anderen Fehler: Undeclared Identifier... resultieren wohl daraus, dass ich keine definiert habe.

Liegt also vielleicht an den Semicolons. Hat das Ding in der Schule denn funktioniert?

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#3
  Alt 10. Mai 2003, 16:34
es ist so, wir haben nur kurz eben theoretisch mehrdimensionale felder durchgenommen, von einer ausgabe hat aber keiner geredet, und aufgabe ist eben in nem memo ausgeben, also habe ich den teil aus dem script reingeschrieben, was eben nicht funktioniert, aber funktionieren sollte
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#4
  Alt 10. Mai 2003, 16:40
Hi!

Habe den Code gerade mal getestet. Die Meldung

Zitat:
[Fehler] Unit1.pas(34): Inkompatible Typen: 'TStrings' und 'String'
in der Zeile
mmAus.Lines:= mmAus.Lines[i]+format('%3d',[a[i,j]]); sagt, glaube ich, alles.

MfG,
Peter
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#5
  Alt 10. Mai 2003, 16:44
mir leider nicht wirklich xD
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#6
  Alt 10. Mai 2003, 17:12
Also:

Die linke Seite der Code-Zeile heißt "mmAus.Lines". Da mmAus ein Memo ist, handelt es sich bei "mmAus.Lines" um eine Variable vom Typ TStrings. Also eine Liste von Strings, nämlich die einzelnen Zeilen des Memos.
Die rechte Seite der Code-Zeile heißt mmAus.Lines[i]+format('%3d',[a[i,j]]) . Das ist ein einzelner String.
Folglich versucht Du hier, einer Liste von Strings einen einzelnen String zuzuweisen und das geht natürlich nicht.
Wenn Du auf der linken Seite das "mmAus.Lines" durch "mmAus.Lines[i]" ersetzt, dann sollte es funktionieren.

MfG,
Peter
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#7
  Alt 10. Mai 2003, 17:26
danke für die erklärung, es lässt sich auch compelieren usw., nur kommt nicht das gewünscht ergebnis heraus, sondern etwas in form von:

Delphi-Quellcode:
  
1. Reihe:
-107523520672090937630777833558 0 0
  2. Reihe:-208103014476482916-2028502058-209466112034583920387584
und das ist nicht das ziel. ich poste mal den gesamten quellcode, vielliecht weiß dann jemand auch noch von hier die lösung, oder es hat noch immer mit der ausgabe zu tun.

Delphi-Quellcode:
unit fillarray;

interface

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

type
   TFeld = array [1..3, 1..6] of integer;
  TForm1 = class(TForm)
    mmAus: TMemo;
    btStart: TButton;
    procedure ShowArray(a: TFeld);
    procedure FillArray(a: TFeld);
    procedure btStartClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FillArray(a: TFeld);
//Variablendeklaration
var
  i, j: integer;
begin
  for i:= 1 to 3 do
    for j:=1 to 6 do
      a[i, j]:= random(9);
end;


procedure TForm1.ShowArray(a: TFeld);
var i, j: integer;
begin
  for i:=1 to 2 do begin
    mmAus.Lines.add(format('%3d. Reihe:',[i]));
    for j:=1 to 6 do
      mmAus.Lines[i]:= mmAus.Lines[i]+format('%3d',[a[i,j]]);
  end;
end;

procedure TForm1.btStartClick(Sender: TObject);
//Variablendeklaration
var
  a: TFeld;
begin
  FillArray(a);
  ShowArray(a);
end;

end.
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#8
  Alt 10. Mai 2003, 17:37
Das Problem liegt in der Prozedur "FillArray". Die Prozedur ist so deklariert, dass das Array, welches Du in FillArray verarbeitest, nicht das gleiche Array ist, welches in "btStartClick" deklariert ist. Wenn Du "FillArray" wie folgt änderst, sollte es funktionieren:

procedure FillArray(VAR a: TFeld); Wobei der Knackpunkt natürlich bei "VAR" liegt.

MfG,
Peter

P.S.: Musst Du natürlich im Interface- und Implementation-Teil ändern.

//Edit: in der Funktion ShowArray solltest Du das Memo vor der neuen Ausgabe erst einmal komplett leer machen. Sonst gibt es beim zweiten Button-Klick da 'ne ziemliche Unordnung.
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#9
  Alt 10. Mai 2003, 17:43
es funktioniert tatsächlich, ich hatte das mit dem original verändern bei den referenzparamtern irgendwie vergessen...danke für die hilfe
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#10
  Alt 11. Mai 2003, 16:33
tread kann geschlossen werden
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz