AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Problem beim Focus setzen nach erstellen eines forms
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Focus setzen nach erstellen eines forms

Offene Frage von "5etH"
Ein Thema von 5etH · begonnen am 7. Nov 2008 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von 5etH
5etH

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

Problem beim Focus setzen nach erstellen eines forms

  Alt 7. Nov 2008, 08:34
Hallo Zusammen,

Ich arbeite momentan an einem Programm das ich in einem SystTayIcon verschwinden lasse und es dann gesperrt ist und der Benutzer dann ein Passwort und einen Benutzernamen eingaben muss um das Programm wieder frei zu geben.

Mein Problem:
wenn ich die Eingabemaske für Passwort und Benutzernamen anzeige hat sie keinen Focus

Verstecken und wiederherstellen der forms:
Delphi-Quellcode:

procedure TForm1.TrayIcon1Click(Sender: TObject);
var
  I: Integer; //Counter
begin
  if seh then //Seh ist eine Variable zur überprüfung ob sie versteckt sind oder nicht
    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 //überprüfen ob das Programm gesperrt werden soll
        begin
          if not s8 then //Überprüfen ob loginmaske erstellt wurde
            begin
              s8 := true;
              Application.CreateForm(TForm8, Form8);
              form8.show; //anzeigen der Loginmaske
            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;
om den Focus zu setzen habe ich einiges versucht
Delphi-Quellcode:
self.activate; // auf der loginmaske OnShow;
self.setfocus;
selbiges habe ich auch mit den Editfeldern versucht aber nichts hilft!


folgendes ist bei der Loginmaske "OnShow"
Delphi-Quellcode:

procedure TForm8.FormShow(Sender: TObject);
begin
  if form1.Edit1.Text <> 'then
    begin
      self.edit1.Text := form1.edit1.text;
      //Wenn möglich focus auf edit2.text legen
    end;
      //wenn möglich Focus auf edit1.text legen   
end;


ich hoffe ihr könnt mir weiter helfen ich weis nichtmer weiter und mir fällt auch nichts mehr ein

schonmal vielen vielen dank

gruß Manu
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
8. Nov 2008, 13:42
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 8. Nov 2008, 16:59
Hallo,

Hast du der Form8 dem ActiveControl ein Control zugewiesen?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

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

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 10. Nov 2008, 07:40
okay das habe ich nun probiert, aber leider spuckt er mir eine Fehlermeldung aus (Deaktiviertes oder unsichtbares fenster kann den Fokus nicht erhalten)

Hier der Code:
Delphi-Quellcode:
procedure TForm8.FormShow(Sender: TObject);
begin
  if form1.Edit1.Text <> 'then
    begin
      self.edit1.Text := form1.edit1.text;
    end;
   ActiveControl:=self;
   //habe es mit self und direkt Form8 probiert aber nichts funktioniert
end;
weis auch nichtmer was ich machen soll hoffe ihr wisst weiter

gruß Manu
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 10. Nov 2008, 07:42
Setze es im OI.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

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

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 10. Nov 2008, 07:51
selbe Fehlermeldung

Könnte es vill daran liegen das ich das Form kurz vorher erst erzeuge?



EDIT: habe auch versucht es auf Edit1 zu setzen, aber ohne Erfolg ... Form öffnet sich zwar, aber ohne Focus, weder auf dem Form, noch im Edit1.

Auch mit FocusControl bekomme ich diesen Fehler
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

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

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 11. Nov 2008, 12:03
*PUSH*
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 11. Nov 2008, 12:35
Hallo,

probier mal das:

Delphi-Quellcode:
procedure TForm1.JvTrayIcon1DblClick(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  If Not Assigned(Form2) then Application.CreateForm(TForm2, Form2);
  Form2.Show;
  Form2.edit1.SetFocus;
  Application.BringToFront;
end;
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1},
  Unit2 in '..\Unit2.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  // Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
  Mit Zitat antworten Zitat
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
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#10

Re: Problem beim Focus setzen nach erstellen eines forms

  Alt 11. Nov 2008, 18:55
Hallo

Ideal wäre ein Beispiel-Projekt, welches man kurz testen könnte.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz