freepascal.ru • Просмотр темы - Доработки Rx
 

Доработки Rx

Модераторы: alexs, Модераторы

Re: Доработки Rx

Сообщение alexs » 25.05.2018 09:57:49

Вот с этим компонентом у меня как раз непонятки.
Я его перенесё их исходного RX - но сам не пользуюсь.
Как ты его используешь?
Метку языка добавил.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3662
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Доработки Rx

Сообщение kit » 26.05.2018 07:39:07

Код: Выделить всё
with LoginDialog do begin
  Active := False;
  if not Login then Halt;
end;

procedure TKpForm.LoginDialogCheckUser(Sender: TObject; const UserName, Password: string; var AllowLogin: Boolean);
begin
  AllowLogin := False;
  with DM.ZStatement.ExecuteQuery('SELECT CAST(id AS Integer), name, password, CAST(level AS Integer) FROM users WHERE name = "' + UserName + '"') do
  if not(GetRow = -1) and ((TrimRight(GetString(3)) = '')
    or (IntToStr(GetCRC32Int(UserName + Password)) = TrimRight(GetString(3)))) then begin
      DM.UserId := GetInt(1);
      DM.LastU := GetInt(1);
      DM.UserName :=  Trim(GetString(2));
      DM.Password := GetString(3);
      DM.UserLevel := GetInt(4);
      AllowLogin := True;
  end else
    ShowPopup('Невірне ім`я або пароль!', idDialogShield);
end;
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение kit » 08.06.2018 17:54:21

Нужен експорт RxDBGrid в dbf. Есть что-то готовое или надо самому делать?
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение alexs » 09.06.2018 10:02:58

Мне кажется - ошибка в формулировании задачи :-)
Экспорт в DBF из набора данных, который подключен к RxDBGrid - так вернее.
Есть штатный пакет из FPC - DataExport. Он много чего умеет.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3662
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Доработки Rx

Сообщение kit » 12.06.2018 09:26:06

Сделал проще:

procedure TBrowseForm.DataSetExportDbfExecute(Sender: TObject);
var
BM: TBookMark;
i: Byte;
begin
with DM, TDBF.Create(Self) do
try
BM := DBGrid.DataSource.DataSet.GetBookmark;
DBGrid.DataSource.DataSet.DisableControls;
FilePath := IniReadString(IniFileName, 'Main', 'DirDov', DirTemp);;
TableName := Caption + '.dbf';
KpForm.ShowPopup('Експорт ' + FilePath + TableName, idDialogInfo);
for i := 0 to DBGrid.Columns.Count - 1 do
with DBGrid.Columns.Items[i].Field do
FieldDefs.Add(FieldName, ftString, DataSize);
CreateTable;
Open;
while not(DBGrid.DataSource.DataSet.Eof) do begin
Append;
for i := 0 to DBGrid.Columns.Count - 1 do
Fields[i].AsString := UTF8ToCP866(DBGrid.DataSource.DataSet.FieldByName(DBGrid.Columns.Items[i].FieldName).AsString);
Post;
DBGrid.DataSource.DataSet.Next
end;
Close;
with DBGrid.DataSource.DataSet do
if BookmarkValid(BM) then
GotoBookmark(BM);
finally
DBGrid.DataSource.DataSet.EnableControls;
FreeBookmark(BM);
Free;
end;
end;
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение kit » 08.08.2018 11:44:35

Добавь, пожалуйста:

procedure TRxDBGrid.OnIniLoad(Sender: TObject);
...
//{$IFDEF FIX_WIDTH_WIDE_STRING96}
// if Screen.PixelsPerInch = 96 then
//{$ENDIF}
C.Width := Scale96ToForm(FPropertyStorageLink.Storage.ReadInteger(S1 + sWidth, C.Width)); // kit
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение alexs » 09.08.2018 13:30:20

Точно будет работать? Не будет расползаться?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3662
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Доработки Rx

Сообщение kit » 09.08.2018 17:06:54

alexs писал(а):Точно будет работать? Не будет расползаться?

Тестирую на себе. Пока нерасползается. Можеш подождать пока протестирую на клиентах.
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение alexs » 10.08.2018 09:54:38

У меня с этим были большие проблемы на win7 - пришлось в своё время костыль ставить.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3662
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Доработки Rx

Сообщение kit » 11.08.2018 10:44:14

Проблеми при включении масштабирования в Windows?
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение alexs » 13.08.2018 09:24:42

Да.
Причём проблема на уровне LCL - ширину и высоту когда надо и не надо пересчитывают при включенном масштабировании.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3662
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Доработки Rx

Сообщение kit » 13.08.2018 09:33:34

Scale96ToForm должно помочь. Еще можна поставить птичку "Использовать масштабирование LCL (Hi-DPI)" но у моих клиентов со старими виндовсами програма перестала работать.
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение alexs » 13.08.2018 11:12:27

Я погоняю. Но проблема этим не решится
попробуй в SeesionProperty у формы добавить какие либо размеры компонентов с формы:
например - на форму два грида (мастер/детайл) со сплитером между ними.
Вот если начнёшь сохранять ширину этих гридов - то будут нежданчики.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3662
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Доработки Rx

Сообщение kit » 14.08.2018 08:27:27

С SeesionProperty всегда били проблеми поетому я его не использую.
Добавь свой SessionProperty в RxIniPropStorage
kit
постоялец
 
Сообщения: 142
Зарегистрирован: 29.09.2016 09:39:07

Re: Доработки Rx

Сообщение alexs » 16.08.2018 11:52:18

Там (в TRxIniPropStorage) по хорошему надо делать обработку сохранения ширины и высоты
Я пока простой костыль вставил - смотри FinishPropertyList.
Лучше бы конечно дописать перемасштабирование. Но пока у меня это не главное - устроило такое поведение.
Если получится - допиши.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3662
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Пред.След.

Вернуться в RxLib

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru