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


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