Я понимаю, уже писал это, но нет ли возможности сделать на форме (возле поля "Структура компонентов" > "Формы" ) возможность отключать её при сборке программы, а не только скрывать её чекбоксом для удобства редактирования? В больших проектах это бы ускоряло работу, так как если форм штук 50 и более то, работать над каким то определённым участком приходится имея один общий проект, и новые формы создавать отдельно в другом. И после того как уже их отредактируешь, переносить в основной, из за чего порой возникает путаница и ошибки...
То есть главный проект у меня сохраняется минуты 2-3, после каждого исправления, запускаю программу, что бы посмотреть как проявились изменения, и это очень замедляет работу. И тестировать приходится на новых проектах, частью форм и кода, что не удобно. Если-бы формы можно было временно отключать, так сказать сохранять проект только с теми формами, которые нужны в данный момент, это бы ускорило работу с программой. (По сути может какую то отдельную кнопку сохранения чернового варианта) Возможно тут будет конфликт с кодом, тех форм которые есть в скрипте, но вроде как я думаю есть вариант отключать часть кода, в случае если формы в блоке.

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

3

(1 replies, posted in Russian)

Где то была на форуме такая тема, но найти не могу. Как сделать ячейку пополам закрашенную в 2 разных цвета? И возможно ли это сделать через диагональ?

4

(29 replies, posted in Russian)

DriveSoft wrote:

В принципе можно

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
  h: integer;
  Max: integer;
begin
  Openfile('ya.ru', 'chrome');
  // finding window's
  h := 0;
  Max := 20;
  while (h = 0) and (Max > 0) do
  begin
    h := FindWindow('Chrome_WidgetWin_1', ''); // find window using caption
    Dec(Max);
    Sleep(50);
  end;
  if h <> 0 then
  begin
    SetWindowPos( h, 0, -7, -30, 0, 0, SWP_NOSIZE); // set position
    SetParent( FindWindow('Chrome_WidgetWin_1', ''), Form1.Panel1.Handle);
  end;
end;

видимо у скайпа также используется хром для интерфейса, поэтому есть вероятность, что вместо хрома, переместиться скайп )

Если браузер уже открыт, то он создаёт в нём новое окно или захватывает его полностью. Получается нужно завести отдельный браузер для программы. а отдельный для сёрфинга в интернете? Или есть способ что бы он допустим захватывал только отдельно появившиюся вкладку?

5

(12 replies, posted in Russian)

Нашёл пример на форуме, там как я понял реализовано через Form1.PageControl1.ActivePageIndex, что даёт упрощение кода, где нет бесконечных visible := True;
http://myvisualdatabase.com/forum/viewtopic.php?id=5786

6

(12 replies, posted in Russian)

k245 wrote:
agatlogic101 wrote:

Оу, с PageControl вариант, а возможно скрыть скриптом выбор вкладок? Что бы малых прямоугольников "Вкладка1" "Вкладка2" не было видно при запуске формы?

Процедура скрывает все ярлыки закладок у многостраничника:

procedure HideTabs( APageControl: TdbPageControl );
// скрыть закладки
var
  i: integer;
begin
  for i := 0 to APageControl.PageCount - 1 do
  begin
    APageControl.Pages[i].TabVisible := false;
  end;
end;

Пример использования:

HideTabs( Form1.PageControl1 );

попробовал применить, в итоге Вкладки исчезают, но и информация полностью на этой вкладке пропадает

7

(1 replies, posted in Russian)

Реально ли прописать ширину столбцов с разными длинами в таблице, и запретить менять длину?

8

(1 replies, posted in Russian)

Интересует есть ли такой функционал что-бы объединить ячейки или столбцы как в эксель?  https://c.radikal.ru/c21/2003/e7/945e2dd39400.jpg

То есть вы хотите сказать при использовании MySQL это влияет на сохранение? Просто у меня 40 секунд происходит только оно. И после каждого изменения это тяжко ждать, поэтому и режу программу. Запускается из exe файла она не долго, пару секунд. Итог, если я сделаю то что вы предлагаете, она станет сохраняться быстрей? (сохраняться именно в проекте, когда мы редактируем саму программу в редакторе) PS. В тот момент когда я уменьшаю количество форм, она опять летает. Поэтому может всё таки возможна функция заморозки форм? Последний вопрос к разработчику...

