Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - MDI Anwendung Parameter übergeben


cyberax - Mo 24.11.08 14:24
Titel: MDI Anwendung Parameter übergeben
Hallo,

wie der Titel sagt arbeite ich an einer MDI Anwendung. Ich habe mehrere MDI-Childs.
In Child kann ich nach Kunden/Kundedaten suche. Nach erfolgreicher Suche, soll der jew. Kunde bearbeitet werden können. Dazu möchte ich ein neues/weiteres Child öffnen UND ein Parameter übergeben. Eigentl. wollte ich das Edit gleich füllen - sprich:

Delphi-Quelltext
1:
2:
3:
4:
5:
 if MyQuery_kdsuche.RecordCount>0  then begin //ja ich habe einen Kunde gefunden
   if mainform.checkwindow('verwaltung_kunden') then  //das MDI ist noch nicht erstellt
    Tverwaltung_kunden.Create(self);                  //MDI erstellen  
    verwaltung_kunden.Edit1.Text:=mein_parameter;     //Parameter übergeben
 end;

Leider kommt bei der Ausführung immer ein Fehler. Auch wenn ich eine Variable verwende, kommt dieser Fehler.

Woran kann das liegen?

Mfg Daniel


elundril - Mo 24.11.08 14:28
Titel: Re: MDI Anwendung Parameter übergeben
probiers mal so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var Child: TVerwaltung_kunden;
begin
  if MyQuery_kdsuche.RecordCount>0  then begin //ja ich habe einen Kunde gefunden
    if mainform.checkwindow('verwaltung_kunden') then  //das MDI ist noch nicht erstellt
      Child := Tverwaltung_kunden.Create(self);                  //MDI erstellen 
      Application.ProcessMessages;
      child.Edit1.Text := mein_parameter;     //Parameter übergeben
    end;
end;


lg elundril


Marc. - Mo 24.11.08 14:30
Titel: Re: MDI Anwendung Parameter übergeben
user profile iconcyberax hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
5:
 if MyQuery_kdsuche.RecordCount>0  then begin //ja ich habe einen Kunde gefunden
   if mainform.checkwindow('verwaltung_kunden') then  //das MDI ist noch nicht erstellt
    verwaltung_kunden :=  Tverwaltung_kunden.Create(self);                  //MDI erstellen  
    verwaltung_kunden.Edit1.Text:=mein_parameter;     //Parameter übergeben
 end;

Sollte es nicht so heißen? Welcher Fehler erscheint denn?

Edit: Deftinitiv zu langsam...


cyberax - Mo 24.11.08 14:40

@Marc. : Danke, dass wars. Problem lag am Erstellen. Aber wieso kommt der Fehler nur dann, wenn ich ein Parameter übergeben möchte?
Fehler:"zugriffsverletzung bei Adresse 005E8C8B im Modul"... usw.

Was meintest du mit
Zitat:
Edit: Deftinitiv zu langsam...
?
Soll ich die Parameter anders übergeben?

Ansonsten vielen Dank euch für die Hilfe!!!


elundril - Mo 24.11.08 14:53

weil es den Befehl wie du ihn geschrieben hast ja gibt, deswegen meckert der compiler nicht vorher. das problem ist nur er erstellt das fenster nicht so wie du es brauchst deswegen kannst du nicht zugreifen, soweit ich weiß.

lg elundril

P.S.: warum nur danke marc? :bawling: hab doch genau das gleiche geschrieben und war noch dazu viel schneller!


cyberax - Mo 24.11.08 15:04

@all :Danke!
ok? Ja, also danke auch an elundril :)


elundril - Mo 24.11.08 15:09

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:

P.S.: warum nur danke marc? :bawling: hab doch genau das gleiche geschrieben und war noch dazu viel schneller!


war eh nur ein scherz.^^

lg elundril