k245 wrote:

Это прекрасно, однако не могу зайти на wix.com: перебрасывает на ru.wix.com, а потом соединение сбрасывается

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=8964&download=0

его в России заблочили из-за поддержки Украины, только через VPN..
я потому и перешел на wordpress

377

(12 replies, posted in Russian)

senseyesenseye1983 wrote:

SQLExecute('SELECT COUNT(id) FROM bsm_off WHERE Rezerv =1');  Я все время так делал но все равно к кнопке приходилось привязывать checkbox... smile

SELECT используется для извлечения информации
UPDATE  имя_таблицы SET имя_поля=""  - обновление
INSERT INTO имя_таблицы("поле_1","поле_2")VALUES("значение_1", "значение_2") - новая запись

378

(12 replies, posted in Russian)

senseyesenseye1983 wrote:

А для checkboxa ?
SQLExecute('SELECT COUNT(id) FROM table_name WHERE file_name<>1');  ?? Как три состояния поймать ?

у чекбокса состояния в таблице выглядит так
1
0
Null
 
для записи или обновление используется переменная
Form1.CheckBox1.sqlValue

http://fileworld.pavlenkovv.ru/img/QuestionWin.png
так как я начал разработку нового конструктора, то предоставляю доступ к (коду) рабочего конструктора всем желающим..
этот конструктор был связан с веб сервисом wix.
саму программу и части кода можете использовать по собственному желанию..
     
https://disk.yandex.ru/d/8z1OChCfkdICHA

   

так же я предастовляю сверх секретный код бекенд-файла "http-functions.js" tongue

import {notFound, ok, serverError, created } from 'wix-http-functions';
import wixData from 'wix-data';
import wixUsers from 'wix-users-backend'; 

export function use_GetUserPlans(request) {
  
return wixUsers.login(request.path[0], request.path[1])
 // если пользователь найден
  .then( () => {
 let options = {
    "headers": {
      "Content-Type": "application/json"
    }
  };
  // query a collection to find matching items
  return wixData.query("usersPLans")
    .eq("email", request.path[0])
    .find()
    .then( (results) => {
      // matching items were found
      if(results.items.length > 0) {
        options.body = {
          "items": results.items
        };
        return ok(options);
      }
      // no matching items found
      options.body = {
        "NoPlans": `${request.path[0]} wasn't found`
      };
      return notFound(options);
    } )
    // something went wrong
    .catch( (error) => {
      options.body = {
        "NoUser": error
      };
      return serverError(options);
    } );
  } )
 // если пользователь не найден или иная ошибка
  .catch( (error) => {
 // создать переменную с данными ошибки 
 let errorReturnValueObject = {
      headers: {
 "Content-Type": "application/json"
      },
      body: { "error":"Not logged"}
    };
 // вернуть ответ
 return serverError(errorReturnValueObject);
  });
}

export function post_InsertUserPlans(request) {
 let planuser;
 let emailuser;
 let options = {
     "headers": {
     "Content-Type": "application/json"
     }
  };
 return request.body.text()
     .then((body) => {
          const pricePlanObject = JSON.parse(body);
          let dataValue = pricePlanObject.data;
          for (const [name, value] of Object.entries(dataValue)) {
               if (name === "email") {
              emailuser  = value.slice(0, -1);
               }
          if (name === "plan") {
               planuser = value.slice(0, -1);
               }
            }
     let planInfo = {
     "email": emailuser,
     "plans": planuser
     }
  return wixData.insert("usersPLans", planInfo);
  })
    .then((results) => {
    options.body = {
    "inserted": results
    };
    return created(options);
     })
   .catch((error) => {
   options.body = {
   "error": error
   };
 return serverError(options);
 });
}

