AGB  ·  Datenschutz  ·  Impressum  







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

showmodal Fenser ansprechen ?

Ein Thema von Karstadt · begonnen am 27. Jun 2006 · letzter Beitrag vom 28. Jun 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#11

Re: showmodal Fenser ansprechen ?

  Alt 27. Jun 2006, 16:32
Hallo,

was ist, wenn du die Aufrufe einfach drehst:

also so (Beispiel):

Delphi-Quellcode:
with Form2 do
  begin
    Edit1.Text := 'hallo';
    Label1.Caption := 'winke';
    ShowModal;
  end;
So hast du 1. die Daten übergeben und 2. das Fenster Modal geöffnet
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#12

Re: showmodal Fenser ansprechen ?

  Alt 27. Jun 2006, 16:43
...davor muss ich das Fenster aber Createn

  Mit Zitat antworten Zitat
shmia

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

Re: showmodal Fenser ansprechen ?

  Alt 27. Jun 2006, 17:08
Mal was ganz grundsätzliches zu modalen Formularen:

Modale Formulare sollten so benützt werden
1.) Formular mit Create erzeugen
2.) Alle Anfangswerte bestücken
3.) Funktion ShowModal aufrufen und das Ergebnis am Besten gleich auswerten
Delphi-Quellcode:
   case formX.ShowModal of
      mrOK: // OK-dedrückt; Ergebnisse auslesen
      begin
      end;
      mrAbort:
      begin
      end;
   end;
4.) Ergebnisse des Formulars auslesen und versorgen (speichern)
5.) Fformular zerstören

Ein Login-Formular bietet z.B. User und Passwort als Eingabefelder an.
Diese Daten sollten über Properties gekapselt werden.
Delphi-Quellcode:
   property UserName:string read GetUserName write SetUserName;
....
function TModalForm.GetUserName:string;
begin
   result := EditUserName.Text;
end;
procedure TModalForm.SetUserName(const Value:string);
begin
   EditUserName.Text := value;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#14

Re: showmodal Fenser ansprechen ?

  Alt 27. Jun 2006, 17:30
Um zurück zur Ursprünglichen Frage zu kommen:

Zitat von Karstadt:
Hallo. Ich habe ein Formular mit Showmodal Aufgerufen. Nun will ich nach diesen Aufruf eine Komponente anprechen.... geht das? wichtig ist, das erst showmodal kommt und erst dann zuweisung.
Um es ganz kurz und korrekt zu machen: Nein, genau das geht explizit nicht - und genau damit das nicht geht gibt es ShowModal und kein normales Show.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#15

Re: showmodal Fenser ansprechen ?

  Alt 28. Jun 2006, 08:46
Hallo. Ich habe das gelöst. Es war MEIN Fehler bei der Eigenschaft VISIBLE des Forms.

Delphi-Quellcode:
var Formular: Tf_kontakte;
begin
  Formular := Tf_kontakte.Create(nil); // hier habe ich vergessen beim Formular Kontakte die Eigenschaft
                                       // visible auf FALSE zu setzen.
  Formular.e_suchbegriff.Text := 'AAAAAA'; // Hier greife ich auf die Komponente
  Formular.ShowModal; // Hier Rufe ich das Fenster als MODAL auf.
  Formular.Free;
end;
Am morgen sind die probleme von gestern leich zu lösen

Dank für Ihre Tipps.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: showmodal Fenser ansprechen ?

  Alt 28. Jun 2006, 09:28
ich mach bei sowas in der Regel eine Public Methode in das Fenster was Modal geöffnet werden soll welche dann so aussieht
Delphi-Quellcode:
function Tf_Kontakte.Execute(ASearchText: String): Boolean;
begin
  e_suchbegriff.Text := ASearchText;
  result := ShowModal = mrOK;
end;
und dann wird diese Public-Methode aufgerufen. Vorteil von dieser Variante ist das man auch auf Private-Elemente beim Initialisieren was zuweisen kann.

Meist mach ich dann noch zusätzlich eine Class-Methode um mir das Creieren zu ersparen:
Delphi-Quellcode:
class function Tf_Kontakte.ExecuteClass(ASearchText: String): Boolean;
var lForm: TfKontakte;
begin
  result := False;
  lForm := Tf_Kontakte.Create(nil);
  try
    result := lForm.Execute(ASearchText);
  finally
    lForm.Free;
  end;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#17

Re: showmodal Fenser ansprechen ?

  Alt 28. Jun 2006, 09:32
Bin ich eigentlich der einzige der sich wundert, dass das Formular beim Erzeugen angeblich schon angezeigt werden soll? Also bei mir nicht
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#18

Re: showmodal Fenser ansprechen ?

  Alt 28. Jun 2006, 09:34
@mquadrat: Es kommt darauf an was in der DFM steht, also im Objectinspektor eingestellt wurde. Ansonsten bin ich mir auch nicht sicher ob es sofort angezeigt wird weil ja noch keine Messages verarbeitet werden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
morri

Registriert seit: 6. Jun 2006
Ort: Wuppertal
106 Beiträge
 
Delphi 7 Professional
 
#19

Re: showmodal Fenser ansprechen ?

  Alt 28. Jun 2006, 09:35
Ich habe mich auch gewundert aber noch nichts gesagt
Das visible:=false ist für mich auch quatsch.
Es wird erst createt, dann mit show oder showmodal in diesem Falle angezeigt.
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#20

Re: showmodal Fenser ansprechen ?

  Alt 28. Jun 2006, 09:36
Stimmt, aber Visible wird doch per Default immer erstmal auf false gesetzt, wenn man ein neues Formular anlegt.. Macht auch irgendwie überhaupt keinen Sinn das zu ändern. Aber egal, sein Problem ist ja gelöst
  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 13: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