TMSSmoothMessageDialog -> Auswertung der Buttons



  • Hallo!

    Ich habe hier einen Komponenten-Pack von TMS, dieser enthält unter anderem den SmoothMessageDialog1, leider ist der Beispielcode in Delphi geschrieben und ich scheinbar zu doof um das zu verstehen. Ich poste mal den Code:

    procedure TForm8.DoDialog2;
    begin
      case AdvSmoothMessageDialog2.ExecuteDialog of
      mrOk: ShowSmoothMessage('Try Later clicked');
      mrCancel: ShowSmoothMessage('Buy now clicked');
      mrRetry: ShowSmoothMessage('Try premium clicked');
      end;
    end;
    

    Scheinbar wird an oben angegebener Stelle ausgewertet, ich versteh nicht wie das im Builder funktioniert.

    Wäre für Hilfe dankbar.

    LG, Maik



  • switch(AdvSmoothMessageDialog2->ExecuteDialog())
    {
     case mrOk: ShowSmoothMessage('Try Later clicked'); break;
     case mrCancel: ShowSmoothMessage('Buy now clicked'); break;
     case mrRetry: ShowSmoothMessage('Try premium clicked'); break;
    }
    

    Alternativ auch:

    int retVal = AdvSmoothMessageDialog2->ExecuteDialog();
    if(retVal==mrOk) ShowSmoothMessage('Try Later clicked');
    else if(retVal==mrCancel) ShowSmoothMessage('Buy now clicked');
    else if(retVal==mrRetry) ShowSmoothMessage('Try premium clicked');
    

    mfg
    xXx



  • Vielen Dank, hat mir sehr geholfen.

    LG, Maik



  • Hallo!

    Bis jetzt hat das alles wunderbar funktioniert, leider hab ich jetzt ein Problem. Bei nachfolgendem Code erscheint der SmoothMessageDialog ganz normal, aber wenn ich etwas Anklicke passiert garnichts, obwohl die Button-Results korrekt eingestellt sind. Hab ich was übersehen? Für Hilfe wär ich echt dankbar, ich glaub ich seh vor lauter Bäumen gerade keinen Wald 🙂

    // Pruefen ob Automat zugeordnet werden soll
    	AdvSmoothMessageDialog1->Caption = "Möchten Sie den Automaten '" +
    	ADOQuery1->FieldByName("BEZEICHNUNG")->AsString +
    	"'\nmit der Zulassungs-Nr. '" + ADOQuery1->FieldByName("SNNR")
    	->AsString + "' dem Aufstellplatz '" +
    	f_kundenverwaltung->ADOQuery1->FieldByName("AUFSTELLPLATZ")
    	->AsString + "' zuordnen?";
    
    	switch(AdvSmoothMessageDialog1->Execute()) {
    
    	case mrYes:
    
    		// Automat zuordnen
    		NR_KD = f_kundenverwaltung->ADOQuery1->FieldByName("NR_KD")->AsInteger;
    		SNNR = ADOQuery1->FieldByName("SNNR")->AsString;
    
    		// Gebuehr abfragen
    		GEBUEHR = StrToFloat(InputBox("Monatliche Gebühr", "Betrag", "0,00"))
    			/ 1.19;
    
    		// Wirtanteil in Prozent abfragen
    		PROZENT_WIRT = StrToFloat(InputBox("Wirtanteil in Prozent", "Prozent",
    				"0,00"));
    
    		// Erstbefuellung abfragen
    		ERSTBEFUELLUNG = StrToFloat(InputBox("Erstbefüllung", "Betrag",
    				"0,00"));
    
    		// Aufstellungsdatum abfragen
    		A_DATUM = StrToDate(InputBox("Datum eingeben",
    				"An welchem Datum wurde der Automat ausgeliefert?",
    				(DateToStr(Date()))));
    
    		// Vor der ersten Abrechnung wird das Auslieferungsdatum verwendet
    		ABRDAT_A = A_DATUM;
    
    		// Terminal dem Kunden zuordnen
    		DecimalSeparator = '.';
    		ADOQuery2->SQL->Clear();
    		ADOQuery2->SQL->Text =
    			"UPDATE automatenverwaltung.automatenverwaltung SET NR_KD = " +
    			IntToStr(NR_KD) + ", GEBUEHR_KD = " + (GEBUEHR)
    			+ ", ERSTBEFUELLUNG = " + (ERSTBEFUELLUNG) + ", PROZENT_WIRT = " +
    			(PROZENT_WIRT) + ", A_DATUM = '" + FormatDateTime("yyyy.mm.dd",
    			A_DATUM) + "', ABRDAT_A = '" + FormatDateTime("yyyy.mm.dd",
    			A_DATUM) + "' WHERE SNNR = '" + AnsiString(SNNR) + "'";
    		ADOQuery2->ExecSQL();
    		DecimalSeparator = ',';
    
    		// Statusmeldung ausgeben
    		f_kundenverwaltung->AdvSmoothMessageDialog4->Caption = "Automat '" +
    			ADOQuery1->FieldByName("SNNR")->AsString +
    			"'\nwurde dem Aufstellplatz '" +
    			f_kundenverwaltung->ADOQuery1->FieldByName("AUFSTELLPLATZ")
    			->AsString + "' zugeordnet!";
    		f_kundenverwaltung->AdvSmoothMessageDialog4->Execute();
    
    		// Fenster schliessen
    		Close();
    
    		// Anzeige fuer zuegordnete Terminals aktualisieren
    		f_kundenverwaltung->ADOQuery2->Active = false;
    		f_kundenverwaltung->ADOQuery2->Active = true;
    
    		break;
    
    	case mrNo:
    		break;
    	}
    

    LG, Maik


Anmelden zum Antworten