AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Parameterübergabe Hauptprogramm an sein MDI
Thema durchsuchen
Ansicht
Themen-Optionen

Parameterübergabe Hauptprogramm an sein MDI

Ein Thema von jaikai · begonnen am 21. Sep 2005 · letzter Beitrag vom 21. Sep 2005
Antwort Antwort
jaikai

Registriert seit: 1. Jun 2005
70 Beiträge
 
#1

Parameterübergabe Hauptprogramm an sein MDI

  Alt 21. Sep 2005, 09:25
Hi Leute,

ich habe keine Ahnung wie das Ding in den Klammern im ProgrammierJargon richtig heißt, ich muß es deshalb hier "Parameter" nennen, is ja auch einer.

Bsp: Button4Click(Sender: TObject) (gemeint ist --> Sender: TObject)

Darauf beruht mein Problem:

Hauptanwednug mit zahlreichen MDI'S. Datenübergabe von MDI nach MDI erfolgt übers Hauptprogramm mit Parametern, die wieder ausgelesen und entsprechend bearbeitet werden.

Weil ich mehrere Memo's in den MDI's habe, möchte ich möglichst einfach über eine Parameterangabe die Dinger bearbeiten. Ich könnte nur über Strings arbeiten, hätte aber dann das Problem, sie immer wieder mit FindComponent finden zu lassen um irgendwas mit denen anzustellen.

Also kam ich auf die Idee, direkt das TMemo als Parameter zu übergeben.

Die obere Prozedur soll nur die 'Parameter-Kette' besser darstellen, als zu erklären wäre. Die untere wäre der passende Aufruf dazu.


Delphi-Quellcode:
procedure Memo_zu_Memo(Sender: TObject; Herkunft : string; HerkunftMemo : TMemo; Ziel: String; ZielMemo : TMemo; Sect : string);
begin

{  Hier wird über FindComponent das MDI Herkunft eingelesen ( Parameter Herkunft)
   dann sollte was im Memo_1 ausgelesen werden          ( Parameter HerkunftMemo)
        ...
   dann über FindComponent das MDI Ziel einlesen        ( Parameter Ziel)
   dann sollte was im Memo_2 geschrieben werden        ( Parameter ZielMemo)
}

end;




procedure TMainForm.Button4Click(Sender: TObject);
var Memo_1 : TMemo;
begin
  Memo_zu_Memo(Sender, 'MDI_1', Memo_1 , 'MDI_2', Memo_1, 'MachDas');
end;

Problem: Lasse ich die Variable (var Memo_1 : TMemo weg, findet er was zu meckern.
Geb ich sie im, dann findet er auf der anderen Seite nichts.

Wie mach ich das, daß das Hauptprogramm weiß, welches Memo des MDI's gemeint ist, bzw wie kann ich PArameter hierfür setzen, die auch funktionieren ?

Kann mir das bitte jemand beantworten...

Danke
Wenn die Programme das machen, wie's wir machen, wären sie unbrauchbar...
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Parameterübergabe Hauptprogramm an sein MDI

  Alt 21. Sep 2005, 09:42
Hallo,
Zitat von jaikai:
Delphi-Quellcode:
procedure TMainForm.Button4Click(Sender: TObject);
var Memo_1 : TMemo;
begin
  Memo_zu_Memo(Sender, 'MDI_1', Memo_1 , 'MDI_2', Memo_1, 'MachDas');
end;
Du deklarierst in Deiner Methode ein Memo und übergibst dieses dann Deiner Prozedur. Das kann so nicht funktionieren.
Du musst natürlich deiner Prozedur die beiden tatsächlichen Memos übergeben, also das Quell-Memo und das Ziel-Memo.
Da Du ja wissen musst, welche beiden MDI-Fenster Du benutzt, kannst Du einfach deren Memos übergeben, dann sollte das auch klappen.
Übrigens brauchst Du bei Deiner Prozedur kein "Sender"-Objekt. Das ist nur bei Events von der VCL vorgegeben. In Deinem Fall steht da ja nur der Button drin, und der ist für dich unwichtig.

Gruß
xaromz
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Parameterübergabe Hauptprogramm an sein MDI

  Alt 21. Sep 2005, 10:02
1.) die MDI-Formulare präsentieren ihre Daten über Properties nach aussen:
Delphi-Quellcode:
TMDIform = Class(TForm)
   public
      property Bemerkungen:TStrings read GetBemerkungen write SetBemerkungen;
end;
function TMDIform.GetBemerkungen : TStrings;
begin
   result := Memo4.Lines;
end;
procedure TMDIform.SetBemerkungen(value : TString);
begin
   Memo4.lines := value;
end;
2.) Der direkte Zugriff auf Controls der MDI Formulare ist verboten !!!(obwohl es leicht möglich wäre)
3.) so wird dann kopiert:
Delphi-Quellcode:
var
   source, dest : TMDIform;
begin
   source := ....;
   dest := ActiveMDIChild as TMDIform;

   if source=dest then
      exit;
   dest.Bemerkungen := source.Bemerkungen;
end;
Andreas
  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 11:24 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