В больших проектах, когда много форм, естественно всё долго грузится. Есть ли возможность отключать/заморозить некоторые формы, которые в данный момент при работе не нужны, что бы они не влияли на сохранение и загрузку. Что даст ускорение при работе с определённой частью программы. Иначе приходится создавать подпрограмму, в ней тестировать то, что нужно добавить, и после уже вручную копировать таблицы, формы, скрипт...
PS. С точки зрения пользователя, было бы 2 чекбокса на форме, вместо одного. 1 как и раньше скрывает форму в программе что бы она не мешалась, а вторая замораживает

11

(12 replies, posted in Russian)

Оу, с PageControl вариант, а возможно скрыть скриптом выбор вкладок? Что бы малых прямоугольников "Вкладка1" "Вкладка2" не было видно при запуске формы?

12

(12 replies, posted in Russian)

А что бы в панели поместить другую форму? Я попробовал по аналогии, но ничего не получилось

procedure Form1_OnShow (Sender: TObject; Action: string);
begin
  Form1.Panel1.Parent:=Form2;
end;

Смысл в том, что у меня на форме есть много слоёв панелей, которые при том или ином образе должны отображаться или скрываться. И их очень неудобно редактировать в таком случае. Поэтому решил слои распределить по формам и их уже отображать на панели. Вопрос
1) Каким скриптом это реально сделать
2) Есть ли еще какие то альтернативные способы при редактировании, что бы было удобно работать с слоями, или если по другому говоря, с большим количеством панелей с разными настройками visible в зависимости от условий. Так как визуально для меня они накладываются друг на друга и в редакторе видно в итоге только одну верхнюю.

13

(1 replies, posted in Russian)

Решил вопрос следующим образом
procedure Form1_Button28_OnClick (Sender: TObject; var Cancel: boolean; uchet,s,id_zada4i,cvc,datawsw,dayMo,dayTu,dayWe,dayTh,dayFr,daySa,daySu,dattt:string; b,n:integer;);
begin
id_zada4i := SQLExecute('SELECT id FROM zada4i WHERE id='+ карта_фирмы.TableGrid11.sqlValue);
id_zada4i := vartostr(id_zada4i);
dayMo := SQLExecute('SELECT пн FROM zada4i WHERE id="'+id_zada4i+'" ');
dayTu := SQLExecute('SELECT вт FROM zada4i WHERE id="'+id_zada4i+'" ');
dayWe := SQLExecute('SELECT ср FROM zada4i WHERE id="'+id_zada4i+'" ');
dayTh := SQLExecute('SELECT чт FROM zada4i WHERE id="'+id_zada4i+'" ');
dayFr := SQLExecute('SELECT пт FROM zada4i WHERE id="'+id_zada4i+'" ');
daySa := SQLExecute('SELECT сб FROM zada4i WHERE id="'+id_zada4i+'" ');
daySu := SQLExecute('SELECT вс FROM zada4i WHERE id="'+id_zada4i+'" ');
uchet := SQLExecute('SELECT учёт_дня_недели FROM zada4i WHERE id="'+id_zada4i+'" ');
if (uchet = '0') then SQLExecute('SET @n := 1');
if (uchet = '1') then SQLExecute('SET @n := 0');
n := 0;
b := 7;
While (n < 7) do
begin
s := SQLExecute('SELECT DAYNAME(CURDATE() + @n)');
if (s = 'Monday') AND (dayMo = '1') then
begin
dattt := SQLExecute('SELECT CURDATE() +  @n ');
ShowMessage(dattt);
exit;
end;
if (s = 'Tuesday') AND (dayTu = '1') then
begin
dattt := SQLExecute('SELECT CURDATE() + @n');
ShowMessage(dattt);
exit;
end;
if (s = 'Wednesday') AND (dayWe = '1') then
begin
dattt := SQLExecute('SELECT CURDATE() + @n');
ShowMessage(dattt);
exit;
end;
if (s = 'Thursday') AND (dayTh = '1') then
begin
dattt := SQLExecute('SELECT CURDATE() + @n');
ShowMessage(dattt);
exit;
end;
if (s = 'Friday') AND (dayFr = '1') then
begin
dattt := SQLExecute('SELECT CURDATE() + @n');
ShowMessage(dattt);
exit;
end;
if (s = 'Saturday') AND (daySa = '1') then
begin
dattt := SQLExecute('SELECT CURDATE() + @n');
ShowMessage(dattt);
exit;
end;
if (s = 'Sunday') AND (daySu = '1') then
begin
dattt := SQLExecute('SELECT CURDATE() + @n');
ShowMessage(dattt);
exit;
end;
SQLExecute('SET @n := @n +1');
n := n +1;
end;
end;

