Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    (Delphi 7) Riavvio

    Con questo codice riesco a riavviare il PC ma vorrei un messaggio che mi permetta di confermare il riavvio come posso modificare il codice?
    codice:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if not ExitWindows(EW_RestartWindows, 0) then
      ShowMessage('Un programma rifiuta di chiudersi.');
    end;

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475

    Re: (Delphi 7) Riavvio

    Qui ho trovato questo pezzo di codice.

    codice:
    var
      buttonSelected : Integer;
    begin
      // Show a confirmation dialog
      buttonSelected := MessageDlg('Confirmation',mbError, mbOKCancel, 0);
    
      // Show the button type selected
      if buttonSelected = mrOK     then ShowMessage('OK pressed');
      if buttonSelected = mrCancel then ShowMessage('Cancel pressed');
    end;
    Adattandolo, dovrebbe essere una cosa tipo:

    codice:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      buttonSelected : Integer;
    begin
      buttonSelected := MessageDlg('Confirmation',mbError, mbOKCancel, 0);
    
      if buttonSelected = mrOK then 
          if not ExitWindows(EW_RestartWindows, 0) then
              ShowMessage('Un programma rifiuta di chiudersi.');
    end;
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Re: (Delphi 7) Riavvio

    Originariamente inviato da camaleonteplus
    Con questo codice riesco a riavviare il PC ma vorrei un messaggio che mi permetta di confermare il riavvio come posso modificare il codice?
    Aggiungi una conferma prima di invocare la funzione tramite il metodo Application.MessageBox. :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    L'ho personalizzato cosi:

    codice:
    procedure TForm1.CambiaClick(Sender: TObject);
    var
      buttonSelected : Integer;
    begin
    SysSetComputerName (PC.Text);
    StatusBar.Panels[2].Text:='Nome PC Cambiato'
      // Mostri un dialogo di conferma
    buttonSelected:= MessageDlg('Le Modifiche Diverrano Effettive Dopo Il Riavvio Del PC', mtWarning, mbOKCancel, 0);
      // Mostri il tipo di tasto selezionato
      if buttonSelected = mrOK then if not ExitWindows(EW_RestartWindows, 0)
    if buttonSelected = mrCancel then ShowMessage('Cancel pressed')
    then ShowMessage('Un programma rifiuta di chiudersi.');
    end;
    Ma mi da questo errore:
    [Error] Email.pas(482): Missing operator or semicolon

    Che fa riferimento a questa riga:
    buttonSelected:= MessageDlg('Le Modifiche Diverrano Effettive Dopo Il Riavvio Del PC', mtWarning, mbOKCancel, 0);

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da camaleonteplus
    Ma mi da questo errore:
    [Error] Email.pas(482): Missing operator or semicolon
    Direi che l'errore parla chiaro.

    Originariamente inviato da camaleonteplus
    Che fa riferimento a questa riga:
    buttonSelected:= MessageDlg('Le Modifiche Diverrano Effettive Dopo Il Riavvio Del PC', mtWarning, mbOKCancel, 0);
    Secondo me, ci manca anche un then in uno degli if che hai scritto, però non posso che suggerire molto caldamente di studiare la sintassi di un linguaggio prima di utilizzarlo, in primo luogo; poi, soprattutto a fronte di errore in fase di compilazione, nulla ti impedisce di andarti a vedere nella documentazione in linea qual è la sintassi corretta e vedere se quella utilizzata da te la rispetta.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Adesso ci riprovo!

  7. #7
    Adesso funziona ho modificato cosi il codice:

    codice:
    procedure TForm1.CambiaClick(Sender: TObject);
    var
      buttonSelected : Integer;
    begin
    SysSetComputerName (PC.Text);
    StatusBar.Panels[2].Text:='Nome PC Cambiato';
      // Mostri un dialogo di conferma
    buttonSelected := MessageDlg('Le Modifiche Diverrano Effettive Dopo Il Riavvio Del PC', mtWarning, mbOKCancel, 0);
      // Mostri il tipo di tasto selezionato
    if buttonSelected = mrOK then if not ExitWindows(EWX_POWEROFF or EWX_FORCE,0)
    then if not buttonSelected = mrCancel then ShowMessage('Operazione Annullata');
    end;

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Prova a tradurre questo codice che hai scritto

    codice:
    if buttonSelected = mrOK then if not ExitWindows(EWX_POWEROFF or EWX_FORCE,0)
    then if not buttonSelected = mrCancel then ShowMessage('Operazione Annullata');
    end;
    esprimendolo in lingua italiana.

    A me non sembra molto chiaro...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Credo sia più semplice questo:

    codice:
    if MessageBox(0,'Restart Pc','Options',+mb_YesNo +mb_ICONWARNING) = 6 then
    Restart....
    ma forse non ho ben capito!

  10. #10
    alka mi avevi detto di guardare meglio il codice perché secondo te non andava per il fatto che non era scritto bene per gli then e gli if aiutandomi con un traduttore inglese italiano ho capito che modificando il codice come lo ho scritto avrebbe funzionato, adesso funziona se credi che possa semplificarlo ti sarei tanto grato del tuo aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.