AGB  ·  Datenschutz  ·  Impressum  







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

MDIAPP und dem Vererben

Ein Thema von Kunoishi · begonnen am 24. Jul 2009 · letzter Beitrag vom 25. Jul 2009
Antwort Antwort
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#1

MDIAPP und dem Vererben

  Alt 24. Jul 2009, 18:23
ich komme mit diesem Vererben oder Kindfenstern in der MDI-Anwendung nicht klar
ich möchte den Eintrag von einem Editfeld welches sich in einem Kind-Fenster befindet in ein
anderes Kindfenster übergeben.

ich komme aber damit nicht klar

könnt ihr mir dabei helfen ?
mfg
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#2

Re: MDIAPP und dem Vererben

  Alt 24. Jul 2009, 18:55
merke dir beim erstellen der Fensterinstanz in welcher sich das Edit befindet deren Handle. Dann kannst du auch immer wieder schön darauf zugreiffen.
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#3

Re: MDIAPP und dem Vererben

  Alt 24. Jul 2009, 19:01
ich versuche mich ja in delphi stelle mich aber einwenig pattich an
und finde deshalb hier keinen anfang
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: MDIAPP und dem Vererben

  Alt 24. Jul 2009, 19:18
hab grad kein Delphi zur Hand. Post mir mal den Code in welchem du die Fensterinstanz erstellst dann kann ich dir vielleicht einen Tipp geben.
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#5

Re: MDIAPP und dem Vererben

  Alt 24. Jul 2009, 19:37
mein Objektfenster sieht derzeit so aus
Delphi-Quellcode:
unit ObjektDaten;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, ComCtrls, Menus;

type
  tDaten = record
           OName: string[30];
           OObjektgruppe: string[30];
           OStrasse: string[25];
           OPlz: string[8];
           OOrt: string[20];
           OVTel: string[25];
           OTel: string[5];
           OVFax: string[5];
           OFax: string[5];
           OVMobil: string[5];
           OMobil: string[5];
           OVService: string[5];
           OService: string[5];
           OWebseite: string[5];
           OEmail: string[5];
           OZusatz: string[5];
           OPDienststelle: string[30];
           OPStrasse: string[25];
           OPPlz: string[8];
           OPOrt: string[20];
           OPVTel: string[25];
           OPTel: string[5];
           OPVFax: string[5];
           OPFax: string[5];
           OPSachbearbeiter: string[5];
           OPZusatz: string[5];
          end;

  TObjekt = class(TForm)
    OpenDialogdatei: TOpenDialog;
    SaveDialogDatei: TSaveDialog;
    PageControlObjektDaten: TPageControl;
    TabSheet1: TTabSheet;
    PAdresseGroupBox: TGroupBox;
    Panel2: TPanel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label18: TLabel;
    EditOStrasse: TEdit;
    EditOPLZ: TEdit;
    EditOOrt: TEdit;
    EditOVTel: TEdit;
    EditOTel: TEdit;
    EditOVFax: TEdit;
    EditOFax: TEdit;
    EditOVMobil: TEdit;
    EditOMobil: TEdit;
    EditOVService: TEdit;
    EditOService: TEdit;
    EditOWebseite: TEdit;
    EditOEMail: TEdit;
    EditOZusatz: TMemo;
    ObjektzuordnungGroupBox: TGroupBox;
    Label13: TLabel;
    Label14: TLabel;
    EditOName: TEdit;
    EditOObjektgruppe: TEdit;
    AbteilungGroupBox: TGroupBox;
    Abteilungsverwaltung: TDBGrid;
    Panel7: TPanel;
    Abteilungssuche: TRadioGroup;
    Panel8: TPanel;
    ObjektMenu: TMainMenu;
    File1: TMenuItem;
    Edit1: TMenuItem;
    CutItem: TMenuItem;
    CopyItem: TMenuItem;
    PasteItem: TMenuItem;
    Window1: TMenuItem;
    WindowCascadeItem: TMenuItem;
    WindowTileItem: TMenuItem;
    WindowTileItem2: TMenuItem;
    WindowMinimizeItem: TMenuItem;
    WindowArrangeItem: TMenuItem;
    Administrator1: TMenuItem;
    Lizenz1: TMenuItem;
    Lizenzinhaber1: TMenuItem;
    Help1: TMenuItem;
    HelpAboutItem: TMenuItem;
    Beenden1: TMenuItem;
    atbestandsverwaltung1: TMenuItem;
    N1: TMenuItem;
    Steuerung1: TMenuItem;
    gehezumObjekt1: TMenuItem;
    N2: TMenuItem;
    nchterDatensatz1: TMenuItem;
    vorigerDatensatz1: TMenuItem;
    letzterDatensatz1: TMenuItem;
    neuesObjektanlegen1: TMenuItem;
    N3: TMenuItem;
    nderungenspeichern1: TMenuItem;
    Panel4: TPanel;
    Panel11: TPanel;
    ObjektButton: TButton;
    Button5: TButton;
    Button6: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction); // Objekt verlassen
    procedure OPNameChange(Sender: TObject);
    procedure CutItemClick(Sender: TObject);
    procedure gehezumObjekt1Click(Sender: TObject); //zum ersten Objekt
    procedure Beenden1Click(Sender: TObject); //Objektfenster Schließen
    procedure atbestandsverwaltung1Click(Sender: TObject);
    procedure nchterDatensatz1Click(Sender: TObject); //zum nächsten Objekt
    procedure vorigerDatensatz1Click(Sender: TObject); //zum vorigen Objekt
    procedure letzterDatensatz1Click(Sender: TObject); //zum letzten Objekt
    procedure neuesObjektanlegen1Click(Sender: TObject); //neues Objekt anlegen
    procedure nderungenspeichern1Click(Sender: TObject);
    procedure ObjektButtonClick(Sender: TObject); //änderungen der Objektdaten speichern
  private
    { Private-Deklarationen }
    procedure CreateSachverhaltDaten (const Name: string);// SachverhaltDaten
  public
    { Public-Deklarationen }
    dateiname:string;
    datei: file of tDaten;
    daten: tDaten;
  end;

