AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi prozedur in Data Module auf andere Form anwenden
Thema durchsuchen
Ansicht
Themen-Optionen

prozedur in Data Module auf andere Form anwenden

Ein Thema von danieleh · begonnen am 10. Mär 2010 · letzter Beitrag vom 12. Mär 2010
Antwort Antwort
Seite 2 von 3     12 3      
danieleh

Registriert seit: 1. Dez 2005
54 Beiträge
 
#11

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 09:18
'Morgen Gerald


Zitat:
Was zeigt das "showmessage" von Posting #8?
Extrem seltsam: ist mir erst jetzt aufgefallen. showmessage der textbox zeigt korrekt '08.08.2009 05:46:08'
Doch die textbox enthält nachwievor den Text dass ich nicht entfernt habe, nämlich 'cxTextEdit2'.
Magic ??

meinst Du dies mit der Initialisierung?

Delphi-Quellcode:
program DataPlotter;

uses
  Forms,
  aPCmain in 'aPCmain.pas{PCmain},
  aPCdmod in 'aPCdmod.pas{PCdmod: TDataModule},
  aPCchrt in 'aPCchrt.pas{PCchrt},
  aPCVars in 'aPCVars.pas',
  aPCconn in 'aPCconn.pas{PCconn};


{$R *.res}

begin
  Application.Initialize;
  Application.Title := 'DataPlotter';
  Application.CreateForm(TPCmain, PCmain);
  Application.CreateForm(TPCdmod, PCdmod);
  Application.CreateForm(TPCchrt, PCchrt);
  Application.CreateForm(TPCconn, PCconn);
  Application.Run;
end.
Ich werde das mit dem debugging versuchen.
  Mit Zitat antworten Zitat
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#12

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 09:32
Zitat:
meinst Du dies mit der Initialisierung?
Nö.

Du wirst doch wahrscheinlich in einem Event (onCreate oder
onShow usw.) einer Form die Funktion im Datamodul aufrufen.
Diese Procedure wäre interessant. Und ob danach noch einmal
von irgendwo auf das Editfeld zugegriffen wird. Deswegen
der Tip mit dem Debugger.
  Mit Zitat antworten Zitat
danieleh

Registriert seit: 1. Dez 2005
54 Beiträge
 
#13

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 11:25
Ich verbinde zu der Datenbank über eine Modalform. Gleichzeitig (In der gleichen prozedur wie das Verbinden der DB), öffne ich die Query.
Beim öffnen der Query wird der Event AfterOpen ausgelöst.

Beim debuggign bin ich noch nicht weiter gekommen.
  Mit Zitat antworten Zitat
danieleh

Registriert seit: 1. Dez 2005
54 Beiträge
 