export function post_DeletedUserPlans(request) {

 let planuser;
 let emailuser;
 let options = {
     "headers": {
     "Content-Type": "application/json"
     }
  };
 return request.body.text()
     .then((body) => {
          const pricePlanObject = JSON.parse(body);
          let dataValue = pricePlanObject.data;
          for (const [name, value] of Object.entries(dataValue)) {
               if (name === "email") {
              emailuser  = value.slice(0, -1);
               }
          if (name === "plan") {
               planuser = value.slice(0, -1);
               }
            }
     let planInfo = {
     "email": emailuser,
     "plan": planuser
     }
  return wixData.query("usersPLans")
    .eq("email", emailuser)
    .eq("plans", planuser)
    .ascending("plans")
    .find()
    .then( (results) => {
      let firstItem = results.items[0];
      if(results.items.length > 0) {
        return wixData.remove("usersPLans", firstItem._id)
        .then( () => {
          options.body = {
          "items": "ok"
            };
          return ok(options);
        } )
        .catch( (error) => {
         options.body = {
            "error": error
          };
         return serverError(options);
    } );
      }
      // no matching items found
      options.body = {
        "error": `${request.path[0]} ${request.path[1]} wasn't found`
      };
      return notFound(options);
    } )
    // something went wrong
    .catch( (error) => {
      options.body = {
        "error": error
      };
      return serverError(options);
    } );
  })
    .then((results) => {
    options.body = {
    "inserted": results
    };
    return created(options);
     })
   .catch((error) => {
   options.body = {
   "error": error
   };
 return serverError(options);
 });
}

этот код отвечает за получение и обработку запросов (покупка приложения, проверка покупки приложения, и если была офомлена подписка то и за отмену подписки):
когда пользователь покупает программу или оформляет подписку сервсис посылает вебхук и скрипт записывает в базу данные пользователя и его покупку..
пользователь запускающий программу на своем ПК вводит данные своего аккаунта, программа посылает запрос скрипту, скрипт проверяет пользователя а после возвращает программе данные о всех покупках пользователя.
   
Моя база данных называлась usersPlans
http://fileworld.pavlenkovv.ru/img/wixUsersPlans.png
   
адреса вебхуков
https://Ваш_сайт/_functions/InsertUserPlans - новая подписка или покупка
http://fileworld.pavlenkovv.ru/img/parrnewWix.png
https://Ваш_сайт/_functions/DeletedUserPlans - удаления подписки или покупки
http://fileworld.pavlenkovv.ru/img/parrdelWix.png

380

(12 replies, posted in Russian)

senseyesenseye1983 wrote:

Владимир спасибо уже более понятно. А у меня действие происходит не по сохранению а по поиску. Я после нажатия кнопки поиск не могу нажать на первую строчку чтоб дальше уже передать 1 строчку в textbox

После нажатия кнопки Поиска - нужно чтоб именно кликалась 1 запись.