var
  Objekt: TObjekt;

  implementation

{$R *.DFM}
uses Verwaltung, Sachverhalt;


procedure TObjekt.atbestandsverwaltung1Click(Sender: TObject); // Sachverhalt
begin // Sachverhalt
CreateSachverhaltDaten ('Sachverhalt'); // Sachverhalt
end; // Sachverhalt
                                                                // Sachverhalt
procedure TObjekt.CreateSachverhaltdaten(const Name: string); // Sachverhalt
var // Sachverhalt
  Child: TSachverhaltForm; // Sachverhalt
begin // Sachverhalt
  Child := TSachverhaltForm.Create(Application); // Sachverhalt
  Child.Caption := Name; // Sachverhalt
end; // Sachverhalt

procedure TObjekt.FormCreate(Sender: TObject);
begin
  dateiname:='';
  MainForm.Objektverwltung.Visible:=False;

end;

procedure TObjekt.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if dateiname <> 'then
   closefile(datei);
end;

procedure TObjekt.OPNameChange(Sender: TObject);
begin
OPName.Text:=EditOName.text;
OPObjektgruppe.Text:=EditOObjektgruppe.Text;
end;

procedure TObjekt.FormClose(Sender: TObject; var Action: TCloseAction); // Objekt verlassen
begin // Objekt verlassen
  Action := caFree; // Objekt verlassen
  MainForm.Objektverwltung.Visible:=True; // Objekt verlassen
end;


procedure TObjekt.CutItemClick(Sender: TObject);
begin
  try
     reset(datei);
     seek(datei, filesize(datei));
         EditOName.Text:='';
         EditOObjektgruppe.Text:='';
         EditOStrasse.Text:='';
         EditOPlz.Text:='';
         EditOOrt.Text:='';
         EditOVTel.Text:='';
         EditOTel.Text:='';
         EditOVFax.Text:='';
         EditOFax.Text:='';
         EditOVMobil.Text:='';
         EditOMobil.Text:='';
         EditOVService.Text:='';
         EditOService.Text:='';
         EditOWebseite.Text:='';
         EditOEmail.Text:='';
         EditOZusatz.Text:='';


    daten.OName:=EditOName.text;
    daten.OObjektgruppe:=EditOObjektgruppe.text;
    daten.OStrasse:=EditOStrasse.text;
    daten.OPlz:=EditOPlz.text;
    daten.OOrt:=EditOOrt.text;
    daten.OVTel:=EditOVTel.text;
    daten.OTel:=EditOTel.text;
    daten.OVFax:=EditOVFax.text;
    daten.OFax:=EditOFax.text;
    daten.OVMobil:=EditOVMobil.text;
    daten.OMobil:=EditOMobil.text;
    daten.OVService:=EditOVService.text;
    daten.OService:=EditOService.text;
    daten.OWebseite:=EditOWebseite.text;
    daten.OEmail:=EditOEmail.text;
    daten.OZusatz:=EditOZusatz.text;

     write(datei,daten);
     editOname.setfocus
  except
     showmessage('Fehler: Zuerst Objekt öffnen!')
  end
