AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Meldungen aus einer Unit an ein Formular senden
Thema durchsuchen
Ansicht
Themen-Optionen

Meldungen aus einer Unit an ein Formular senden

Ein Thema von LarsSchwencke · begonnen am 3. Jan 2014 · letzter Beitrag vom 19. Apr 2015
Antwort Antwort
Seite 1 von 3  1 23      
LarsSchwencke

Registriert seit: 28. Sep 2012
19 Beiträge
 
#1

Meldungen aus einer Unit an ein Formular senden

  Alt 3. Jan 2014, 15:58
Hallo,

weiß jemand wie ich Informatione aus einer Unit(ohne Formular) an eine andere Unit mit Formular übergeben kann.
Ich habe ein VCL-Formularanwendung geschieben in der es ein Memofeld gibt.
Diese Formularanwendung ruft eine Unit(hier Unit2 genannt) auf, die Meldungen in das Memofeld der Formularanwendung schreiben soll.
Die Unit2 möchte ich in unterschiedlichen Programmen immer wieder verwenden können.
Wie kann ich dies Realisieren ohne die Formularanwendung unter uses der Unit2 anzugeben.

Würde mich über jeden Lösungsvorschlag sehr freuen.
MfG
Lars
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 3. Jan 2014, 16:02
Du brauchst irgendeinen gemeinsamen Nenner. Ich würde das so machen: Unit2 beinhaltet Funktionen/Methoden, die StringListen (entweder TStrings oder TStringList) als Parameter bekommen. Die Formular-Unit übergibt dann die Eigenschaft TMemo.Lines (vom Typ TStrings) an die Funktionen/Methoden von Unit2.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 3. Jan 2014, 16:08
Oder Unit2 enthält eine schnuckelige kleine Klasse, der man die zu befüllenden TStrings als Property zuweist.
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
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 3. Jan 2014, 16:22
@ LarsSchwencke:

Das Ereignis, das das Schreiben von Text in dein Memo auslösen soll, stammt ja vermutlich aus deiner Formular-Unit. Da wäre es irgendwie mit der Kirche ums Dorf und durch die Brust ins Auge geschossen, hier den Umweg über eine zweite Unit zu gehen. Wenn es einfach nur darum geht, eine bestimmte Methode, die Text in ein Memo schreibt, in anderen Anwendungen wiederverwenden zu können, würde ich das erstmal grundsätzlich nicht über eine zweite Unit machen, sondern mir die Methode einfach irgendwo abspeichern. Ich mache das mit meiner Codeverwaltung, die ich im Rahmen einer kompletten Projektverwaltung etnwickelt hatte. Du kannst z.B. Warnecke's Code-Orakel verwenden, falls er sein Programm noch als Freeware anbietet. Oder du schaffst dir ein Verzeichnis, wo du Methoden, die du ständig wieder benötigst oder zu benötigen glaubst, als Textdateien abspeicherst.

Natürlich gibt es auch Fälle, in denen es sinnvoll ist, eine Methode in einem Formular von einer anderen Unit/einem anderen Formular aus anzustoßen, z.B. wenn im Hauptformular ich auf das Verschieben des Datensatz-Zeigers einer Tabelle (AfterScroll) aus einem Datenmodul reagieren möchte oder wenn ich z.B. in einem eigenen Thread in einer anderen Unit meine Postfächer abrufe, dem zuständigen Formular mitzuteilen, wenn eine neue Email eingegangen ist usw. In diesen Fällen erzeugt man Ereignisse selbst und reagiert darauf in der entsprechenden Unit.
  Mit Zitat antworten Zitat
ngott2

Registriert seit: 26. Aug 2013
81 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 3. Jan 2014, 16:29
Wenn ich das richtig verstehe!
Dann kannst einfach eine Funktion in der Unit2 schreiben die eine String liste zurück gibt.

Beispiel
Code:
MeinMemo.text := ObjectFromUnit2.DoSomethingfunction;

Wenn ich dein Problem falsch verstanden habe, dann sorry.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 3. Jan 2014, 16:57
Wenn ich das richtig verstehe!
Dann kannst einfach eine Funktion in der Unit2 schreiben die eine String liste zurück gibt.

Beispiel
Code:
MeinMemo.text := ObjectFromUnit2.DoSomethingfunction;

Wenn ich dein Problem falsch verstanden habe, dann sorry.
Das ist nicht so optimal. Wenn Du (String)Listen befüllen willst, dann solltest Du diese an eine prozedure übergeben (siehe #2) und nicht durch eine Funktion erstellen lassen. Du könntest Dir ein Speicherleck einhandeln.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
LarsSchwencke

Registriert seit: 28. Sep 2012
19 Beiträge
 
#7

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 8. Jan 2014, 14:57
Hallo,

vielen Dank für die schnellen Antworten.
Wenn ich es mit einer StringList mache, dann muß ich in der Unit1
über eine Pollingfunktion immer nachschauen ob neue Meldungen in der StringList stehen,
da ich ja nicht weiß wann die Unit2 neue Mitteilungen in die StringList schreibt, oder?

Gibt es eine Möglichkeit das Pollen zu vermeiden.

MfG
Lars
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 8. Jan 2014, 15:05
Wie gesagt: ich würde mir eine kleine Klasse schreiben, die die Mitteilungen intern in einer Stringliste verwaltet und über ein Event samt zugehöriger Property verfügt, das bei Hinzufügen einer Mitteilung gefeuert wird.
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
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 8. Jan 2014, 15:07
Wenn Du (String)Listen befüllen willst, dann solltest Du diese an eine prozedure übergeben (siehe #2) und nicht durch eine Funktion erstellen lassen. Du könntest Dir ein Speicherleck einhandeln.
Verstehe ich nicht. Wie das denn? Ich möchte bitte eine StringList haben. Entweder die Funktion gibt mir eine, oder sie gibt mir keine. Wenn ich eine haben wollte, ist es auch meine Verantwortung, die Liste später ordentlich in den Müll zu tun.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Meldungen aus einer Unit an ein Formular senden

  Alt 8. Jan 2014, 15:09
Wie wärs denn so?

In der Unit ohne Formular:
Delphi-Quellcode:
procedure SchreibeInMemo(MyStrings : TStrings);
begin
  MyStrings.Add('noch ne Zeile');
end;
Und der Aufruf in der Unit mit Formular wäre dann so:
  SchreibeInMemo(memo1.Lines);
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 05:37 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