Страница 8 из 9

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

СообщениеДобавлено: 25.05.2018 09:57:49
alexs
Вот с этим компонентом у меня как раз непонятки.
Я его перенесё их исходного RX - но сам не пользуюсь.
Как ты его используешь?
Метку языка добавил.

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

СообщениеДобавлено: 26.05.2018 07:39:07
kit
Код: Выделить всё
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;

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

СообщениеДобавлено: 08.06.2018 17:54:21
kit
Нужен експорт RxDBGrid в dbf. Есть что-то готовое или надо самому делать?

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

СообщениеДобавлено: 09.06.2018 10:02:58
alexs
Мне кажется - ошибка в формулировании задачи :-)
Экспорт в DBF из набора данных, который подключен к RxDBGrid - так вернее.
Есть штатный пакет из FPC - DataExport. Он много чего умеет.

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

СообщениеДобавлено: 12.06.2018 09:26:06
kit
Сделал проще:

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;

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

СообщениеДобавлено: 08.08.2018 11:44:35
kit
Добавь, пожалуйста:

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

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

СообщениеДобавлено: 09.08.2018 13:30:20
alexs
Точно будет работать? Не будет расползаться?

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

СообщениеДобавлено: 09.08.2018 17:06:54
kit
alexs писал(а):Точно будет работать? Не будет расползаться?

Тестирую на себе. Пока нерасползается. Можеш подождать пока протестирую на клиентах.

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

СообщениеДобавлено: 10.08.2018 09:54:38
alexs
У меня с этим были большие проблемы на win7 - пришлось в своё время костыль ставить.

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

СообщениеДобавлено: 11.08.2018 10:44:14
kit
Проблеми при включении масштабирования в Windows?

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

СообщениеДобавлено: 13.08.2018 09:24:42
alexs
Да.
Причём проблема на уровне LCL - ширину и высоту когда надо и не надо пересчитывают при включенном масштабировании.

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

СообщениеДобавлено: 13.08.2018 09:33:34
kit
Scale96ToForm должно помочь. Еще можна поставить птичку "Использовать масштабирование LCL (Hi-DPI)" но у моих клиентов со старими виндовсами програма перестала работать.

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

СообщениеДобавлено: 13.08.2018 11:12:27
alexs
Я погоняю. Но проблема этим не решится
попробуй в SeesionProperty у формы добавить какие либо размеры компонентов с формы:
например - на форму два грида (мастер/детайл) со сплитером между ними.
Вот если начнёшь сохранять ширину этих гридов - то будут нежданчики.

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

СообщениеДобавлено: 14.08.2018 08:27:27
kit
С SeesionProperty всегда били проблеми поетому я его не использую.
Добавь свой SessionProperty в RxIniPropStorage

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

СообщениеДобавлено: 16.08.2018 11:52:18
alexs
Там (в TRxIniPropStorage) по хорошему надо делать обработку сохранения ширины и высоты
Я пока простой костыль вставил - смотри FinishPropertyList.
Лучше бы конечно дописать перемасштабирование. Но пока у меня это не главное - устроило такое поведение.
Если получится - допиши.