end;


procedure TObjekt.gehezumObjekt1Click(Sender: TObject); //erster Datensatz
begin //erster Datensatz
  try //erster Datensatz
     reset(datei); //erster Datensatz
     if not eof(datei) then //erster Datensatz
       begin //erster Datensatz
         read(datei,daten); //erster Datensatz
         EditOName.Text:=daten.OName; //erster Datensatz
         EditOObjektgruppe.Text:=daten.OObjektgruppe; //erster Datensatz
         EditOStrasse.Text:=daten.OStrasse; //erster Datensatz
         EditOPlz.Text:=daten.OPlz; //erster Datensatz
         EditOOrt.Text:=daten.OOrt; //erster Datensatz
         EditOVTel.Text:=daten.OVTel; //erster Datensatz
         EditOTel.Text:=daten.OTel; //erster Datensatz
         EditOVFax.Text:=daten.OVFax; //erster Datensatz
         EditOFax.Text:=daten.OFax; //erster Datensatz
         EditOVMobil.Text:=daten.OVMobil; //erster Datensatz
         EditOMobil.Text:=daten.OMobil; //erster Datensatz
         EditOVService.Text:=daten.OVService; //erster Datensatz
         EditOService.Text:=daten.OService; //erster Datensatz
         EditOWebseite.Text:=daten.OWebseite; //erster Datensatz
         EditOEmail.Text:=daten.OEmail; //erster Datensatz
         EditOZusatz.Text:=daten.OZusatz; //erster Datensatz
         OPStrasse.Text:=daten.OPStrasse; //erster Datensatz
         OPPlz.Text:=daten.OPPlz; //erster Datensatz
         OPOrt.Text:=daten.OPOrt; //erster Datensatz
         OPVTel.Text:=daten.OPVTel; //erster Datensatz
         OPTel.Text:=daten.OPTel; //erster Datensatz
         OPVFax.Text:=daten.OPVFax; //erster Datensatz
         OPFax.Text:=daten.OPFax; //erster Datensatz
         OPSachbearbeiter.Text:=daten.OPSachbearbeiter; //ersten Datensatz
         OPZusatz.Text:=daten.OPZusatz; //erster Datensatz

       end //erster Datensatz
     else showmessage('Dateiende erreicht') //erster Datensatz
  except //erster Datensatz
     showmessage('Fehler: Zuerst Datei öffnen!') //erster Datensatz
  end //erster Datensatz
end; //erster Datensatz

procedure TObjekt.Beenden1Click(Sender: TObject);
begin
Close;
end;

