AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Brauche Starthilfe für OOP mit Class und Methode
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Starthilfe für OOP mit Class und Methode

Ein Thema von EccoBravo · begonnen am 22. Apr 2008 · letzter Beitrag vom 22. Apr 2008
Antwort Antwort
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#1

Brauche Starthilfe für OOP mit Class und Methode

  Alt 22. Apr 2008, 17:26
Hallo,

will mich von der proceduralen Programmierung endlich lösen und brauche etwas Starthilfe

Hier mein Problem mit dem ich beginnen möchte:

Was möchte ich mit dem Programm machen?

Wenn ich in die EditFeldern des Form1:TForm
E_Name:TEdit einen PersonenNamen
und
E_geb:TEdit dessen Geburtsdatum
eingebe
so soll eine Methode im Hintergrund eine ID dieser Person aus Geburtsdatum und NamensInitialen generieren und diese in das EditFeld
E_ID:TEdit schreiben.

in der Form
Delphi-Quellcode:
E_Name.Text:='Meier, Hans';
E_geb.Text:='12.11.44'

E_ID.Text='121144MH-0'
Hier nun mein CodeVersuch

Delphi-Quellcode:
 unit EB_Foto_Unit1;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,...;

type
    TSatz = object
        PName: string;
        geb: string;
        ID: string;
        
        procedure bilde_ID;
    end;

   ...

    TForm1 = class(TForm)
        E_Name: TEdit;
        E_ID: TEdit;
        E_geboren: TEdit;
        E_Inhalt: TEdit;
        E_Datum: TEdit;
   ...
      end;

var
    Form1: TForm1;
 
    Satz: TSatz;
   

implementation

uses ...;

{$R *.dfm}

...

procedure TForm1.FormCreate(Sender: TObject);
var
    i: integer;
   
begin
    ...
    Satz:=TSatz.create // IDE meckert diese Stelle an !!
    
    ...
end;



procedure TForm1.E_gebChange(Sender: TObject);
begin
    Satz.geb := Text;
    E_ID.Text := Satz.ID;
end;

procedure TForm1.E_NameChange(Sender: TObject);
begin
    Satz.PName := Text;
    E_ID.Text := Satz.ID;
end;

   ...

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Methoden von TSatz

procedure TSatz.bilde_ID;
var
    s0, s1, s2, s3, s4, s5, s6, s7: string;
    n0, n1, n2, n3, n4, n5, n6, n7: integer;
begin
    s0 := geb; // hier kommt das E_geb hinein
    n0 := length(s0);
    n1 := pos('.', s0);
    s1 := copy(s0, 1, n1 - 1);
    s4 := copy(s0, n1 + 1, n0 - n1);
    n2 := pos('.', s4);
    s2 := copy(s4, 1, n2 - 1);
    s3 := copy(s4, n2 + 1, 6);
    s0 := PName; // hier kommt das E_Name hinein
    n5 := pos(', ', s0);
    s5 := copy(s0, 1, 1);
    s6 := copy(s0, n5 + 2, 1);
    if length(s1) = 1 then
        s1 := '0' + s1;
    if length(s2) = 1 then
        s2 := '0' + S2;
    if length(s3) > 2 then
        s3 := copy(s3, length(s3) - 1, 2);
    s7 := s1 + s2 + s3 + s5 + s6 + '-0';
    ID := s7; // hier stünde ja das Satz.ID bereit
end;

//..............................................................................

end.
Aber der Code macht es nicht,

erstens meckert die IDE diese Strlle
 Satz:=TSatz.create // IDE meckert diese Stelle an !! an

und wenn ich diese Stelle fälschlicherweise weglasse,
so erscheint im E_ID:TEdit
nach den Eingaben in E_Name:TEdit und E_geb:TEdit
keine ID

Ja, ich weiss, diese Frage ist megablöd, aber ich bin und war eben ein eingefleischter proceduraler Programmierer. Das soll sich ja jetzt ändern

Danke für die Hilfe

E. B.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Brauche Starthilfe für OOP mit Class und Methode

  Alt 22. Apr 2008, 17:36
Hi,

ich hab mal folgenden Lösungsvorschlag für Dich:

Delphi-Quellcode:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TSatz = class(TObject)
  private
    FGeb: String;
    FName: String;
    function GetID: string;
  public
    property Name: String read FName write FName;
    property Geb: String read FGeb write FGeb;
    property ID: string read GetID;
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

{ TSatz }

function TSatz.GetID: string;
var
  tmpDatum: String;
  tmpName: String;
  tmpInitial: String;
begin
  tmpDatum := StringReplace(Geb, '.', '', [rfReplaceAll]);
  tmpName := Trim(Name);
  tmpInitial := tmpName[1] + Copy(tmpName, Pos(',', tmpName) + 2, 1);
  Result := tmpDatum + tmpInitial + '-0';
end;

procedure TForm3.Button1Click(Sender: TObject);
var
  Satz: TSatz;
begin
  Satz := TSatz.Create;
  Satz.Name := 'Rauber, Manuel';
  Satz.Geb := '07.09.90';
  ShowMessage(Satz.ID);
end;

end.
Hier gibt es einen kleinen Crashkurs zur OOP.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Brauche Starthilfe für OOP mit Class und Methode

  Alt 22. Apr 2008, 17:39
Naja, ich würde Geb als TDate definieren, aber war ja auch nur ein Beispiel, gelle?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Brauche Starthilfe für OOP mit Class und Methode

  Alt 22. Apr 2008, 17:41
Natürlich als TDate, aber mit einem String ging es schneller
Geht ja auch nur um das Prinzip. Wie es EWeiss EccoBravo dann macht, ist ja ihm selbst überlassen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Brauche Starthilfe für OOP mit Class und Methode

  Alt 22. Apr 2008, 17:46
Wie EWeiss es macht, weiß er glaub ich selbst, EccoBravo hatte gefragt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Brauche Starthilfe für OOP mit Class und Methode

  Alt 22. Apr 2008, 17:47
Ach Mist, sorry EccoBravo
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Brauche Starthilfe für OOP mit Class und Methode

  Alt 22. Apr 2008, 18:33
okidoki, kein Problem.

die Sache scheint ansich zu laufen, werde damit
(StringReplace Trim, ... ) noch etwas herumprobieren

Anstelle .PName stand in meinem Programm .Name, und diesen hat er im DP-Forum Code blau gemacht (weiss nicht warum), deshalb habe ich ihn hier anders genannt.

Grüße und Danke

E. B.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Antwort Antwort


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