Autor Beitrag
Arne Danikowski
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194



BeitragVerfasst: Di 19.05.09 14:54 
Ich erhalte folgende Fehlermeldung:

Eigenschaft Visible kann in OnShow und OnHide nicht verändert werden.

Ich rufe über OnActivate als letztes über das "Show" Ereignis eine zweite Form auf. Funktioniert auch soweit.
ausblenden Delphi-Quelltext
1:
2:
3:
....
....
form2.show;


Wenn die 2 Form allerdings wieder geschlossen wird, erhalte ich die onben genannte Fehlermeldung.

Ändere ich das show in ein "Showmodal" also:

ausblenden Delphi-Quelltext
1:
2:
3:
....
....
form2.showmodal;


erhalte ich diese Fehlermeldung nicht.


Ich würde ja sogar mit dem showmodal leben aber dann habe ich ein anderes Problem. Das wäre eigentlich ein anderes Thema aber ich nenne es hier auch mal.

Die Form2 enthält eine RxDBLookupComboBox und einen Button.
Mann soll einfach aus der RxDBLookupComboBox einen Namen aus der Datenbank auswählen und auf den verdammten Button drücken.
Dieser nimmt bestimmte Werte aus dem so markierten Datensatz und schreibt diese in Variabeln.

Wenn ich nun ein modales Fenster habe, kann man nicht mehr auf die RxDBLookupComboBox klicken zum auswählen eines Datensatzes. Das Dropdownfeld öffnet sich nicht.
Erst venn man den doofen Button gedrückt hat, funktioniert das auch mit der RxDBLookupComboBox.

Wenn ich nur Show verwende, kann die RxDBLookupComboBox sofort ausgewählt werden.

hier das Listing zur Form2
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
 

unit anmeldung;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, DBCtrls, Buttons, RxLookup;

type
  TJP_Anmeldung = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    GroupBox1: TGroupBox;
    RxDBLookupCombo1: TRxDBLookupCombo;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }

  end;

var
  JP_Anmeldung: TJP_Anmeldung;

implementation

uses Main,Datenmodul;

{$R *.dfm}

procedure TJP_Anmeldung.BitBtn1Click(Sender: TObject);
begin
main.mn:=DM.MitarbeiterQuery.FieldByName('Nachname').AsString;
main.mv:=DM.MitarbeiterQuery.FieldByName('Vorname').AsString;
main.ma:=DM.MitarbeiterQuery.FieldByName('Geschlecht').AsString;
main.mk:=DM.MitarbeiterQuery.FieldByName('Kuerzel').AsString;
end;

end.



Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 19.05.2009 um 15:51
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.05.09 14:58 
user profile iconArne Danikowski hat folgendes geschrieben Zum zitierten Posting springen:
Ich rufe über OnActivate als letztes über das "Show" Ereignis eine zweite Form auf. Funktioniert auch soweit. [...]
Wenn die 2 Form allerdings wieder geschlossen wird, erhalte ich die onben genannte Fehlermeldung.
Naja, in dem Moment in dem die zweite Form geschlossen wird, wird ja wieder OnActivate der anderen ausgelöst und somit dieses wieder angezeigt.

Ist dir klar was OnActivate macht? :gruebel:
Das wird ausgelöst, wenn das Formular den Eingabefokus erhält. Und das ist ja der Fall, wenn das zweite Fenster durch das Schließen diesen verliert.
Arne Danikowski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194



BeitragVerfasst: Di 19.05.09 16:02 
Ok das verstehe ich schon, aber wo soll denn die Form2 aufgerufen werden? Und warum passiert das nicht, wenn ich die Methode Showmodal nehme? Wenn ich da das Fenster schliesse erhält die Hauptform doch auch den Focus zurück.
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Di 19.05.09 16:19 
Eine kurze Frage hätte ich da noch:
Nimmst du Form nur einmal als Anmeldeform?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.05.09 16:30 
user profile iconArne Danikowski hat folgendes geschrieben Zum zitierten Posting springen:
Ok das verstehe ich schon, aber wo soll denn die Form2 aufgerufen werden?
Wann soll die denn angezeigt werden? Wenn das erste Fenster angezeigt wird? Dann nimm OnShow.

user profile iconArne Danikowski hat folgendes geschrieben Zum zitierten Posting springen:
Und warum passiert das nicht, wenn ich die Methode Showmodal nehme? Wenn ich da das Fenster schliesse erhält die Hauptform doch auch den Focus zurück.
Weil du dann noch in OnActivate drin bleibst und das nach ShowModal nach dem Schließen der zweiten Form abgearbeitet wird. Und da du den Fokus erhältst während du noch in OnActivate drin bist wird das vermutlich nicht erneut aufgerufen.