procedure TObjekt.nchterDatensatz1Click(Sender: TObject); //zum nächsten Objekt
begin //zum nächsten Objekt
   try //zum nächsten Objekt
     if not eof(datei) then //zum nächsten Objekt
      begin //zum nächsten Objekt
        read(datei,daten); //zum nächsten Objekt
         EditOName.Text:=daten.OName; //zum nächsten Objekt
         EditOObjektgruppe.Text:=daten.OObjektgruppe; //zum nächsten Objekt
         EditOStrasse.Text:=daten.OStrasse; //zum nächsten Objekt
         EditOPlz.Text:=daten.OPlz; //zum nächsten Objekt
         EditOOrt.Text:=daten.OOrt; //zum nächsten Objekt
         EditOVTel.Text:=daten.OVTel; //zum nächsten Objekt
         EditOTel.Text:=daten.OTel; //zum nächsten Objekt
         EditOVFax.Text:=daten.OVFax; //zum nächsten Objekt
         EditOFax.Text:=daten.OFax; //zum nächsten Objekt
         EditOVMobil.Text:=daten.OVMobil; //zum nächsten Objekt
         EditOMobil.Text:=daten.OMobil; //zum nächsten Objekt
         EditOVService.Text:=daten.OVService; //zum nächsten Objekt
         EditOService.Text:=daten.OService; //zum nächsten Objekt
         EditOWebseite.Text:=daten.OWebseite; //zum nächsten Objekt
         EditOEmail.Text:=daten.OEmail; //zum nächsten Objekt
         EditOZusatz.Text:=daten.OZusatz; //zum nächsten Objekt
         OPStrasse.Text:=daten.OPStrasse; //zum nächsten Objekt
         OPPlz.Text:=daten.OPPlz; //zum nächsten Objekt
         OPOrt.Text:=daten.OPOrt; //zum nächsten Objekt
         OPVTel.Text:=daten.OPVTel; //zum nächsten Objekt
         OPTel.Text:=daten.OPTel; //zum nächsten Objekt
         OPVFax.Text:=daten.OPVFax; //zum nächsten Objekt
         OPFax.Text:=daten.OPFax; //zum nächsten Objekt
         OPSachbearbeiter.Text:=daten.OPSachbearbeiter; //zum nächsten Objekt
         OPZusatz.Text:=daten.OPZusatz; //zum nächsten Objekt
      end //zum nächsten Objekt
     else showmessage('Dateiende erreicht!') //zum nächsten Objekt
   except //zum nächsten Objekt
     showmessage('Fehler: Zuerst Datei öffnen!') //zum nächsten Objekt
   end //zum nächsten Objekt
                                                          //zum nächsten Objekt
end; //zum nächsten Objekt

procedure TObjekt.vorigerDatensatz1Click(Sender: TObject);//zum vorigen Objekt
begin //zum vorigen Objekt
  try //zum vorigen Objekt
     if filepos(datei)>1 then //zum vorigen Objekt
      begin //zum vorigen Objekt
        seek(datei,filepos(datei)-2); //zum vorigen Objekt
        read(datei,daten); //zum vorigen Objekt
         EditOName.Text:=daten.OName; //zum vorigen Objekt
         EditOObjektgruppe.Text:=daten.OObjektgruppe; //zum vorigen Objekt
         EditOStrasse.Text:=daten.OStrasse; //zum vorigen Objekt
         EditOPlz.Text:=daten.OPlz; //zum vorigen Objekt
         EditOOrt.Text:=daten.OOrt; //zum vorigen Objekt
         EditOVTel.Text:=daten.OVTel; //zum vorigen Objekt
         EditOTel.Text:=daten.OTel; //zum vorigen Objekt
         EditOVFax.Text:=daten.OVFax; //zum vorigen Objekt
         EditOFax.Text:=daten.OFax; //zum vorigen Objekt
         EditOVMobil.Text:=daten.OVMobil; //zum vorigen Objekt
         EditOMobil.Text:=daten.OMobil; //zum vorigen Objekt
         EditOVService.Text:=daten.OVService; //zum vorigen Objekt
         EditOService.Text:=daten.OService; //zum vorigen Objekt
         EditOWebseite.Text:=daten.OWebseite; //zum vorigen Objekt
         EditOEmail.Text:=daten.OEmail; //zum vorigen Objekt
         EditOZusatz.Text:=daten.OZusatz; //zum vorigen Objekt
         OPStrasse.Text:=daten.OPStrasse; //zum vorigen Objekt
         OPPlz.Text:=daten.OPPlz; //zum vorigen Objekt
         OPOrt.Text:=daten.OPOrt; //zum vorigen Objekt
         OPVTel.Text:=daten.OPVTel; //zum vorigen Objekt
         OPTel.Text:=daten.OPTel; //zum vorigen Objekt
         OPVFax.Text:=daten.OPVFax; //zum vorigen Objekt
         OPFax.Text:=daten.OPFax; //zum vorigen Objekt
         OPSachbearbeiter.Text:=daten.OPSachbearbeiter; //zum vorigen Objekt
         OPZusatz.Text:=daten.OPZusatz; //zum vorigen Objekt
      end //zum vorigen Objekt
     else //zum vorigen Objekt
       showmessage('Dateianfang erreicht!') //zum vorigen Objekt
   except //zum vorigen Objekt
     showmessage('Fehler: Zuerst Objektdatei öffnen!') //zum vorigen Objekt
   end //zum vorigen Objekt
                                                          //zum vorigen Objekt