В оконцовке задача стоит чтоб не дать человеку выйти из программы пока у него в таблице checkbox = 0 smile (я сделал через вычисляемое поле  0 = "ОЖИДАЕТ"
Все бы ничего но именно как понять что у тебя в таблице остались записи которые ОЖИДАЮТ. Когда в ручную кликаешь в таблице то все работает, но ведь этих записей около 1000 как понять остались ли в таблице те которые ОЖИДАЮТ.
Можно сделать сортировку но нужно кликнуть же на первой записи чтоб сработала кнопка реакции....
Form1.TableGrid.SelectedRow:=0; не работает после поиска..

Все работает

procedure Form1_Button3_OnClick (Sender: TObject; var Cancel: boolean);
begin
  Form1.TableGrid1.SelectedRow:=0;
  Form1.TableGrid1.SetFocus;
  if (Form1.TableGrid1.Cells[1,Form1.TableGrid1.SelectedRow] = '1') then
      Form1.Button2.Enabled := False else  Form1.Button2.Enabled := True;
end;

procedure Form1_OnShow (Sender: TObject; Action: string);
begin
  Form1.TableGrid1.SetFocus;
  Form1.TableGrid1.SelectedRow:=0;
  if (Form1.TableGrid1.Cells[1,Form1.TableGrid1.SelectedRow] = '1') then
      Form1.Button2.Enabled := False else  Form1.Button2.Enabled := True;
end;


procedure Form1_TableGrid1_OnCellClick (Sender: TObject; ACol, ARow: Integer);
begin
  if (Form1.TableGrid1.Cells[1,Form1.TableGrid1.SelectedRow] = '1') then
      Form1.Button2.Enabled := False else  Form1.Button2.Enabled := True;
end;

Проверку записей можно сделать так ::

SQLExecute('SELECT COUNT(id) FROM table_name WHERE file_name<>1');

вернет колличество записей..

или в настройках самой таблицы
тогда таблица всегда будет показывать только те записи где нужное Вам поле не равняется (1)
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=8961&amp;download=0

381

(12 replies, posted in Russian)

senseyesenseye1983 wrote:

Владимир спасибо уже более понятно. А у меня действие происходит не по сохранению а по поиску. Я после нажатия кнопки поиск не могу нажать на первую строчку чтоб дальше уже передать 1 строчку в textbox

После нажатия кнопки Поиска - нужно чтоб именно кликалась 1 запись.

В оконцовке задача стоит чтоб не дать человеку выйти из программы пока у него в таблице checkbox = 0 smile (я сделал через вычисляемое поле  0 = "ОЖИДАЕТ"
Все бы ничего но именно как понять что у тебя в таблице остались записи которые ОЖИДАЮТ. Когда в ручную кликаешь в таблице то все работает, но ведь этих записей около 1000 как понять остались ли в таблице те которые ОЖИДАЮТ.
Можно сделать сортировку но нужно кликнуть же на первой записи чтоб сработала кнопка реакции....
Form1.TableGrid.SelectedRow:=0; не работает после поиска..

загрузите Ваш проект

382

(12 replies, posted in Russian)

senseyesenseye1983 wrote:
sibprogsistem wrote:

не могу понять как сделать
не просто выделить а кликнуть скриптом первую запись в таблице...

Я вот не могу никак сделать такое условие: Кликаем на кнопку (поиск) показываеться таблица(TableGrid) и в ней нужно узнать если в cell 1 есть надпись ОЖИДАЕТ то мы отключаем кнопку выхода(bExit)

procedure frmBuxgalter_TableGrid_OnCellClick (Sender: TObject; ACol, ARow: Integer);
begin
       frmBuxgalter.Edit5.Text := frmBuxgalter.TableGrid.cells[1,arow];
       if frmBuxgalter.Edit5.Text = 'ОЖИДАЕТ' then frmBuxgalter.bExit.Visible :=False;
end;

Немогу никак после нажатия кнопки поиск кликнуть на 1 строчку чтобы передать в Edit5  ПРИНЯТО....Помогите smile

procedure Form1_TableGrid1_OnCellClick (Sender: TObject; ACol, ARow: Integer);
begin
  if (Form1.TableGrid1.Cells[1,Form1.TableGrid1.SelectedRow] = '1') then
      Form1.Button2.Enabled := False else  Form1.Button2.Enabled := True;
end;

383

(5 replies, posted in General)

sparrow wrote:
pavlenko.vladimir.v wrote:
procedure addcall_OnShow (Sender: TObject; Action: string);
begin
  addcall.ComboBox2.dbUpdate;
end;

This is a false solution for ParentComboBox.
This solution will not allow related records to be displayed.
In addition, when selected in Combo1, Combo2 will be reset.

В данном проекте такая связь - это лишнее

ParentCombobox - предназначен для связей  к примеру :::  Страна-Город-Улица или Компания-Имя-Должнасть
тут же нужно выбрать клиента и назначить ему админимстратора
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=8957&amp;download=0

384

(5 replies, posted in General)

procedure addcall_OnShow (Sender: TObject; Action: string);
begin
  addcall.ComboBox2.dbUpdate;
end;

385

(9 replies, posted in Russian)

jean.brezhonek wrote:

Hello Wladimir

On FormMainBook, with button "Новая книга" (iAdd a book) if i've well translated with google) the goal is to add a new book,
Why behind this button don't you call as Action 'New record' instead of Action 'Show Record'.
Because the form called shows last entry while the fields should be empty ?

Maybe I misunderstood the purpose of this button
JB

это просто измененная форма, я забыл выбрать "Новая запись"
it's just a modified form, I forgot to select "New Entry"

386

(9 replies, posted in Russian)

k245 wrote:

А вы проверяли работоспособность грида, если у разных записей ссылка на один объект-картинку? У меня этот момент вызывает сомнение:

frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := imgDel;

Почему-то в других примерах создается отдельный графический объект для каждой строки.

Спасибо!!

for i := 0 to frmMainBook.tgListAllBook.RowCount -1 do
  begin
    sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesEnabled.png';
    fovYes := TPngImage.Create;
    fovYes.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesDesabled.png';
    fovNo := TPngImage.Create;
    fovNo.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadEnabled.png';
    finYes := TPngImage.Create;
    finYes.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadDesabled.png';
    finNo := TPngImage.Create;
    finNo.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\delete.png';
    imgDel := TPngImage.Create;
    imgDel.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\edit.png';
    imgEdi := TPngImage.Create;
    imgEdi.LoadFromFile(sFile);
    sFile := ExtractFileDir(Application.ExeName) + '\img\play.png';
    imgPla := TPngImage.Create;
    imgPla.LoadFromFile(sFile);
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovYes else
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovNo;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finYes else
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finNo;
    frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := imgDel;
    frmMainBook.tgListAllBook.Cell[9,i].ObjectReference := imgEdi;
    frmMainBook.tgListAllBook.Cell[10,i].ObjectReference := imgPla;
  end;

но почему нужно для каждой строки создавать отдельный набор объектов?
это как-то связано с сылками на эти объекты ? или происходит присвоение объекта конкретному объекту?

387

(9 replies, posted in Russian)

k245 wrote:

.

vovka3003 wrote:

.

Думал можно будет просто скрыть, но там же колонки на всех поля отображаются (ерунда получится), каюсь )!!!

Решил сделать по другому (заменой картинки)  в ячейке, но тут у меня тоже ошибка получается

делал в двух вариантах

// первый вариант **************************************************************************************************************
  sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesEnabled.png';
  fovYes := TPngImage.Create;
  fovYes.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\favoritesDesabled.png';
  fovNo := TPngImage.Create;
  fovNo.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadEnabled.png';
  finYes := TPngImage.Create;
  finYes.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\finishReadDesabled.png';
  finNo := TPngImage.Create;
  finNo.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\delete.png';
  imgDel := TPngImage.Create;
  imgDel.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\edit.png';
  imgEdi := TPngImage.Create;
  imgEdi.LoadFromFile(sFile);
  sFile := ExtractFileDir(Application.ExeName) + '\img\play.png';
  imgPla := TPngImage.Create;
  imgPla.LoadFromFile(sFile);
  for i := 0 to frmMainBook.tgListAllBook.RowCount -1 do
  begin
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovYes else
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := fovNo;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finYes else
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := finNo;
    frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := imgDel;
    frmMainBook.tgListAllBook.Cell[9,i].ObjectReference := imgEdi;
    frmMainBook.tgListAllBook.Cell[10,i].ObjectReference := imgPla;
  end;  

  // второй вариант ****************************************************************************************************
  for i := 0 to frmMainBook.tgListAllBook.RowCount-1 do
  begin
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := frmImages.imgFavoritesEnabled.Picture.Graphic else
        frmMainBook.tgListAllBook.Cell[7,i].ObjectReference := frmImages.imgFavoritesDesabled.Picture.Graphic;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := frmImages.imgFinishReadEnabled.Picture.Graphic else
        frmMainBook.tgListAllBook.Cell[6,i].ObjectReference := frmImages.imgFinishReadDesabled.Picture.Graphic;
    frmMainBook.tgListAllBook.Cell[8,i].ObjectReference := frmImages.imgPlay.Picture.Graphic;
    frmMainBook.tgListAllBook.Cell[9,i].ObjectReference := frmImages.imgEdit.Picture.Graphic;
    frmMainBook.tgListAllBook.Cell[10,i].ObjectReference := frmImages.imgDelete.Picture.Graphic;
  end;  

такой момент :: если запись одна то скрипт работает, если записей более одной или (были сделаны множество записей и потом удалены и оставленна одна запись), то изображения добавляются но при переключении (клике на ячейки избранное или прочитанно) возникает ошибка..
если запустить программу и выключить, то то возникае ошибка (окно закрывается а вот процесс работает)..
   
 
а вот если применять цвет колонок. то все работает...

for i := 0 to frmMainBook.tgListAllBook.RowCount-1 do
  begin
    if (SQLExecute('SELECT favorites FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[7,i].Color := clTeal else
        frmMainBook.tgListAllBook.Cell[7,i].Color := clGray;
    if (SQLExecute('SELECT read FROM books WHERE id=' + IntToStr(frmMainBook.tgListAllBook.Row[i].ID)) = '1') then
        frmMainBook.tgListAllBook.Cell[6,i].Color := clTeal else
        frmMainBook.tgListAllBook.Cell[6,i].Color := clGray;
    frmMainBook.tgListAllBook.Cell[8,i].Color := $00408000;
    frmMainBook.tgListAllBook.Cell[9,i].Color := $000080FF;
    frmMainBook.tgListAllBook.Cell[10,i].Color := clRed;
  end;

загружаю проект
первый вариант - строка 141
второй вариант - строка 176
третий вариант - строка 190
реакция на клик ячейки - строка 7

388

(9 replies, posted in Russian)

Всем привет!
Как я могу обратиться к колонке в слайдере? мне нужно ее скрыть при определенном условии
Получить значение колонки я могу а вот как скрыть ее я не понимаю...
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=8949&amp;download=0

389

(7 replies, posted in Talks about all)

Nikomax wrote:

Je comprends que les bénévoles du forum n'ont pas le temps de travailler pour les autres.
c'est pour ca que je n'envoie pas le zip.
Tout aide que je sollicite c'est de savoir comment le faire, après je ferait mes recherches.
Si t'a le temps dit moi comment je peux faire ?
Ou comment je peux chercher la solution.

Нам нужен ваш проект, чтобы понять, куда двигаться.
We need your project so that we can understand where to go.

390

(18 replies, posted in Russian)

sparrow wrote:

а не проще по нажатию Сохранить (OnClick) в скрипте запросом вытянуть последний Рекорд + 1

SQLExecute('SELECT IFNULL(Max(record_count), 0) FROM TableName') + 1;

Поместить в Edit...

Form1.EditCounter1.Text := IntToStr(SQLExecute('SELECT IFNULL(Max(record_count), 0) FROM TableName') + 1);

и продолжить процедуру записи автоматом.

http://myvisualdatabase.com/forum/viewtopic.php?id=7953

391

(18 replies, posted in Russian)

indigen wrote:
k245 wrote:

Про триггеры слышали? Вот они как раз для этого.
Или на крайний случай хранимая процедура - её проще отлаживать smile

Про триггеры слышал что они есть, а вот как их есть - не знаю. Для меня потолок это JOIN и вложенный SELECT.

http://myvisualdatabase.com/forum/viewtopic.php?id=7988

392

(22 replies, posted in Russian)

k245 wrote:
vovka3003 wrote:
DriveSoft wrote:

But perhaps I gonna make a web version, but at this stage is just an idea.

Было б зашибись.

Я бы сначала уточнил, что скрывается под этим определением. Современные тренды всех уводят в он-лайн сервисы. То есть веб-версия может оказаться он-лайн сервисом. Или генератором сайта.

если это будет вариант на подобие того как есть у движка (construct) с генерацией десктопных и мобильных приложений, то будет круто..

k245 wrote:

Выравнивание кода


https://k245.ru/wp-content/uploads/2022/08/Vyravnivanie.jpg


Сначала может показаться, что форматирование исходного текста придумали зануды, но на самом деле выровненный по определенным правилам текст легче воспринимается, а значит на его изучение тратится меньше времени. А время, как вы знаете – самый ценный ресурс.


Читать: https://k245.ru/mvdb/vyravnivanie-koda.html

спасибо за информацию!!

ktommy wrote:

Good evening

Вы хотите создать поиск по таблице?
Do you want to create a field search in a table?

tov.Mayor wrote:

Привет tov.Mayor

derek wrote:

Привет Derek

Я заметил этот вопрос и решил создать скрипт изменения размеров изображения.
Если Вы добавите этот скрипт, то Ваша программа сможет не только проверять размеры изображения, но еще и менять их автоматически
 
 
I noticed this issue and decided to create an image resizing script.
If you add this script, then your program can not only check the image dimensions, but also change them automatically

396

(2 replies, posted in Russian)

NickB wrote:

Добрый день всем,
Подскажите пожалуйста, как получить данные с сайта, а конкретнее вот сайт
https://www.nbkr.kg/getservice.jsp?snam … ;lang=RUS,
это сайт центрального банка (хотя это не так важно smile ) это ссылка на ежедневный автоинформатор курса валюты, мне нужно чтобы по Click.Batton либо при запуске приложения, в приложение в Edit загружался курс на текущую дату.

Если есть несложные варианты подскажите!

Заранее благодарен!

XML-файлы для автоматической загрузки:
  Перечень котируемых валют в XML формате: https://www.nbkr.kg/XML/CurrenciesReferenceList.xml
  Ежедневные официальные курсы по USD, EUR, RUB, KZT (последние значения): https://www.nbkr.kg/XML/daily.xml
  Еженедельные официальные курсы иностранных валют (последние значения): https://www.nbkr.kg/XML/weekly.xml
  Описание полей XML

   скачайте xml файл и разбирите его..

397

(8 replies, posted in Russian)

k245 wrote:

Строка ',' считается числом с плавающей точкой, что на мой взгляд неверно - плавающая точка есть, а числа нет smile


procedure Form1_Button2_OnClick (Sender: TObject; var Cancel: boolean);
begin
  ShowMessage( ValidFloat(',') );
end;

то есть сама запятая считается частью числа? может, что-то вроди по умолчанию (0,0) ?

398

(8 replies, posted in General)

v_pozidis wrote:

Can i ask why do you use twice the Screen.Height??

(Screen.Height<720) AND (Screen.Height<640)

просто вбил любые цифры
I just entered any number

399

(8 replies, posted in General)

v_pozidis wrote:

Yew, I know that program, But what if we had the change to make it automatic or giving the option to our customers just with running our software?
That is the reason asking .

может просто маштабировать само приложение, Вам нужно написать свои цифры
can just scale the app itself, you need to write your numbers

if (Screen.Height<720) AND (Screen.Height<640) then
AdjustResolution(Form_Name); 
End;

procedure AdjustResolution(oForm:TForm);
var
  iPercentage:integer;
begin
    iPercentage:=Round(((Screen.Width-640)/640)*100)+100;
    oForm.ScaleBy(iPercentage,100);
end;

400

(8 replies, posted in General)

v_pozidis wrote:

Hi all. Can we get a message for the screen result if it's lower than 720 X 640?   I need it because clients complains.....

if (Screen.Height=720) OR (Screen.Height=640) then
*****
*****
End