Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [HELP]Assistant schaltet sich aus (https://www.delphipraxis.net/130798-%5Bhelp%5Dassistant-schaltet-sich-aus.html)

Gabberjool 13. Mär 2009 10:10


[HELP]Assistant schaltet sich aus
 
Hallo alle,
Ich habe folgendes problem. Nach dem der Timer mit dem Status auf 100% ist, sollte er über den Assistant die Message ausgegeben werde. Die man dann mit Ok bestätigen soll.

Das Problem ist, das sich der Assistant schliß sobald man auf Ok klickt obwohl er das nicht sollte.

Wisst ihr evt woran das ligt ?
Besten dank schonmal...


Delphi-Quellcode:
const
  Msg = 'Script wurden Installiert, du kannst nun die Buttons benutzen^.';
begin Probar1.Position := Probar1.Position +1;
      Application.ProcessMessages;

If Probar1.Position = 10 then
  Begin bsSkinCheckRadioBox1.Checked := true;
        bsSkinButton2.Visible := true; end;

If Probar1.Position = 25 then
  Begin bsSkinCheckRadioBox3.Checked := true;
        bsSkinButton1.Visible := true; end;

If Probar1.Position = 48 then
  Begin bsSkinCheckRadioBox2.Checked := true;
        bsSkinButton3.Visible := true; end;

If Probar1.Position = 82 then
  Begin bsSkinCheckRadioBox4.Checked := true;
        bsSkinButton4.Visible := true; end;

If Probar1.Position = 99 then
  Begin positiv.Visible := True;
        negativ.Visible := False; end;


If Probar1.Position = 100 then
  begin bsSkinCheckRadioBox5.Checked := true;
        Timer1.Enabled := false;
        Probar1.Position := 100;
        bsSkinButton2.Enabled := True;
        bsSkinButton1.Enabled := True;
        bsSkinButton3.Enabled := True;
        bsSkinButton4.Enabled := True;
        Assistant1.MsgDlg.Title := 'Installation Beendet !';
        Assistant1.MessageDlg(Msg, mtInformation, [mbOK], 0); end; end;


Hier mal der ganze code... evt ligts da irgendwo

Delphi-Quellcode:
implementation

{$R *.dfm}

// Timer //////////////////////
//
procedure TForm1.Timer1Timer(Sender: TObject);
const
  Msg = 'Script wurden Installiert, du kannst nun die Buttons benutzen^.';
begin Probar1.Position := Probar1.Position +1;
      Application.ProcessMessages;

If Probar1.Position = 10 then
  Begin bsSkinCheckRadioBox1.Checked := true;
        bsSkinButton2.Visible := true; end;

If Probar1.Position = 25 then
  Begin bsSkinCheckRadioBox3.Checked := true;
        bsSkinButton1.Visible := true; end;

If Probar1.Position = 48 then
  Begin bsSkinCheckRadioBox2.Checked := true;
        bsSkinButton3.Visible := true; end;

If Probar1.Position = 82 then
  Begin bsSkinCheckRadioBox4.Checked := true;
        bsSkinButton4.Visible := true; end;

If Probar1.Position = 99 then
  Begin positiv.Visible := True;
        negativ.Visible := False; end;


If Probar1.Position = 100 then
  begin bsSkinCheckRadioBox5.Checked := true;
        Timer1.Enabled := false;
        Probar1.Position := 100;
        bsSkinButton2.Enabled := True;
        bsSkinButton1.Enabled := True;
        bsSkinButton3.Enabled := True;
        bsSkinButton4.Enabled := True;
        Assistant1.MsgDlg.Title := 'Installation Beendet !';
        Assistant1.MessageDlg(Msg, mtInformation, [mbOK], 0); end; end;


// Form Setting ///////////////////////
//
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
const
  Msg = 'Bist du sicher das du das Programm Verlassen Wilst ?';
begin Assistant1.MsgDlg.Title := 'Beenden';
      Assistant1.MessageDlg(Msg, mtInformation, [mbYes, mbNo], 0);
      Assistant1.Visible := False; end;

procedure TForm1.FormCreate(Sender: TObject);
begin Timer1.Enabled := True;
      positiv.Visible := False;
      Assistant1.Visible := True; end;


// Buttons Aktionen////////////////////////////
//
procedure TForm1.bsSkinButton1Click(Sender: TObject);
  begin ShellExecute(0, Nil, PChar('C:\Programme\Counter Strike Script Installer\ScrGui\'), Nil, Nil, SW_NORMAL); end;

procedure TForm1.bsSkinButton4Click(Sender: TObject);
  begin ShellExecute(0, Nil, PChar('C:\Programme\Counter Strike Script Installer\ScrRcCfg\'), Nil, Nil, SW_NORMAL); end;

procedure TForm1.bsSkinButton3Click(Sender: TObject);
  begin ShellExecute(0, Nil, PChar('C:\Programme\Counter Strike Script Installer\ScrPic\'), Nil, Nil, SW_NORMAL); end;

procedure TForm1.bsSkinButton2Click(Sender: TObject);
  begin ShellExecute(0, Nil, PChar('C:\Programme\Counter Strike Script Installer\ScrTool\'), Nil, Nil, SW_NORMAL); end;

procedure TForm1.bsSkinXFormButton1Click(Sender: TObject);
const
  Msg = 'Bist du sicher das du das Programm Verlassen Wilst ?';
begin Assistant1.MsgDlg.Title := 'Beenden';
      Assistant1.MessageDlg(Msg, mtInformation, [mbYes, mbNo], 0);
      Assistant1.Visible := False;
      close; end;

end.

_BlackDragon_ 13. Mär 2009 10:30

Re: [HELP]Assistant schaltet sich aus
 
Hi,

du zeigst einen Dialog an

Delphi-Quellcode:
...
Assistant1.MessageDlg(Msg, mtInformation, [mbOK], 0);
...
aber du fragst den Rückgabewert des Message-Dialoges nicht ab. Die MessageDlg-Funktion gibt als Rückgabewert einen Integer zurück, für den es Konstanten gibt (mrOK, mrCancel, usw...).
Das könntest du so machen.
Delphi-Quellcode:

procedure IrgendEtwas;
var
  iResult: Integer;
begin
  iResult := MessageDlg(...);
  if iResult = mrOK then
  begin
    // hier auf OK reagieren
  end
  else if iResult = mrCancel
  begin
   // hier auf Cancel reagieren
  end
  else
  begin
   // hier evtl. alle anderen Fälle
  end;
end;
Ich hoffe ich hab die Frage richtig verstanden, ist nämlich etwas "schwammig" formuliert. :wink:
Dadurch rate ich jetzt mal dein Problem. :roll:

Gruss

BlackDragon

nuclearping 13. Mär 2009 10:30

Re: [HELP]Assistant schaltet sich aus
 
Wenn du uns noch verraten würdest, was "Assistant1" ist und wie es deklariert wird, wären wir schonmal einen Schritt weiter. ;)

Gabberjool 13. Mär 2009 10:33

Re: [HELP]Assistant schaltet sich aus
 
Zitat:

Zitat von nuclearping
Wenn du uns noch verraten würdest, was "Assistant1" ist und wie es deklariert wird, wären wir schonmal einen Schritt weiter. ;)

ups...

das ist das:
http://www.delphiarea.com/products/d...ges/assistant/



Zitat:

Zitat von _BlackDragon_
Hi,

du zeigst einen Dialog an

Delphi-Quellcode:
...
Assistant1.MessageDlg(Msg, mtInformation, [mbOK], 0);
...
aber du fragst den Rückgabewert des Message-Dialoges nicht ab. Die MessageDlg-Funktion gibt als Rückgabewert einen Integer zurück, für den es Konstanten gibt (mrOK, mrCancel, usw...).
Das könntest du so machen.
Delphi-Quellcode:

procedure IrgendEtwas;
var
  iResult: Integer;
begin
  iResult := MessageDlg(...);
  if iResult = mrOK then
  begin
    // hier auf OK reagieren
  end
  else if iResult = mrCancel
  begin
   // hier auf Cancel reagieren
  end
  else
  begin
   // hier evtl. alle anderen Fälle
  end;
end;
Ich hoffe ich hab die Frage richtig verstanden, ist nämlich etwas "schwammig" formuliert. :wink:
Dadurch rate ich jetzt mal dein Problem. :roll:

Gruss

BlackDragon


das ist eine komponenten nicht das MessageDlg oder ist das egal wird das bei jedem gebraucht.


Oh... jetzt versteh ich was du meinst... sry =) jop das könnt ich mal probieren...

_BlackDragon_ 13. Mär 2009 10:55

Re: [HELP]Assistant schaltet sich aus
 
Hi,

wie gesagt habe ich geraten. :wink: Für diese Kompo gibts doch bestimmt Beispiele, ein Dokumentation oder
(wie ich gesehen habe) ein Support-Forum. Dort sollte doch zu finden sein, wie du mit einem
Dialog dieser Komponente verfahren solltest.

Meine Antwort bezog sich auf die Funktion MessageDlg und die Vermutung war, das es sich bei der Komponente ähnlich verhalten müsste, da der Aufbau der Parameter beider Aufrufe identisch zu sein scheint.

Der Beispiel-Code war auch nur als "möglicher Ablauf" der Nutzung und als Denkanstoß zu betrachten.

Gruss

BlackDragon

Gabberjool 13. Mär 2009 10:57

Re: [HELP]Assistant schaltet sich aus
 
ja aber für den assistat muss ich in demfall die dokumentation anschauen weil über CloseQuery gehts so:

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
const
  Msg = 'Bist du sicher das du das Programm Verlassen Wilst ?';
begin
  if not Assistant1.MovingToSync then
  begin Assistant1.MsgDlg.Title := 'Beenden';
        CanClose := Assistant1.MessageDlg(Msg, mtWarning, [mbYes, mbNo], 0) = mrYes;
        if CanClose and Assistant1.Showing and (Assistant1.DockSite = nil) then
        begin Hide;
              Assistant1.Visible := False; end;
        end
      else
        CanClose := False; end;
Nur an den normalen OK ohne das er es closed... bin noch am rumtesten

Gabberjool 13. Mär 2009 11:20

Re: [HELP]Assistant schaltet sich aus
 
ach ich habs jetzt einfach so gemacht....

Delphi-Quellcode:
If Probar1.Position = 100 then
        Assistant1.MsgDlg.Title := 'Installation Beendet !';
        Assistant1.MessageDlg(Msg, mtInformation, [mbOK], 0);
        Assistant1.Visible := True; end; end;

Ich schalte halt den assistant einfach wider ein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 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