end; //zum vorigen Objekt

procedure TObjekt.letzterDatensatz1Click(Sender: TObject);//zum letzten Objekt
begin //zum letzten Objekt
  try //zum letzten Objekt
     reset(datei); //zum letzten Objekt
     seek(datei, filesize(datei)-1); //zum letzten Objekt
     if not (filesize(datei) =0) then //zum letzten Objekt
       begin //zum letzten Objekt
         read(datei,daten); //zum letzten Objekt
         EditOName.Text:=daten.OName; //zum letzten Objekt
         EditOObjektgruppe.Text:=daten.OObjektgruppe; //zum letzten Objekt
         EditOStrasse.Text:=daten.OStrasse; //zum letzten Objekt
         EditOPlz.Text:=daten.OPlz; //zum letzten Objekt
         EditOOrt.Text:=daten.OOrt; //zum letzten Objekt
         EditOVTel.Text:=daten.OVTel; //zum letzten Objekt
         EditOTel.Text:=daten.OTel; //zum letzten Objekt
         EditOVFax.Text:=daten.OVFax; //zum letzten Objekt
         EditOFax.Text:=daten.OFax; //zum letzten Objekt
         EditOVMobil.Text:=daten.OVMobil; //zum letzten Objekt
         EditOMobil.Text:=daten.OMobil; //zum letzten Objekt
         EditOVService.Text:=daten.OVService; //zum letzten Objekt
         EditOService.Text:=daten.OService; //zum letzten Objekt
         EditOWebseite.Text:=daten.OWebseite; //zum letzten Objekt
         EditOEmail.Text:=daten.OEmail; //zum letzten Objekt
         EditOZusatz.Text:=daten.OZusatz; //zum letzten Objekt
         OPStrasse.Text:=daten.OPStrasse; //zum letzten Objekt
         OPPlz.Text:=daten.OPPlz; //zum letzten Objekt
         OPOrt.Text:=daten.OPOrt; //zum letzten Objekt
         OPVTel.Text:=daten.OPVTel; //zum letzten Objekt
         OPTel.Text:=daten.OPTel; //zum letzten Objekt
         OPVFax.Text:=daten.OPVFax; //zum letzten Objekt
         OPFax.Text:=daten.OPFax; //zum letzten Objekt
         OPSachbearbeiter.Text:=daten.OPSachbearbeiter; //zum letzten Objekt
         OPZusatz.Text:=daten.OPZusatz; //zum letzten Objekt
       end //zum letzten Objekt
     else showmessage('Objektdatei enthält kein Objekt') //zum letzten Objekt
  except //zum letzten Objekt
     showmessage('Fehler: Zuerst Objektdatei öffnen!') //zum letzten Objekt
  end //zum letzten Objekt
                                                          //zum letzten Objekt
end; //zum letzten Objekt

