tarcisionmjr Posted May 14, 2020 Posted May 14, 2020 hello friends, I have the screen attached, I use 5 progress bars inside a form and I need to change the color of each progress bar as they change their position, so type value below 50% a color value above 50% other color at run time ... need help Quote
tarcisionmjr Posted May 14, 2020 Author Posted May 14, 2020 Just now, Sherzod said: Hello, This post may help you: unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, uniGUITypes, uniGUIAbstractClasses, uniGUIClasses, uniGUIRegClasses, uniGUIForm, uniTrackBar, uniProgressBar, uniGUIBaseClasses, uniButton, uniEdit, uniBitBtn; type TMainForm = class(TUniForm) UniButton1: TUniButton; UniProgressBar1: TUniProgressBar; UniTrackBar1: TUniTrackBar; UniEdit1: TUniEdit; UniBitBtn1: TUniBitBtn; procedure UniTrackBar1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; function MainForm: TMainForm; implementation {$R *.dfm} uses uniGUIVars, MainModule, uniGUIApplication; function MainForm: TMainForm; begin Result := TMainForm(UniMainModule.GetFormInstance(TMainForm)); end; procedure TMainForm.UniTrackBar1Change(Sender: TObject); var cor: string; begin UniProgressBar1.Position := UniTrackBar1.Position; if UniTrackBar1.Position < 50 then begin cor := 'white, green'; end else if UniTrackBar1.Position < 75 then begin cor := 'white, yellow'; end else begin cor := 'white, red'; end; with UniBitBtn1.JSInterface do begin JSCall('btnWrap.setStyle', ['background-image', 'linear-gradient(to right, ' + cor + ')']); JSCall('btnWrap.setStyle', ['background-size', UniTrackBar1.Position.toString + '% 100%']); JSCall('btnWrap.setStyle', ['background-repeat', 'no-repeat']); end; end; initialization RegisterAppFormClass(TMainForm); end. I found this code here and it is working well, but in this case the progress bar is being made and a TUniBitBtn component I want to do in the same code style but in a TUniProgressBar what would be the change I need to make in JSCALL for it to work. ... Quote
Sherzod Posted May 14, 2020 Posted May 14, 2020 17 minutes ago, tarcisionmjr said: I want to do in the same code style but in a TUniProgressBar... Something like this: procedure TMainForm.UniButton1Click(Sender: TObject); begin with UniProgressBar1 do begin JSInterface.JSCall('bar.setStyle', ['background-image', 'linear-gradient(to right, green, lime)']); ... end; end; Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.