#14

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 13:21
Hab nun das mit dem debugger gemacht, allerdings blicke ich es nicht ganz durch.
hab die komponente 'Edit1' (um standardkomponenten zu nehmen) nun in die Watchlist genommen, aber die Meldungen sagen mir überhaup nichts (wahrscheindlich hab ich's auch falsch gemacht...)
Ansonsten ist mir nichts verdächtiges aufgefallen.

Aber mal ganz grunsätzlich: es sollte doch *prinzipiell* gehen, oder ? (aus einem event im datamodul an ein objekt in einer anderen Form etwas zu übergeben ?

Es ist mir nicht bewusst das dies so abwägig sein könnte. Wie gesagt, dies ist mir schon früher aufgefallen, nur konnte ich immer umschiffen...
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#15

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 13:41
Zitat von danieleh:
Aber mal ganz grunsätzlich: es sollte doch *prinzipiell* gehen, oder ? (aus einem event im datamodul an ein objekt in einer anderen Form etwas zu übergeben ?
ja das ist problemlos möglich und funktioniert auch bei dir: Wie du selbst sagst, wird mittels showmessage der korrekte Wert angezeigt, was beweist, dass es funktioniert.

Du hast ein anderes Problem in deinem Code!

Entweder:
in einem anderen Event überschreibst du den Wert wieder.
Oder: Der Aufruf der modalen Form ist nicht korrekt und erzeugt die Form zb 2mal.
Also zeig mal den Aufruf der modalen Form
  Mit Zitat antworten Zitat
danieleh

Registriert seit: 1. Dez 2005
54 Beiträge
 
#16

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 13:55
Um genau zu sein liegt die Edit (die zu füllen ist) nicht auf der Hauptform, sondern auf einer weiteren Form. Diese wird ins Hauptfenster eingebettet, sodass ich einen einzigen Rahmen und Menübalken habe (und beliebig mit weiteren Fenster erweiterbar ist - aber vielleicht liegt der Hund genau da vergraben...).

Daher wird die modale Form aus dem Menu auferufen mit folgendem Code:

Delphi-Quellcode:
procedure TPCmain.aConnectExecute(Sender: TObject);
begin
  PCconn.ShowModal;
end;
  Mit Zitat antworten Zitat
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#17

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 15:11
Jetzt wird's aber langsam unübersichtlich

Zitat:
Um genau zu sein liegt die Edit (die zu füllen ist) nicht auf der Hauptform, sondern auf einer weiteren Form. Diese wird ins Hauptfenster eingebettet, ....
Wir wissen bis jetzt, dass es folgendes gibt: TPCdmod, TPCchrt, TPCconn.
Was ist mit TPCmain?

Wie und welcher Reihenfolge diese gestartet bzw. initialisiert werden verrätst
Du nicht. Ebensowenig welches davon auf dem anderen liegt. Gehts auch etwas
detailierter als mit isoloierten Codeschnipseln? Sonst fällt mir dazu nix mehr ein.

Gruß
Gerald
  Mit Zitat antworten Zitat
danieleh

Registriert seit: 1. Dez 2005
54 Beiträge
 
#18

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 19:20
Guter Einwand,

anbei ein demo mit den minimalsten Standardkomponenten. vielleich hilt das um das Gefüge zu klären.
Angehängte Dateien
Dateityp: 7z demo_207.7z (383,1 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#19

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 20:01
Kann zwar das Demoprogramm nicht zum laufen kriegen, da ich interbase nicht installiert habe.

Was mir aber so auf den 1. Blick aufgefallen ist:

Bei Programmstart erstellst du das Formular ein erstes Mal

Application.CreateForm(TPCchrt, PCchrt); und später erzeugst das Formular ein zweites Mal:

Delphi-Quellcode:
procedure TPCmain.FormCreate(Sender: TObject);
begin

  FChart := TPCchrt.Create(Self);
  with ChartF do
  begin
    Parent := Self;
    align := alClient;
    Visible := True;
  end;
 // ClientWidth := 1300;

end;
  Mit Zitat antworten Zitat
danieleh

Registriert seit: 1. Dez 2005
54 Beiträge
 
#20

Re: prozedur in Data Module auf andere Form anwenden

  Alt 11. Mär 2010, 21:22
Danke, danke, danke !!!

Das muss zwar so sein (anders bekomme ich es nicht zum laufen), aber du hast mich drauf gebracht.

anstatt:

Delphi-Quellcode:
procedure TPCdmod.D1BeforeConnect(Sender: TObject);
begin
   with PCchrt do
  begin
    Opentime('von: TPCchrt.Opentime, aus Event: TPCdmod.D1BeforeConnect - string müsste eigentlich in Edit1 stehen');
  end;
end;
geht es nun so:

Delphi-Quellcode:
procedure TPCdmod.D1BeforeConnect(Sender: TObject);
begin
   with PCmain.ChartF do <-- springender punkt
  begin
   // Opentime('von: TPCchrt.Opentime, aus Event: TPCdmod.D1BeforeConnect - string müsste eigentlich in Edit1 stehen');
   // oder eben:
      Edit1.Text := 'Mistery Solved';
  end;
end;
Herzlichen Dank
Daniele
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:03 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