procedure TObjekt.neuesObjektanlegen1Click(Sender: TObject); //neues Objekt erfassen
begin //neues Objekt erfassen
  try //neues Objekt erfassen
     reset(datei); //neues Objekt erfassen
     seek(datei, filesize(datei)); //neues Objekt erfassen
     EditOName.Text:=''; //neues Objekt erfassen
     EditOObjektgruppe.Text:=''; //neues Objekt erfassen
     EditOStrasse.Text:=''; //neues Objekt erfassen
     EditOPlz.Text:=''; //neues Objekt erfassen
     EditOOrt.Text:=''; //neues Objekt erfassen
     EditOVTel.Text:=''; //neues Objekt erfassen
     EditOTel.Text:=''; //neues Objekt erfassen
     EditOVFax.Text:=''; //neues Objekt erfassen
     EditOFax.Text:=''; //neues Objekt erfassen
     EditOVMobil.Text:=''; //neues Objekt erfassen
     EditOMobil.Text:=''; //neues Objekt erfassen
     EditOVService.Text:=''; //neues Objekt erfassen
     EditOService.Text:=''; //neues Objekt erfassen
     EditOWebseite.Text:=''; //neues Objekt erfassen
     EditOEmail.Text:=''; //neues Objekt erfassen
     EditOZusatz.Text:=''; //neues Objekt erfassen
     OPStrasse.Text:=''; //neues Objekt erfassen
     OPPlz.Text:=''; //neues Objekt erfassen
     OPOrt.Text:=''; //neues Objekt erfassen
     OPVTel.Text:=''; //neues Objekt erfassen
     OPTel.Text:=''; //neues Objekt erfassen
     OPVFax.Text:=''; //neues Objekt erfassen
     OPFax.Text:=''; //neues Objekt erfassen
     OPSachbearbeiter.Text:=''; //neues Objekt erfassen
     OPZusatz.Text:=''; //neues Objekt erfassen
                                                             //neues Objekt erfassen
     daten.OName:=EditOName.text; //neues Objekt erfassen
     daten.OObjektgruppe:=EditOObjektgruppe.text; //neues Objekt erfassen
     daten.OStrasse:=EditOStrasse.text; //neues Objekt erfassen
     daten.OPlz:=EditOPlz.text; //neues Objekt erfassen
     daten.OOrt:=EditOOrt.text; //neues Objekt erfassen
     daten.OVTel:=EditOVTel.text; //neues Objekt erfassen
     daten.OTel:=EditOTel.text; //neues Objekt erfassen
     daten.OVFax:=EditOVFax.text; //neues Objekt erfassen
     daten.OFax:=EditOFax.text; //neues Objekt erfassen
     daten.OVMobil:=EditOVMobil.text; //neues Objekt erfassen
     daten.OMobil:=EditOMobil.text; //neues Objekt erfassen
     daten.OVService:=EditOVService.text; //neues Objekt erfassen
     daten.OService:=EditOService.text; //neues Objekt erfassen
     daten.OWebseite:=EditOWebseite.text; //neues Objekt erfassen
     daten.OEmail:=EditOEmail.text; //neues Objekt erfassen
     daten.OZusatz:=EditOZusatz.text; //neues Objekt erfassen
     daten.OPStrasse:=OPStrasse.Text; //neues Objekt erfassen
     daten.OPPlz:=OPPlz.Text; //neues Objekt erfassen
     daten.OPOrt:=OPOrt.Text; //neues Objekt erfassen
     daten.OPVTel:=OPVTel.Text; //neues Objekt erfassen
     daten.OPTel:=OPTel.Text; //neues Objekt erfassen
     daten.OPVFax:=OPVFax.Text; //neues Objekt erfassen
     daten.OPFax:=OPFax.Text; //neues Objekt erfassen
     daten.OPSachbearbeiter:=OPSachbearbeiter.Text; //neues Objekt erfassen
     daten.OPZusatz:=OPZusatz.Text; //neues Objekt erfassen
     write(datei,daten); //neues Objekt erfassen
     EditOName.setfocus //neues Objekt erfassen
  except //neues Objekt erfassen
     showmessage('Fehler: Zuerst Objektdaten öffnen!') //neues Objekt erfassen
  end //neues Objekt erfassen
                                                             //neues Objekt erfassen
end; //neues Objekt erfassen

procedure TObjekt.nderungenspeichern1Click(Sender: TObject); //änderungen Speichern
begin //änderungen Speichern
     daten.OName:=EditOName.text; //änderungen Speichern
     daten.OObjektgruppe:=EditOObjektgruppe.text; //änderungen Speichern
     daten.OStrasse:=EditOStrasse.text; //änderungen Speichern
     daten.OPlz:=EditOPlz.text; //änderungen Speichern
     daten.OOrt:=EditOOrt.text; //änderungen Speichern
     daten.OVTel:=EditOVTel.text; //änderungen Speichern
     daten.OTel:=EditOTel.text; //änderungen Speichern
     daten.OVFax:=EditOVFax.text; //änderungen Speichern
     daten.OFax:=EditOFax.text; //änderungen Speichern
     daten.OVMobil:=EditOVMobil.text; //änderungen Speichern
     daten.OMobil:=EditOMobil.text; //änderungen Speichern
     daten.OVService:=EditOVService.text; //änderungen Speichern
     daten.OService:=EditOService.text; //änderungen Speichern
     daten.OWebseite:=EditOWebseite.text; //änderungen Speichern
     daten.OEmail:=EditOEmail.text; //änderungen Speichern
     daten.OZusatz:=EditOZusatz.text; //änderungen Speichern
     daten.OPStrasse:=OPStrasse.Text; //änderungen Speichern
     daten.OPPlz:=OPPlz.Text; //änderungen Speichern
     daten.OPOrt:=OPOrt.Text; //änderungen Speichern
     daten.OPVTel:=OPVTel.Text; //änderungen Speichern
     daten.OPTel:=OPTel.Text; //änderungen Speichern
     daten.OPVFax:=OPVFax.Text; //änderungen Speichern
     daten.OPFax:=OPFax.Text; //änderungen Speichern
     daten.OPSachbearbeiter:=OPSachbearbeiter.Text; //änderungen Speichern
     daten.OPZusatz:=OPZusatz.Text; //änderungen Speichern
    try //änderungen Speichern
      seek(datei,filepos(datei)-1); //änderungen Speichern
      write(datei,daten) //änderungen Speichern
    except //änderungen Speichern
      showmessage('Objekt zuerst öffnen bzw. kein Objekt angezeigt')//änderungen Speichern
    end //änderungen Speichern
                                                             //änderungen Speichern
