Damit ihr es besser nachvollziehen könnt, werde ich euch mal alles posten, was mit diesem Vorgang zu tun hat
Projectquelltext:
Delphi-Quellcode:
program AdminTool;
uses
Forms,
Main in 'Main.pas' {Form1},
WebVorlage in 'WebVorlage.pas' {Form2},
InterfaceMenu in 'InterfaceMenu.pas' {Form3},
RemoteMenu in 'RemoteMenu.pas' {Form4},
ProgMenu in 'ProgMenu.pas' {Form5},
Mapping in 'Mapping.pas' {Form6},
OrdnerMenu in 'OrdnerMenu.pas' {Form7},
Login in 'Login.pas' {Form8},
NichtDoppeltStarten in 'NichtDoppeltStarten.pas';
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Aus Main:
Delphi-Quellcode:
procedure TForm1.Sperren1Click(Sender: TObject);
begin
sperr:= true;
TrayIcon1Click(self);
end;
procedure TForm1.TrayIcon1Click(Sender: TObject);
var
I: Integer;
begin
if seh then // Seh ist die variable in der gespeichert wird, ob die Forms momentan versteckt sind, oder ob sie angezeigt werden
begin
application.Minimize;
for I := 0 to screen.formcount - 1 do
begin
screen.forms[i].hide;
end;
seh := false;
end
else
begin
if sperr then //Sperr wird true wenn ich den befehl zum sperren gegeben habe
begin
if not s8 then //s8 überprüft ob form8 (login) schon erzeugt wurde
begin
s8 := true;
Application.CreateForm(TForm8, Form8);
form8.show;
end;
end
else
begin
for I := screen.formcount -1 downto 0 do
begin
screen.forms[i].show
end;
application.Restore;
application.BringToFront;
seh := true;
end;
end;
end;
aus Login
Delphi-Quellcode:
if (edit1.text[1] = 'A') and (edit1.text[2] = 'D')
then
begin
if edit1.text = 'administrator' then
begin
if edit2.text = 'XXXXXXXXXXX' then
begin
form1.sperr := False;
form1.TrayIcon1Click(self);
form1.s8 := false;
self.Destroy;
end
else
begin
showmessage('Ungültiges Passwort');
Edit2.Color := CLRED;
end;
end
else
begin
LogonUser(PChar(Edit1.Text), 'HSVV', PChar(Edit2.Text), LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, h);
if h <> 0 then begin
form1.sperr := False;
form1.TrayIcon1Click(self);
form1.s8 := false;
self.Destroy;
end
else
begin
showmessage('Ungültiger Benutzername oder Passwort');
Edit1.Color := CLRED;
Edit2.Color := CLRED;
end;
end
end
else
begin
showmessage('Ungültiger Benutzername');
Edit1.Color := CLRED;
end;
procedure TForm8.FormShow(Sender: TObject);
begin
if form1.Edit1.Text <> '' then
begin
self.edit1.Text := form1.edit1.text;
end;
//Hier habe ich bis jetzt immer versucht dem form 8 den focus zu geben
end;
hoffe ihr könnt etwas damit anfangen ansonsten werde ich auf den code gerne für euch näher eingehen
gruß manu
EDIT: habe bemerkt das, wenn ich das form ein 2. mal auf habe (2. öffnen nach schliesen also nicht 2 mal das selbe Form offen) ,dass ich dann den focus bekomme