Neuling beschäftigt sich mit StringGrid...

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Neuling beschäftigt sich mit StringGrid...

Beitrag von McReier »

Hallo zusammen,
versuche gerade einfache Dinge in Tabellen zu machen.
Als erstes habe ich eine Tabelle mit 4 Spalten und 3 Zeilen erstellt und wollte dann in der 2. Zeile die beiden Zahlen zusammenzählen.
Aber irgendwie scheitere ich schon am Namen der Tabelle...
Hier mein Quellcode:

Code: Alles auswählen

 
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
  StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Edit1: TEdit;
    StringGrid1: TStringGrid;
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
begin
 StringGrid1.Cells[1,1]:='3';
 StringGrid1.Cells[2,1]:='1';
 StringGrid1.Cells[3,1]:=SUMME:=StringGrid1.Cells[1,1]+StringGrid1.Cells[3,2];
 StringGrid1.Cells[3,2]:=SUMME:=StringGrid1.Cells[1,2]+StringGrid1.Cells[3,2];
end;
 
end.
 
Die Zelle 2,2 will ich vom Benutzer (als Zahl) eingeben lassen.
Die Zeile müsste dann folgendermaßen lauten:

Code: Alles auswählen

 StringGrid1.Cells[2,2]:=Caption.Edit1 
Oder?

Ich danke Euch!
McReier

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Neuling beschäftigt sich mit StringGrid...

Beitrag von Komoluna »

Code: Alles auswählen

     StringGrid1.Cells[2,2]:=Caption.Edit1 
meinst du nicht eher:

Code: Alles auswählen

     StringGrid1.Cells[2,2]:=Edit1.Text 
Ich vemute mal, dass Edit1 ein TEdit ist...

MFG
Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Re: Neuling beschäftigt sich mit StringGrid...

Beitrag von McReier »

Hallo Komoluna,
damit hast Du sicher Recht....
Anfängerfehler. Ich habe aber trotzdem vorher noch ein anderes Problem. Die Fehlermeldungen lauten:

unit1.pas(32,13) Error: Identifier not found "StringGrid1"
unit1.pas(33,13) Error: Identifier not found "StringGrid1"
unit1.pas(34,13) Error: Identifier not found "StringGrid1"
unit1.pas(34,31) Error: Identifier not found "SUMME"
unit1.pas(34,31) Fatal: Syntax error, ";" expected but ":=" found

irq
Beiträge: 25
Registriert: Mi 3. Jul 2013, 02:32
OS, Lazarus, FPC: Linux (L 0.9.30 FPC 2.6.0)
CPU-Target: 32Bit, 64Bit

Re: Neuling beschäftigt sich mit StringGrid...

Beitrag von irq »

1.) versuch : "Form1.StringGrid1" ... statt "StringGrid1". du beziehst dich ja auf das grid im form.
2.) die inhalte von cells sind strings, d.h., um sie zu addieren musst du sie vorher auf int oä konvertieren (s.a. strtoint)
3.) die zeilen mit SUMME sind syntaktisch falsch (2 x ':=' in einer zuweisung ist falsch)
viele grüße
-- irq

wp_xyz
Beiträge: 5153
Registriert: Fr 8. Apr 2011, 09:01

Re: Neuling beschäftigt sich mit StringGrid...

Beitrag von wp_xyz »

1.) versuch : "Form1.StringGrid1" ... statt "StringGrid1". du beziehst dich ja auf das grid im form.
Nein auf keinen Fall. Wenn eine andere Instanz von TForm1 erzeugt wird, die nicht mehr Form1 heißt, funktioniert das nicht mehr! Bei Komponenten, die auf einem Formular sitzen, niemals den Namen des Formulars voranstellen, höchstens einmal "self", wenn es Namenskonflikte gibt.

Ansonsten ist wahrscheinlich dein Problem, dass ein StringGrid natürlich kein Excel ersetzt. In den einzelnen Zellen werden nur Strings gespeichert. Man kann mit ihnen nur dann rechnen, wenn man sie zuerst in Zahlen umwandelt. Dabei musst du aufpassen auf Leerfelder oder Zellen mit nicht-numerischen Strings. Wenn dann die Rechnung geglückt ist, muss das Ergebnis wieder in einen String zurückgewandelt werden, bevor es in einer Zelle angezeigt werden kann.

Ich würde dir raten, besorg dir ein Anfängerbuch über Pascal oder Delphi (ganz ähnlich wie Lazarus), oder suche dir im Internet ein Tutorial. Eine einfache Google-Anfrage "Lazarus StringGrid" hat mich z.B. sofort zu dem Video http://www.youtube.com/watch?v=Amp227whLHQ geführt, das vielleicht ganz interessant ist für dich.

irq
Beiträge: 25
Registriert: Mi 3. Jul 2013, 02:32
OS, Lazarus, FPC: Linux (L 0.9.30 FPC 2.6.0)
CPU-Target: 32Bit, 64Bit

Re: Neuling beschäftigt sich mit StringGrid...

Beitrag von irq »

@wp_xyz: oops, stimmt. mein fehler.
viele grüße
-- irq

Antworten