Jump to content

fil

Members
  • Posts

    9
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

fil's Achievements

Newbie

Newbie (1/4)

0

Reputation

  1. Hi, During update the program I get the next error In process instaling uniGUI26dcl.bpl [dcc32 Fatal Error] uniGUI26dcl.dpk(74): F2051 Unit uniToolBarEditor was compiled with a different version of uniGUIClasses.TUniContainer what fix the issue? Thaks.
  2. fil

    Variables

    Why is a globally declared variable in the Main Form publicly available for all sessions? I am declaring a variable in the main form. And this variable is publicly available for all sessions. It is not right. how to avoid this? I need a separate variable for each session.
  3. clarification, I get an error when I try to start more than one session.
  4. Hi, Unigui installation includes ShowProgress demo But this demo does not work for me in the following code. When using the UniSession.Synchronize function. function TMainForm.CreateFields():boolean; var i,perRecords:integer; perIBQuery,perIBQuery2:TIBQuery; begin //получаем список всех описаний спейсов UniMainModule.IBDatabase.Connected:=true; perIBQuery:=UniMainModule.MyInitializationTIBQerySelect(perIBQuery); perIBQuery.Active:=false; perIBQuery.SQL.Clear; perIBQuery.SQL.Add('select DESCRIPTION from SPACES group by DESCRIPTION' ); perIBQuery.Active:=true; perIBQuery2:=UniMainModule.MyInitializationTIBQerySelect(perIBQuery); perIBQuery.Last; //очищаем массив и выставляемя размер массива согласно размеру sql запросу SetLength(ParamString,0); SetLength(ParamString,perIBQuery.RecordCount); perIBQuery.first; ShowProgress('Please Wait...'); //запускаем прогрессбар UniSession.Synchronize; perRecords:=perIBQuery.RecordCount-1 ; for i:=0 to perRecords do begin UpdateProgress(i/perRecords, Format('%%%d Completed', [round(100/perRecords*i)])); UniSession.Synchronize; //создаем панельку в которой будем размещать кнопки и ParamString[i].Panel:=TUniPanel.Create(MainForm); ParamString[i].Panel.Parent:= MainForm; ParamString[i].Panel.Left:=10; ParamString[i].Panel.Top:=i*30+30; ParamString[i].Panel.Width:=650; ParamString[i].Panel.Height:=25; ParamString[i].Panel.Name:='panel'+inttostr(i); ParamString[i].Panel.Visible:=false; //скрываем чтобы быстрее грузилось //создаем название спейса ParamString[i].LabelNameSpace:=TUniLabel.Create(ParamString[i].Panel); ParamString[i].LabelNameSpace.Parent:= ParamString[i].Panel; ParamString[i].LabelNameSpace.Left:=5; ParamString[i].LabelNameSpace.Top:=5; ParamString[i].LabelNameSpace.Width:=75; ParamString[i].LabelNameSpace.Height:=25; ParamString[i].LabelNameSpace.Caption:=TRIM(perIBQuery.fieldbyname('DESCRIPTION').asstring); ParamString[i].LabelNameSpace.Name:='Label'+inttostr(i); //выбираем все группы для спейса perIBQuery2.Active:=false; perIBQuery2.SQL.Clear; perIBQuery2.SQL.Add( 'select '+ ' spaces.id, '+ ' spaces.description, '+ ' spaces.name_, '+ ' laws.id_users, '+ ' laws1.id_users admins '+ 'from laws ' + ' right outer join spaces on (laws.id_spaces = spaces.id and laws.id_users = '+inttostr(gperIDuser)+') '+ ' left outer join laws laws1 on (spaces.id = laws1.id_spaces and laws1.id_users = '+inttostr(gperIDcurentuser)+') '+ 'where '+ ' ( '+ ' (description =' +''''+TRIM(perIBQuery.fieldbyname('DESCRIPTION').asstring)+''''+') '+ ' ) ' ); perIBQuery2.Active:=true; perIBQuery2.first; //тут рисуем кнопку none ParamString[i].RadioButton4:=TUniRadioButton.Create(ParamString[i].Panel); ParamString[i].RadioButton4.Parent:= ParamString[i].Panel; ParamString[i].RadioButton4.Left:=600; ParamString[i].RadioButton4.Top:=2; ParamString[i].RadioButton4.Width:=75; ParamString[i].RadioButton4.Height:=25; ParamString[i].RadioButton4.Caption:='None'; ParamString[i].RadioButton4.Name:='RadioButton4_'+inttostr(i); ParamString[i].RadioButton4.Checked:=true; ParamString[i].CheckedID:=-1; while not perIBQuery2.Eof do begin if pos('Admin',perIBQuery2.fieldbyname('NAME_').asstring)>0 then begin ParamString[i].RadioButton1:=TUniRadioButton.Create(ParamString[i].Panel); ParamString[i].RadioButton1.Parent:= ParamString[i].Panel; ParamString[i].RadioButton1.Left:=390; ParamString[i].RadioButton1.Top:=2; ParamString[i].RadioButton1.Width:=60; ParamString[i].RadioButton1.Height:=25; ParamString[i].RadioButton1.Caption:='Admin'; ParamString[i].ID1:=perIBQuery2.fieldbyname('ID').AsInteger; //ЗАПИСЫВАЕМ ID СПЕЙСА КОТОРЕ ПОД ЭТОЙ КНОПКОЙ ParamString[i].RadioButton1.Name:=TRIM(perIBQuery2.fieldbyname('NAME_').asstring); if perIBQuery2.fieldbyname('id_users').AsInteger>0 then begin ParamString[i].RadioButton1.Checked:=true; //выставляем крыжик на правах админа если он админ ParamString[i].CheckedID:=1; //выставляем что админ был end; if (gperIDuser<>gperIDcurentuser)and(gperIDcurentuser<>0) then //если залогиненый пользователь не совпадает с выбранным пользователем и не равен глобальному админу то begin if perIBQuery2.fieldbyname('admins').AsInteger>0 then ParamString[i].Panel.Enabled:=true else ParamString[i].Panel.Enabled:=false; //если это админ спейса делаем возможность выбора, если нет то нет end; end else if (pos('Read',perIBQuery2.fieldbyname('NAME_').asstring)>0)and(pos('ReadWrite',perIBQuery2.fieldbyname('NAME_').asstring)=0) then begin ParamString[i].RadioButton2:=TUniRadioButton.Create(ParamString[i].Panel); ParamString[i].RadioButton2.Parent:= ParamString[i].Panel; ParamString[i].RadioButton2.Left:=450; ParamString[i].RadioButton2.Top:=2; ParamString[i].RadioButton2.Width:=75; ParamString[i].RadioButton2.Height:=25; ParamString[i].RadioButton2.Caption:='Read'; ParamString[i].ID2:=perIBQuery2.fieldbyname('ID').AsInteger; //ЗАПИСЫВАЕМ ID СПЕЙСА КОТОРЕ ПОД ЭТОЙ КНОПКОЙ ParamString[i].RadioButton2.Name:=trim(perIBQuery2.fieldbyname('NAME_').asstring); if perIBQuery2.fieldbyname('id_users').AsInteger>0 then begin ParamString[i].RadioButton2.Checked:=true; ParamString[i].CheckedID:=2; //выставляем что чтение end; end else if pos('ReadWrite',perIBQuery2.fieldbyname('NAME_').asstring)>0 then begin ParamString[i].RadioButton3:=TUniRadioButton.Create(ParamString[i].Panel); ParamString[i].RadioButton3.Parent:= ParamString[i].Panel; ParamString[i].RadioButton3.Left:=510; ParamString[i].RadioButton3.Top:=2; ParamString[i].RadioButton3.Width:=75; ParamString[i].RadioButton3.Height:=25; ParamString[i].RadioButton3.Caption:='ReadWrite'; ParamString[i].ID3:=perIBQuery2.fieldbyname('ID').AsInteger; //ЗАПИСЫВАЕМ ID СПЕЙСА КОТОРЕ ПОД ЭТОЙ КНОПКОЙ ParamString[i].RadioButton3.Name:=trim(perIBQuery2.fieldbyname('NAME_').asstring); if perIBQuery2.fieldbyname('id_users').AsInteger>0 then begin ParamString[i].RadioButton3.Checked:=true; ParamString[i].CheckedID:=3; //выставляем что чтение и запись end; end; perIBQuery2.Next; end; perIBQuery.next; end; HideProgress; //скрываем прогрессбар //ShowToast('Process Finished'); for i:=0 to Length(ParamString)-1 do begin ParamString[i].Panel.Visible:=true; end; perIBQuery.Free; perIBQuery2.Free; end; I get the error --------------------------- Debugger Exception Notification --------------------------- Project Project1.exe raised exception class Exception with message 'Fatal Error: Control can not be created with a nil Owner.'. --------------------------- Break Continue Help --------------------------- Without UniSession.Synchronize; I get no errors. what is the problem? More precisely, how to make a progress bar in real time when the list is loaded.
  5. had to add a name to the Panel object ParamString.Panel.Name:='panel'+inttostr(i);
  6. Looked at demos, unfortunately there are no examples with RadioButtons I need to group the RadioButtons but unfortunately: They are created but they all have one choice type TParamString=record LabelNameSpace:TUniLabel; RadioButton1:TUniRadioButton; RadioButton2:TUniRadioButton; RadioButton3:TUniRadioButton; Panel:TUniPanel; end; for i:=1 to 10 do begin ParamString[i].Panel:=TUniPanel.Create(MainForm); ParamString[i].Panel.Parent:= MainForm; ParamString[i].Panel.Left:=10; ParamString[i].Panel.Top:=i*50; ParamString[i].Panel.Width:=200; ParamString[i].Panel.Height:=45; ParamString[i].LabelNameSpace:=TUniLabel.Create(ParamString[i].Panel); ParamString[i].LabelNameSpace.Parent:= ParamString[i].Panel; ParamString[i].LabelNameSpace.Left:=5; ParamString[i].LabelNameSpace.Top:=5; ParamString[i].LabelNameSpace.Width:=75; ParamString[i].LabelNameSpace.Height:=25; ParamString[i].LabelNameSpace.Caption:='TEST'; ParamString[i].RadioButton1:=TUniRadioButton.Create(ParamString[i].Panel); ParamString[i].RadioButton1.Parent:= ParamString[i].Panel; ParamString[i].RadioButton1.Left:=50; ParamString[i].RadioButton1.Top:=5; ParamString[i].RadioButton1.Width:=75; ParamString[i].RadioButton1.Height:=25; ParamString[i].RadioButton1.Caption:='TEST'; ParamString[i].RadioButton2:=TUniRadioButton.Create(ParamString[i].Panel); ParamString[i].RadioButton2.Parent:= ParamString[i].Panel; ParamString[i].RadioButton2.Left:=100; ParamString[i].RadioButton2.Top:=5; ParamString[i].RadioButton2.Width:=75; ParamString[i].RadioButton2.Height:=25; ParamString[i].RadioButton2.Caption:='TEST'; end;
  7. I understood. child cannot be created
  8. Hello, I try to create objects by dynamic. But when I create the child object I get an error. My code: type TParamString=record LabelNameSpace:TUniLabel; RadioGroup:TUniRadioGroup; RadioButton:TUniRadioButton; end; ... var ParamString:array of TParamString; ... SetLength(ParamString,0); SetLength(ParamString,10); for i:=1 to 10 do begin ParamString[i].RadioGroup:=TUniRadioGroup.Create(MainForm); ParamString[i].RadioGroup.Parent:= MainForm; ParamString[i].RadioGroup.Left:=10; ParamString[i].RadioGroup.Top:=i*50; ParamString[i].RadioGroup.Width:=200; ParamString[i].RadioGroup.Height:=45; ParamString[i].LabelNameSpace:=TUniLabel.Create(ParamString[i].RadioGroup); ParamString[i].LabelNameSpace.Parent:= ParamString[i].RadioGroup; ParamString[i].LabelNameSpace.Left:=10; ParamString[i].LabelNameSpace.Top:=5; ParamString[i].LabelNameSpace.Width:=75; ParamString[i].LabelNameSpace.Height:=25; ParamString[i].LabelNameSpace.Caption:=inttostr(i); end; How to correct create the child objects? Thanks
×
×
  • Create New...