EtheaDev / StyledComponents

Components similar to Delphi VCL Buttons, Toolbar, DbNavigator, BindNavigator, ButtonGroup and CategoryButtons with Custom Graphic Styles, and an advanced, full-customizable TaskDialog, also with animations!
Apache License 2.0
152 stars 34 forks source link

Infomation how create a StyledTaskDialog at runtime with verification procedure. #40

Closed MAUROFAILO closed 1 month ago

MAUROFAILO commented 1 month ago

Buon giorno Carlo. Scusami per il disturbo e se scrivo in italiano. Per personalizzare e velocizzare la visualizzazione di un messaggio ho creato una apposita semplice procedura, che crea a runtime una StyledTaskDialog e dovrebbe abilitare il tasto "OK" al momento del click sulla Chechbox relativa alla "Verifica di conferma". Dovrei quindi penso collegare all'evento OnVerificationClicked dell'oggetto StyledTaskDialog creato una procedura che abilita il tasto "OK". Ho provato in tutti i modi. Il codice sotto riportato è compilabile, ma il valore "Sender" inviato alla procedura è sempre NIL e quindi non riesco ad abilitare il tasto "OK". Hai qualche soluzione ? Sbaglio qualcosa ? Il collegamento all'evento OnVerificationClicked è corretto ? Il codice proposto è il seguente. Grazie e scusami per il disturbo.

PS. Sarebbe bello, se ci fosse la possibilità nella demo StyledTaskDialogDemo di inserire un memo in cui visualizzare il codice delphi da "Incollare" nei propri software.

Procedure StyledTaskDialogVerificationClicked(Sender: TObject); begin if (tfVerificationFlagChecked in (Sender as TStyledTaskDialog).Flags) then (Sender as TStyledTaskDialog).CommonButtons:=(Sender as TStyledTaskDialog).CommonButtons + [tcbOK] else (Sender as TStyledTaskDialog).CommonButtons:=(Sender as TStyledTaskDialog).CommonButtons - [tcbOK]; end;

Function CreateConfirmDialogOKNOWithVerificationTest(Messaggio:String):TStyledTaskDialog; Var StyledTaskDialog1:TStyledTaskDialog; M: TMethod; Begin StyledTaskDialog1:=TStyledTaskDialog.create(Nil); try With StyledTaskDialog1 do Begin mainIcon:=tdiWarning; Caption:='Richiesta di conferma'; Title:='Attenzione:'; Text:= Messaggio; VerificationText:='Verifica di conferma'; CommonButtons:=[tcbNO]; DefaultButton:=tcbNO; m.Data := StyledTaskDialog1; m.Code := @StyledTaskDialogVerificationClicked; OnVerificationClicked := TNotifyEvent(M); Execute; If (Modalresult=MrOk) then ShowMessage('Hai selezionato ok. Bravo!!!!'); End; finally StyledTaskDialog1.free; end;

carloBarazzetta commented 1 month ago

Zippami un progetto completo di demo così lo posso compilare e verificare cosa non funziona...

MAUROFAILO commented 1 month ago

TestDialog.zip Grazie per la disponibilità.

MAUROFAILO commented 1 month ago

Ho verifiato. TTaskDialog non permette di abilitare (attraverso l'esecuzuione dell'evento Validation) i necessari Button presenti sul Dialog. Peccato. La mia esigenza era quella di utilizzare il "Check di valitazione" per attivare il tasto OK. (doppia conferma necessaria ad esempio per l'esecuzione di qualcosa di importante).

carloBarazzetta commented 1 month ago

Te lo sto implementando...

MAUROFAILO commented 1 month ago

Grazie carlo per la disponibilità ... ma non volevo farti perdere tempo ... ma mi sembrava una cosa utile.