14

(1 replies, posted in Russian)

Есть строка в таблице которая имеет данные дней недели в Check box. То есть 7 штук и не имеет "даты старта". Всё это хранится в MySQL по системе 0 и 1 соответственно. Есть задача при нажатии на кнопку, что бы скрипт определил какой ближайший из дней недели к сегодняшнему дню отмечен галочкой, (1). И сохранить эти данные в дату старта этой задачи. Я вижу как это сделать через очень большой скрипт с помощью только оператора if строк так на 100, но наверное есть проще варианты. Может кто то делал уже подобное? Или есть примеры

15

(1 replies, posted in Russian)

Есть строчка которая заканчивает скрипт при срабатывании? Допустим у меня в середине скрипта есть такой код
if  задача_люди.TableGrid1.sqlValue <> '' then
    begin
    (если в таблице выбрано значение то выполняем действия)
    end
    else
   (если в таблице не было выбрано значений, то показываем текст "выберите значение" и ПРЕКРАЩАЕМ ВЫПОЛНЕНИЕ СКРИПТА
  код который идёт дальше, не сабатывает

16

(1 replies, posted in Russian)

Есть данные времени записанные в MySQL в поле время, к примеру 01:20 и есть TimePicker1, нужно сложить эти 2 параметра и записать в MySQl. Не получается правильно их сложить. Я так понял нужно использовать TIME_TO_SEC(), но как перевести в секунды с задача_люди.TimePicker1.sqlTime не знаю

при ошибке, текст ошибки не помещается в табличку
https://b.radikal.ru/b29/2002/0f/413ddb73d0b5.jpg
Не знаю, можно ли как то еще лог получить этой ошибки, если можно, буду рад узнать как. Если нет, то может ей дать возможность стать больше или прокручиваться?
(то есть вопрос/просьба не о причине ошибки, а о том как её увидеть полностью)

18

(3 replies, posted in Russian)

а если не на форме а на Panel? Возможно? Или если нет, то только с CheckBox1 по CheckBox31

19

(3 replies, posted in Russian)

Есть участок кода из 31 строки
begin
задача_люди.d1.Checked := False;
задача_люди.d2.Checked := False;
задача_люди.d3.Checked := False;
задача_люди.d4.Checked := False;
задача_люди.d5.Checked := False;
........................................................
задача_люди.d31.Checked := False;
end;
Всё работает, но смущает обьём. Есть возможность как то записать этот код через цикл? Или так и оставлять и это нормально?

20

(7 replies, posted in Russian)

как я показал выше в скрине, у меня стоит сортировка, и данной строкой я обновляю таблицу после того как произошли изменения. Что бы отмеченные записи ушли вниз сразу, а не после следующего открытия формы

Я предполагал можно добавить столбец чисто для сортировки в котором будет так же уникальный счётчик похожий на ID. И если я допустим опускаю строку, то он бы менялся этим id_сортировки с ближайшим к нему снизу, ну или наоборот сверху, если нам нужно перетащить. Как бы каждый раз на +1 или -1 вверх или в низ по таблице. Но это при нажатии кнопки.  Возможно ли вычислить позицию, куда передвинули мы с помощью мышки, не знаю. Может кто то делал подобное или знает как?

С учётом что у меня и так стоит сортировка, я так понимаю нужно ввести какой то дополнительный столбик с счётчиком строк? в котором нужно изменять данные?

А как теперь зафиксировать этот результат? Что бы та строка которую я переместил, при следующем открытии таблицы там и осталась?

как порой всё просто оО А где инструкция есть к прочим функциям возможным? А то я  в справке таких полей у таблицы не нашёл

Есть таблица
строка 1
строка 2
строка 3
строка 4
строка 5
как при нажатии кнопки и строки 4 к примеру, поднять её или опустить на 1 по сортировке, что бы в итоге получилось
строка 1
строка 2
строка 4 (строка передвинулась вверх)
строка 3 (строка передвинулась вниз)
строка 5