end; //änderungen Speichern

procedure TObjekt.ObjektButtonClick(Sender: TObject);
begin
  opendialogdatei.Title := 'Objektdatei Öffnen';
// opendialogdatei.InitialDir := 'C:/Programme/';
  opendialogdatei.DefaultExt := '.dat';
  opendialogdatei.Filter := 'Objektdaten (*.dat)|*.dat|Alle Dateien (*.*)|*.*';

  opendialogdatei.Options := [ofAllowMultiSelect, ofPathMustExist,ofShowHelp];
  opendialogdatei.Options := [ofPathMustExist,ofShowHelp];
                                                          //Objektdaten öffnen
    if opendialogdatei.execute then //Objektdaten öffnen
       begin //Objektdaten öffnen
        dateiname:=opendialogdatei.filename; //Objektdaten öffnen
        assignfile(datei,dateiname); //Objektdaten öffnen
        atbestandsverwaltung1.Enabled:=True; //Objektdaten öffnen
        Steuerung1.Visible:=True; //Objektdaten öffnen
        ObjektButton.Enabled:=False;
        MainForm.ObjektOpen.Enabled:=False;

        try //Objektdaten öffnen
          reset(datei) //Objektdaten öffnen
        except //Objektdaten öffnen
          dateiname:=''; //Objektdaten öffnen
          showmessage('Objektdatei existiert nicht') //Objektdaten öffnen
        end //Objektdaten öffnen
       end; //Objektdaten öffnen
           EditOName.clear; //Objektdaten öffnen
           EditOObjektgruppe.clear; //Objektdaten öffnen
           EditOStrasse.clear; //Objektdaten öffnen
           EditOPlz.clear; //Objektdaten öffnen
           EditOOrt.clear; //Objektdaten öffnen
           EditOVTel.clear; //Objektdaten öffnen
           EditOTel.clear; //Objektdaten öffnen
           EditOVFax.clear; //Objektdaten öffnen
           EditOFax.clear; //Objektdaten öffnen
           EditOVMobil.clear; //Objektdaten öffnen
           EditOMobil.clear; //Objektdaten öffnen
           EditOVService.clear; //Objektdaten öffnen
           EditOService.clear; //Objektdaten öffnen
           EditOWebseite.clear; //Objektdaten öffnen
           EditOEmail.clear; //Objektdaten öffnen
           EditOZusatz.clear; //Objektdaten öffnen
           OPStrasse.clear; //Objektdaten öffnen
           OPPlz.clear; //Objektdaten öffnen
           OPOrt.clear; //Objektdaten öffnen
           OPVTel.clear; //Objektdaten öffnen
           OPTel.clear; //Objektdaten öffnen
           OPVFax.clear; //Objektdaten öffnen
           OPFax.clear; //Objektdaten öffnen
           OPSachbearbeiter.clear; //Objektdaten öffnen
           OPZusatz.clear; //Objektdaten öffnen
  end; //Objektdaten öffnen

end.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: MDIAPP und dem Vererben

  Alt 24. Jul 2009, 22:32
