Einzelnen Beitrag anzeigen

Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 11. Nov 2008, 13:00
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 = 'XXXXXXXXXXXthen
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
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat