AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Anzeige der Nebenform vor der Hauptform

Anzeige der Nebenform vor der Hauptform

Ein Thema von Avax2k · begonnen am 29. Jan 2006 · letzter Beitrag vom 29. Jan 2006
Antwort Antwort
Seite 2 von 3     12 3   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 15:39
Hast du schon den Projekt-Quelltext verglichen?

marabu
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#12

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 15:45
yep aber aufgefallen ist mir nur das Var der Formen sonst nichts.

jetzt habe ich das einfach nachgebaut und siehe da meine Form1 startet immer als erste..kann es sein, dass du einfach die hauptform in Special Form umbenannt hast ?? und die MainForm eigentlich die Form2 ist..denn sonst kann ich mir nicht erklären wieso diese als erste startet.
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 16:04
ich bekomme es einfach nicht hin, weiss nicht wieso deine Form2 als erste startet ist mir einfach ein komplettes Rätsel denn als Code hat es nur einen Button bei der ActiveControl und wenn dieser weggelassen wird kommt die trotzdem als erste....

ich habe ein anders beispiel vorher gemacht dass einwandtfrei funktioniert NUR nicht wenn ich es in meine Anwendung einbinden will..ich meine bei einem neuen Projekt klappt das tadellos:

Delphi-Quellcode:
uses Unit2;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
  try
  Form2.ShowModal;
  Application.Initialize;
  Form2.Update;
  if Form2.Edit1.Text = 'hallothen
  begin
  Form2.Free;
  Application.Run;
  end else
  Application.CreateForm(TForm1, Form1);
  finally
end;
end;

uses Unit1;
procedure TForm2.Button1Click(Sender: TObject);
begin
if Edit1.Text = 'hallothen
begin
  Form2.Close;
  end else
  ShowMessage('Leider ist die Eingabe falsch');
  end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Edit1.Text = 'hallothen
begin
Form2.Close;
end else
Application.Terminate();
end;
wie gesagt, nicht dass ich hier als Trottel dastehe der gar nichts auf die Reihe bringt

JEDOCH mein Problem besteht immer noch ich bekomme Fehler und den Vorschlag von Marabu kann ich nicht umsetzen weil ich da gar nichts sehe als Unterschied im Quellcode außer eben diesem Button und dem ActiveControl ist da auch gar nichts mehr.

EDIT !!...
jetzt habe ich die dpr geöffnet und da steht was mit showModal usw. versuche das jetzt zu machen..aber finde es komisch dass ich dafür den Editor aufmachen musste denn Delphi hat mir nur die Formen angezeigt nicht aber die dpr ..naja ich versuchs jetzt mal
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#14

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 16:26
so jetzt bekomme ich es hin, dass nun die Form2 als erste startet... ABER

meine ganzen Funktionen wie Edit1.Text = 'hallo' usw..
muss ich ausschalten sonst bekomme ich lauter Fehler

wie kann ich das lösen ??
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 16:49
Hast du auch den Code in Form2 angepasst?

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  if Edit1.Text = Password
    then ModalResult := mrOK
    else ShowMessage(Password);
end;

procedure TForm2.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if Edit1.Text = Password
    then ModalResult := mrOK
    else ModalResult := mrCancel;
end;
Und im Projekt-Quelltext (DPR) steht jetzt:

Delphi-Quellcode:
program Demo;

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

{$R *.res}

var
  mr: TModalResult;

begin
  with TForm2.Create(nil) do
  begin
    mr := ShowModal;
    Free;
  end;
  if mr = mrCancel then
    Exit;
    
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
marabu
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#16

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:19
so nun funktioniert es FAST perfekt...wies nur FAST..weil nun dieser befehl nicht richtig geht:

Delphi-Quellcode:
... on Create der Nebenform
button1click(button1);
...
beime rsten Start wenn keine INI-Datei erzeugt ist wird der Knopf ausgelöst..wenn aber ini-Datei erzeuigt ist und der Eintrag ins Editfeld geholt wird dann wird nicht mehr geklcikt..sprich der text steht drin und man muss manuell klicken dann gehts sofort weiter..frage mich nur wieso der automatische klick beim OnCreate nicht mehr geht wenn aus der ini-Date der text gelesen wird ??


und an Marabu super vielen Dank für deine Geduld und die Mühen die du bisher aufgebracht hast
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#17

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:30
Das sollte ohne Probleme so funktionieren:

Delphi-Quellcode:
procedure TLoginForm.LoginButtonClick(Sender: TObject);
var
  ini: TMemIniFile;
  fn: TFileName;
begin
  if PswdEdit.Text = PASSWORD then
  begin
    fn := ChangeFileExt(ParamStr(0), '.ini');
    ini := TMemIniFile.Create(fn);
    ini.WriteString('Einstellungen', 'LetzteAnmeldung', DateTimeToStr(Now));
    ini.UpdateFile;
    ini.Free;
    ModalResult := mrOK;
  end else ShowMessage('falsches Kennwort');
end;
marabu
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#18

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:34
Delphi-Quellcode:
procedure TLoginForm.LoginButtonClick(Sender: TObject);
var
  ini: TMemIniFile;
  fn: TFileName;
begin
  if PswdEdit.Text = PASSWORD then
  begin
    fn := ChangeFileExt(ParamStr(0), '.ini');
    ini := TMemIniFile.Create(fn);
    ini.WriteString('Einstellungen', 'LetzteAnmeldung', DateTimeToStr(Now));
    ini.UpdateFile;
    ini.Free;
    ModalResult := mrOK;
  end else ShowMessage('falsches Kennwort');
end;
das geht auch bei mir und im OnCreate habe ich

Delphi-Quellcode:
var ini : TIniFile;
begin
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'test.ini');
Edit2.Text := Ini.ReadString('Text', 'test','');
Button1Click(Button1);
und nun geht eben der ButtonClick nicht automatisch..aber NUR wenn eben der Ini-String-Eintrag bereits existiert und ins fenster geladen wurde
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#19

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:40
Du verwendest TIniFile und hältst damit die Datei sehr wahrscheinlich offen. Nimm ini: TMemIniFile einfach zu deinen privaten Form-Variablen und im OnCreate schreibst du dann das:

Delphi-Quellcode:
begin
  ini := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'test.ini');
  Edit2.Text := ini.ReadString('Text', 'test', '');
  Button1Click(Button1);
end;
Im OnDestroy der Form schreibst du dann ini.Free rein und im ButtonClick entfällt das Create für die Ini-Variable dann.

marabu
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#20

Re: Anzeige der Nebenform vor der Hauptform

  Alt 29. Jan 2006, 17:58
leider ändert das MemIniFiles nichts daran...

und wenn ich das ini.Create weglasse im Button dann bekomme ich Violation Fehler aber eben nur einmal dann geht es weiter..mit ini.Create im Knopf kommt die Violation nicht aber wie gesagt der Button will nicht automatisch drücken..obwohl er ja geht wenn man manuell drückt kommt nichts..somit sollte er gehen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:58 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