@Kunoishi
Mal ganz unabhängig von deinem Problem:
deine Art den Sourcecode zu kommentieren ist extrem unproduktiv.
Du kannst doch nicht an jede Zeile einer Methode einen völlig belanglosen Text anhängen,
und diesen Text exakt untereinander angeordnet halten.
So brauchst du mehr Zeit für das korrekte Ausrichten der Kommentare als für das Programmieren selber.
Ich habe ehrlich gesagt noch nie eine so schlechte Art zu Kommentieren gesehen.
Besser wäre:
Delphi-Quellcode:
{
der altuelle Datensatz wird ausgelesen und die Daten
auf das Fomular übertragen
letzte Änderung: 2009-03-14
}

procedure TObjekt.gehezumObjekt1Click(Sender: TObject);
begin
  // hier der Sourcecode OHNE Kommentare
  // Kommentar gibts nur, wenn irgend etwas besonderes zu erklären wäre
end;
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#7

Re: MDIAPP und dem Vererben

  Alt 25. Jul 2009, 08:27
Delphi-Quellcode:
  
  
...

  public
    { Public-Deklarationen }
    dateiname:string;
    datei: file of tDaten;
    daten: tDaten;
    // speichert die Handles deiner Childs
    Fenster: array of Cardinal;
  end;

...

procedure TObjekt.CreateSachverhaltdaten(const Name: string); // Sachverhalt
var // Sachverhalt
  Child: TSachverhaltForm; // Sachverhalt
begin
  try // Sachverhalt
    Child := TSachverhaltForm.Create(Application); // Sachverhalt
    Child.Caption := Name; // Sachverhalt
    // erhöht das Handlearray
    SetLength(Fenster, High(Fenster) + 1);
    // speichert das Handle des Childs
    Fenster[High(Fenster)] := Child.Handle;
    Child.Tag := High(Fenster);
  finally
    // das hast du noch vergessen!
    FreeAndNil(Child);
  end;
end;
und dann vom Child aus etwas in dieser Art.

Delphi-Quellcode:
procedure TSachverhaltForm.EtwasInAnderemChildTun(ChildTag: Integer);
var
  Child: TSachverhaltForm;
begin
  try
    // Child := TSachverhaltForm.Create;
    Child.Handle := Form1.Fenster[ChildTag];
    Child.Edit1.Text := 'test';
  finally
    FreeAndNil(Child);
  end;
end;
Genau so wirds wahrscheinlich nicht funktionieren, aber ich hab nun mal immer noch kein Delphi vorhanden um das zu testen.

Aber irgendwas in der Richtung könnte man tun. Musste halt selber auch noch ein bissl studieren...

Du musst natürlich aufgrund irgendwelcher Kriterien dein Fenster ausfindig machen und dafür sorgen, dass wenn du ein Child schliesst das array Fenster entsprechend angepasst wird...
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#8

Re: MDIAPP und dem Vererben

  Alt 25. Jul 2009, 08:44
statt dem Array könnte man notfalls auch einfach jedesmal die untegeordneten Fenster such
> MSDN-Library durchsuchenFindWindowEx bzw. MSDN-Library durchsuchenEnumChildWindows
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

Re: MDIAPP und dem Vererben

  Alt 25. Jul 2009, 10:40
Die Idee mit dem Handle ist ein Irrweg.
Sämtliche MDI-Formulare können über das Hauptformular ausgelesen werden.
Delphi-Quellcode:
procedure Irgendwas;
var
  hauptform : TForm;
  aktMDI, tmp : TObjekt; // übrigens, TObjekt ist ein sehr ungeschickter Name für ein MDI-Cild-Formular !!!
  i : Integer;
  s : string;
begin
  hauptform := Application.MainForm; // MDI Vater holen
  aktMDI := hauptform.ActiveMDIChild as TObjekt; // das aktuelle MDI Kind Formular holen
  s := aktMDI.Edit1.Text; // vor aktuellem MDI einen Wert aus einem Editfeld auslesen

  // Schleife über alle MDI Kind Formulare
  for i := 0 to hauptform.MDIChildCount-1 do
  begin
    tmp := hauptform.MDIChildren[i] as TObjekt;
    if tmp = aktMDI then continue; // aktuelle MDI soll nicht verändert werden
    tmp.Edit1.Text := '#' + s + '#'; // #-Zeichen sollen nur zeigen, dass wirklich was kopiert wurde
  end;
fork me on Github
  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 08:26 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