AGB  ·  Datenschutz  ·  Impressum  







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

Record an 2tes Formular übergeben

Ein Thema von Wuffel · begonnen am 11. Dez 2010 · letzter Beitrag vom 13. Dez 2010
 
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Record an 2tes Formular übergeben

  Alt 11. Dez 2010, 19:27
Willkommen in der
Was dir fehlt ist Delphi-Referenz durchsuchenModalResult

Um mal die Komplett-lern-lösung zu geben:

Form1:
Delphi-Quellcode:
unit Unit1;

interface

uses
  SysUtils, Classes, Controls, Forms, uConst, Grids, Unit2;

type
  TForm1 = class(TForm)
    strngrd1: TStringGrid;
    procedure strngrd1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    personen: array[1..9] of TPerson;
    procedure StringGridInit;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  //Felder mit beispielwerten füllen
  for i := 1 to 9 do
  begin
    personen[i].id := i;
    personen[i].vorname := 'Willi ' + IntToStr(i);
    personen[i].nachname := 'Mustermann';
    personen[i].geburtstag := StrToDate('31.12.1999');
  end;

  StringGridInit;
end;

procedure TForm1.StringGridInit;
var
  i: Integer;
begin
  with strngrd1 do
  begin
    RowCount := length(personen) + 1;
    Cells[0, 0] := 'ID';
    Cells[1, 0] := 'Vorname';
    Cells[2, 0] := 'Name';
    Cells[3, 0] := 'Geburtsdatum';
  end;

  for i := 1 to length(Personen) do
    with strngrd1 do
    begin
      Cells[0, i] := IntToStr(personen[i].id);
      Cells[1, i] := personen[i].vorname;
      Cells[2, i] := personen[i].nachname;
      Cells[3, i] := DateToStr(personen[i].geburtstag);
    end
end;

procedure TForm1.strngrd1DblClick(Sender: TObject);
var
  frm2: TForm2;
begin
  frm2 := TForm2.Create(Self);
  frm2.edt1.text := personen[strngrd1.Row].vorname;
  frm2.edt2.text := personen[strngrd1.Row].nachname;
  frm2.edt3.text := DateToStr(personen[strngrd1.Row].geburtstag);
  case frm2.ShowModal of
    mrOk:
    begin
      personen[strngrd1.Row].vorname := frm2.edt1.text;
      personen[strngrd1.Row].nachname := frm2.edt2.text;
      personen[strngrd1.Row].geburtstag := StrToDate(frm2.edt3.text);

      with strngrd1 do
      begin
        Cells[1, strngrd1.Row] := personen[strngrd1.Row].vorname;
        Cells[2, strngrd1.Row] := personen[strngrd1.Row].nachname;
        Cells[3, strngrd1.Row] := DateToStr(personen[strngrd1.Row].geburtstag);
      end;
    end
  end;
  frm2.Free;
end;

end.

Form2:
Delphi-Quellcode:
unit Unit2;

interface

uses
  Classes, Controls, Forms,
  StdCtrls;

type
  TForm2 = class(TForm)
    btnCancel: TButton;
    btnSave: TButton;
    edt1: TEdit;
    edt2: TEdit;
    edt3: TEdit;
    procedure btnCancelClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.btnCancelClick(Sender: TObject);
begin
  ModalResult := mrCancel;
end;

procedure TForm2.btnSaveClick(Sender: TObject);
begin
  ModalResult := mrOk;
end;

end.

uConst: (Gemeinsme Dinge um uses-Konflikten vorzubeugen)
Delphi-Quellcode:
unit uConst;

interface

type
  TPerson = record
    id: integer;
    vorname: string[20];
    nachname: string[30];
    geburtstag: TDateTime;
  end;

implementation

end.
  Mit Zitat antworten Zitat
 


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 07:45 Uhr.
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