AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form als eigener Thread

Ein Thema von day · begonnen am 6. Okt 2004 · letzter Beitrag vom 7. Okt 2004
Antwort Antwort
Seite 2 von 2     12   
michael.kaufmann

Registriert seit: 5. Okt 2004
Ort: Liechtenstein
9 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Form als eigener Thread

  Alt 7. Okt 2004, 12:06
nein eigentlich nicht wenn das formular in einem thread ist und nur in diesem thread bearbeitet wird ist das kein problem. Probleme gibt es nur wenn andere threads das formular ansprechen bzw. eine neue instanz von einem anderen thread erzeugt wird.

jaj die Tapplication da haben sie das problem mit clx und dlls
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#12

Re: Form als eigener Thread

  Alt 7. Okt 2004, 12:17
hallo
Das Intro hat im grossen und ganzen keine interaktionen. Deshalb sehe ich da einen kleineren Aufwand das Form als Thread zu erzeugen. Wenn ich hingegen das DataModule als Thread erzeugen würde wäre das ein weit grösserer Aufwand.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#13

Re: Form als eigener Thread

  Alt 7. Okt 2004, 12:24
Hallo,
wenn ich es richtig verstehe handelt es sich hier um das Splashscreen-Problem.
Erzeuge im Projektquelltext das Formular mit dem Intro vor dem DataModul und
verwende Show anstatt ShowModal.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
day

Registriert seit: 10. Mai 2004
223 Beiträge
 
#14

Re: Form als eigener Thread

  Alt 7. Okt 2004, 21:38
Hallo

Ich habe eine Lösung. Bin zwar nicht ganz so glücklich aber es läuft. Was haltet ihr davon?
Was würdet ihr verbessern?

Code:
  constructor TMain.create();
  var i : Integer;
  begin

    //Überprüft, dass nur eine Applikation pro PC gestartet wird.
    if ( FindWindow( Nil, PChar( APPLICATION_TITLE )) = 0 ) Then
    begin
      //initCodeSite
      mSys := TSystemFunc.create();
      mSys.InitCodeSite();

      mHasError := False;

      //Applikation initialisieren
      Application.Initialize;
      Application.Title := APPLICATION_TITLE;

      initIntro();
      //mIntro := TIntroThread.Create(False);

      // Kurze Pause damit der User das Intro auch sieht.
      // Processmessage wird benötigt damit die Schrift angezeigt wird.
      for i:= 1 to 100 do
      begin
        Application.ProcessMessages;
        sleep(20);
      end;
      initDataModule();

      if(DM.DCOMConnection.Connected) Then IntroForm.ConnectionLabel.Caption := 'Connected ...';
      Application.ProcessMessages;
      initScreens();

      // Kurze Pause damit der User sieht dass sich der Server verbunden hat.
      // Processmessage wird benötigt damit die Schrift angezeigt wird.
      for i:= 1 to 50 do
      begin
        Application.ProcessMessages;
        sleep(10);
      end;

      // Intro wird Angehalten
      if(not mHasError) Then IntroForm.StopIntro();

      Application.Run;

    end
    else
    begin
      Windows.Beep(500,250);
      MessageDlg( APPLICATION_TITLE + ' is not able to run twice on this PC.', mtError, [mbOK], 0);
    end;
  end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:59 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