Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Modales Form ohne Benutzereingriff schließen

  Alt 16. Mai 2005, 22:35
Moin!

Zitat von novy:
Derzeit macht mein Programm folgendes:
Form1 schreibt in ein Edit-Feld in Form2 den Suchtext
dann Aufruf von Form2.ShowModal
FormActivate von Form2 startet mit dem Suchtext im Edit-Feld die Suche in einer ListBox
Wenn nur ein Eintrag in der ListBox gefunden wird, sollen die Werte zurück in Edit-Felder in Form1 geschrieben und das Form2 über Close geschlossen werden.
Wieso überschreibst du nicht einfach ShowModal und machst deine Suche vor dem Inherited ShowModal. Wenn du nur einen Treffer hast und somit nix ausgewählt werden muss vom Nutzer, dann sagste direkt, dass ModelResult := MrOk ist - ansonsten rufst du das ShowModal auf.

Pseudocode:
Delphi-Quellcode:
Type
  ...
   Public
     Function ShowModal(Var SuchWort: String): TModalResult; Override;
   End;

....


Function ShowModal(Var SuchWort : String): TModalResult;
Begin
  SucheNachWort(SuchWort);

  If ( ListBox1.Items.Count = 1 ) Then
  Begin
    SuchWort := ListBox1.Items[0];
    ModalResult := mrOk;
  End
  Else
  Begin
    Result := Inherited ShowModal;
    
    If ( ListBox1.ItemIndex > -1) Then
      SuchWort := ListBox1.Items[ Listbox1.ItemIndex ];
  End;
  
End;
Dieser Pseudocode will im ShowModal() Aufruf den Suchbegriff und gibt nach der Selektion (wenn mehr als 1 Begriff gefunden wurde der ausgewählte vom Nutzer - ansonsten der einzige gefundene) in der gleichen Variable den ausgewählten Begriff zurück.

Vor allem ist das sauberer als irgendwelche direkten Zugriffe auf Form1 oder Form2 von der jeweils anderen Form aus.... *grusel*

MfG
Muetze1
  Mit Zitat antworten Zitat