| Autor |
Beitrag |
die_nadja
Hält's aus hier
Beiträge: 15
Win 98, Win XP
|
Verfasst: So 13.03.05 16:12
hi
folgendes prob:
UFHaupt hat ein Formular1, uses UTLogin
UTLogIn hat ein Formular2
über UFHaupt möchte ich UTLogin aufrufen, das sein Formular2 ausführt, es beendet und dannach wieder zu UFHaupt und dem dazugehörigen Formular1 zurückkehrt. Allerdings klappt das alles nicht so ganz.
Hier die Hpt.Unit
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:
| unit UFHaupt;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, UTLogIn;
type TFHaupt = class(TForm) procedure FormCreate(Sender: TObject); private login:TFLogIn; public
end;
var FHaupt: TFHaupt;
implementation
{$R *.dfm}
procedure TFHaupt.FormCreate(Sender: TObject); begin if login.blabla='muh' then (....); end;
end. |
Und hier UtLogIn
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:
| unit UTLogIn;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg, shellapi,Inifiles;
type TFLogIn = class(TForm) procedure FormCreate(Sender: TObject); private function blabla:string;
public
end;
var FLogIn: TFLogIn; implementation
function TFLogIn.blabla:string; (...) |
Also ich habe die UTLogIn vorher sepparat geschrieben und jetzt einfach nur beim Hpt.formular hinzugefügt..Daher auch der Fehler, aber wie mache ich das Mit Sender, Typ vereinbarung das es so klappt wie oben beschrieben??Habe bissl rumprobiert, leider keine lsg gefunden da ichd as mit dem ganzen vererben/klassen usw. nie richtig verstanden habe..Danke für Hilfe 
|
|
Mike_C
      
Beiträge: 207
Win XP
D7 Enterprise
|
Verfasst: So 13.03.05 16:21
die_nadja hat folgendes geschrieben: |
Daher auch der Fehler, aber wie mache ich das Mit Sender, Typ vereinbarung das es so klappt wie oben beschrieben?? |
Welcher Feheler denn? Kannst du mal die Fehlermeldung posten?
_________________ Life is, what some people call a mystery. To me life's just a lesson, you're learning when you're through. So why do we try to understand?
|
|
die_nadja 
Hält's aus hier
Beiträge: 15
Win 98, Win XP
|
Verfasst: So 13.03.05 16:26
so in etwa
[Error] UFHaupt.pas(27): Undeclared identifier: 'blabla'
[Error] UFHaupt.pas(27): Record, object or class type required
[Fatal Error] Datenverwaltung.dpr(6): Could not compile used unit 'UFHaupt.pas'
..ich weiß wie man z.B. mehrere "Unterunits" mit der Hpt.Unit/Formular verbindet, aber das scheint hier nicht zu klappen weil ich auch ein 2. Formular habe. Die Funktion aus UTLogIN wird nicht in der Hpt.Unit erkannt.
Zuletzt bearbeitet von die_nadja am So 13.03.05 16:27, insgesamt 1-mal bearbeitet
|
|
Mike_C
      
Beiträge: 207
Win XP
D7 Enterprise
|
Verfasst: So 13.03.05 16:26
ich glaube, dass dein Problem daran liegt, dass du den LogIn im Konstruktor deiner Form aufrufen willst (bei FHaupt.FormCreate). Da FHaupt wohl vor FLogIn erstellt wird, kann FHaupt von FLogIn noch keine Funktionen aufrufen. Versuche mal deinen LogIn bei FHaupt.FormShow abzufragen.
Im Objektinspektor in den Event von FHaupt nach OnShow suchen und eine Funktion zuweisen.
Das sollte gehen
_________________ Life is, what some people call a mystery. To me life's just a lesson, you're learning when you're through. So why do we try to understand?
|
|
Mike_C
      
Beiträge: 207
Win XP
D7 Enterprise
|
Verfasst: So 13.03.05 16:28
Sorry, ich war zu schnell!
Dein Problem ist folgendes:
Delphi-Quelltext 1: 2:
| private function blabla:string; |
du definierst hier eine Private Funktion! das heißt nur FLogIn kennt die Funktion blabla. mach die mal Public, also einfach
function blabla: string in den Abschnitt public kopieren!
_________________ Life is, what some people call a mystery. To me life's just a lesson, you're learning when you're through. So why do we try to understand?
|
|
die_nadja 
Hält's aus hier
Beiträge: 15
Win 98, Win XP
|
Verfasst: So 13.03.05 16:43
Danke, du hattest Recht!! private prozeduren sind lediglich innerhalb der unit zu gebrauchen gg
Eine Frage noch: Wie kann ich es erreichen, das beim start erst die login form angezeigt wird und nach dem erflogreichem abarbeiten die hpt.form zu sehen ist?? einfach form.show usw.. oder gibt es was besseres...Es wäre z.B. gut wenn nach dem UTLogIn abgearbeitet wurde erst die Hauptform erstellt wird (formcreate)...geht sowas??
|
|
Mike_C
      
Beiträge: 207
Win XP
D7 Enterprise
|
Verfasst: So 13.03.05 17:13
sicher geht sowas:
dazu musst du das .dpr-File ein wenig abändern
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| program LaberLaber;
uses Forms, ULogIn in 'ULogIn.pas' , UHaupt in 'UHaupt.pas' ;
{$R *.res}
begin FLogIn := TFLogIn.Create(Application); FLogIn.ShowModal; fLogIn.Refresh; Application.CreateForm(TFHaupt, FHaupt); FLogIn.Hide; FLogIn.Free; end. |
ich glaube so ging das. probiers mal aus!
_________________ Life is, what some people call a mystery. To me life's just a lesson, you're learning when you're through. So why do we try to understand?
|
|
Mike_C
      
Beiträge: 207
Win XP
D7 Enterprise
|
Verfasst: So 13.03.05 17:18
wenn das nicht geht, versuch was anderes:
in den Projektoptionen kannst du bestimmen, welche Formen im DPR-File erstellt werden sollen. schmeiß da alles bis auf deinen LogIn-Form raus.
wenn dein LogIn dann erfolgreich war, kannst du die Hauptform erstellen
Delphi-Quelltext 1: 2: 3:
| FHaupt:=TFHaupt.Create(Application); FHaupt.Show; FLogIn.Hide; |
dann ist die LogIn-Form die Hauptform und wenn du die Hauptform schließt, musst du auch noch die LogIn-Form schließen, damit die Anwendung beendet wird.
_________________ Life is, what some people call a mystery. To me life's just a lesson, you're learning when you're through. So why do we try to understand?
|
|
die_nadja 
Hält's aus hier
Beiträge: 15
Win 98, Win XP
|
Verfasst: So 13.03.05 17:34
ok danke...habs bissl umgeändert..funktioniert jetzt auch fast schon so wie ich es brauche, denke das kriege ich jetzt hin..
mfg nadja
_________________ I think, therefore I am ...
|
|
|