Люди добрые, помогите решить проблему !
 
Я хочу сделать в меню TableGrid добавить возможность устанавливать цвет ряда и текста.
В колонке с лева предназначенной для иконок  хочу отображать действующие цвета и вот как раз это у меня не получается
 
вот к таким дебрям я пришел в итоге
даже в png перевожу, но косяк в том, что  ImageList берет либо только адрес изображения либо поток


var
ImageList:TImageList;
bmp:TBitmap;
png: TPngImage;
begin
  bmp := TBitmap.Create;
  bmp.Canvas.Brush.Color := clBlack;
  png := TPngImage.Create;
  png.Assign( bmp );
  
  ImageList:=TImageList.Create(frmMain);
  ImageList.Masked:=false;
  ImageList.ColorDepth:=cd32bit;

  ImageList.Width := 20;
  ImageList.Height := 20;

  ImageList.AddPng(????????); 

  frmMain.tgListBooks.dbPopupMenu.Images := ImageList;
  frmMain.tgListBooks.dbPopupMenu.Items[1].ImageIndex := 0;

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

102

(29 replies, posted in Russian)

levrussia174 wrote:

Мне пишет, что файл слишком велик. Давайте я картинку вышлю

 // Перебором ячеек
  for i:=0 to Form1.TableGrid1.RowCount-1 do
    if (Form1.TableGrid1.Cells[1,i] = 'Петр') then j := j+1;
  Form1.Label3.Caption := 'Петр : '+IntToStr(j);

  // Запросам SQL
  Form1.Label4.Caption := 'Иван : '+IntToStr(SQLExecute('SELECT COUNT(id) FROM a WHERE ab="Иван"'));

103

(29 replies, posted in Russian)

levrussia174 wrote:

Здравствуйте! Первый раз сижу за программой.  Сверху читал... нечего не понял, от куда что взяли. Подскажите пожалуйста на моем примере, как посчитать количество по условию.

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

https://fileworld.pavlenkovv.ru/img/2023-10-21_19-55-24.png

shaikhmujeeeb wrote:

I created example project and shown exactly what i want in screenshot folder

i want to make simple check in check out bulk guests selection with checkbox and submit it in database with selected date field in table


i hope with example and screenshot make my question easy to understand

plz rebuild it

write in more detail

106

(8 replies, posted in Russian)

sparrow wrote:

А почему не получилось через TDataSet ???


  sqlquery('SELECT * FROM table WHERE id=0', Results);
  showmessage(inttostr(results.fieldcount));
  showmessage(results.fields[0].FieldName);  // id
...

ну да, это я понял, что туплю.  Я пытался получить  список полей в БД через  (pragma_index_info), а там вытянуть амена полей из колонки name.

107

(7 replies, posted in Russian)

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

108

(8 replies, posted in Russian)

k245 wrote:

Это какой-то глюк MVDB. Столкнулся с похожей проблемой при написании функции проверки существования поля таблицы:

в общем  проще сделать через SQL запрос, вывести результат в грид и потом пройтись по колонке с именами
я нечто подобное хотел с DataSet проделать, но у меня так и не вышло получить количество  записей в поле "name"  и просто по индексу получить имя поля тоже не вышло.

109

(8 replies, posted in Russian)

Пытаюсь получить список имен полей таблицы

SQLExecute('SELECT group_concat(name,",") pragma_index_info dbname')

Не могу понять, что я делаю не так?

110

(11 replies, posted in General)

v_pozidis wrote:

Thank you... I need it because I like to have two choices for a search button.  A free choice (without parent... don't know how else to say it) and a choice with patent. Another stupid question is how to stop having the parent in this sample , so to return  to the "free choice".  Sorry for my bad English and for those ....stupid questions.....thanks again.

procedure Form1_cbA_OnChange (Sender: TObject);
begin
  if (Form1.cbA.ItemIndex > 0) then  Form1.cbB.dbFilter := 'id_a='+Form1.cbA.sqlValue else Form1.cbB.dbFilter := '';
  Form1.cbB.dbUpdate;
end;

111

(11 replies, posted in General)

procedure Form1_cbA_OnChange (Sender: TObject);
begin
  if (Form1.cbA.ItemIndex = -1) then  Form1.cbB.Enabled := False
  else
  begin
    Form1.cbB.Enabled := True;
    Form1.cbB.dbFilter := 'id_a='+Form1.cbA.sqlValue;
    Form1.cbB.dbUpdate;
  end;
end;

112

(4 replies, posted in Russian)

dazzleqq wrote:

Добрый день. При подключении к MySQL Выходит ошибка #HY000Duplicate foreign key constraint name '_user_id__role'. Как ее устранить? Включены встроенные роли.

Вы случайно скриптом не добавляете новую запись при старте программы?
--

Повторяющееся имя ограничения внешнего ключа

113

(17 replies, posted in Russian)

Пользуйтесь!

procedure Form1_TableGrid1_OnCellClick (Sender: TObject; ACol, ARow: Integer);
begin
  // полное имя файла (путь к файлу)
  Form1.Edit1.Text := SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue);
  // путь к папке рассположения файла c (\)
  Form1.Edit2.Text := ExtractFilePath(SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue));
  // путь к папке рассположения файла, без (\)
  Form1.Edit3.Text := ExtractFileDir(SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue));
  // диск рассположения файла
  Form1.Edit4.Text := ExtractFileDrive(SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue));
  // расширение файла
  Form1.Edit5.Text := ExtractFileExt(SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue));
  // имя файла с расширением
  Form1.Edit6.Text := ExtractFileName(SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue));
  // папка рассположения файла
  Form1.Edit7.Text := ExtractFilePath(SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue));

 // если путь к папке или файлу относительный то нужно использовать:
 // ExtractFilePath (ParamStr (0)) - путь к программе
 // application.ExeName - полный путь к исполняемому файлу
 // ExtractFileDir(application.ExeName) - адрес папки (корня) рассположения исполняемого файла без (\) на конце
end;

procedure Form1_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
sFile: string = SQLExecute('SELECT w_filename FROM a WHERE id='+Form1.TableGrid1.sqlValue);
sCopy : string ='backup\'+FormatDateTime('yyyy', now);
begin
  if FileExists(ExtractFileDir(application.ExeName)+sFile) then
  begin
    if sDir(sCopy) then
    begin
      if not CopyFile( ExtractFileDir(application.ExeName)+sFile, ExtractFilePath(application.ExeName)+sCopy+
      '\'+FormatDateTime('DD_hh.mm.ss', now)+ExtractFileName(sFile), False) then showmessage('Ошибка копирования файла');
    end else  showmessage('Ошибка создание каталога');
  end else showmessage('Такого файла нет');
end;

function sDir (sName: String): Boolean;
begin
  if (DirectoryExists(sName)) then Result  := True else
   if (CreateDir(sName)) then  Result  := True else Result  := False;
end;

Хотел понтануться и сделать  через (try), но сам запутался smile smile

114

(17 replies, posted in Russian)

andrey.yugay wrote:

sDeletedFile := SQLExecute('SELECT file_filename FROM files WHERE id='+frmNewRecord.TableGrid1.sqlValue);
    sDeletedFile := ExtractFileDir(Application.ExeName) + sDeletedFile;

это не нужно,  в поле filename уже храниться путь к файлу

115

(17 replies, posted in Russian)

andrey.yugay wrote:

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

имяВашегоПоляФайла_filename

116

(21 replies, posted in Russian)

k245 wrote:
pavlenko.vladimir.v wrote:
k245 wrote:

1. Метод TIniFile.ReadSectionValues не работает

должен работать, тут я применял его
https://myvisualdatabase.com/forum/view … hp?id=7125

Проверил ещё раз, действительно работает!  Значит, это у меня в коде какой-то баг был, и остаётся только одна новость -  хорошая, про TMemIniFile )))

я помню при чтении ini возникала ошибка из-за строки? Вроде как первую строку не читает

117

(21 replies, posted in Russian)

k245 wrote:

1. Метод TIniFile.ReadSectionValues не работает

должен работать, тут я применял его
https://myvisualdatabase.com/forum/view … hp?id=7125

118

(1 replies, posted in General)

v_pozidis wrote:

Hi, please see my attached pic first...In the Options and in the Tab Settings I cannot understand the second option. Can someone help me please?

C:\Users\user\AppData\My Visual Data Base\You_Project

119

(10 replies, posted in General)

AD1408 wrote:

Sometime ago with the help and Dmitry and community members the attached below password generator was developed.


1. It doesn't compile with MVD v6.5. Error line 143 is marked on script page.


2. I wanted to duplicate table grid on frmPwGen to frmPwSets which couldn't.


help to solve issues above would be appreciated...

indx := Trunc(random * Array_Length);  // causing an error when compiled with MVD v6.5

random ???

120

(5 replies, posted in Russian)

oleg wrote:
k245 wrote:

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

Хорошо. В таком случае, как в заголовке формы вывести?

Form1.Caption := 'Привет мир!';

Скрыть меню главного окна (Файл, Инструменты, О Программе) https://myvisualdatabase.com/forum/view … hp?id=1091
Создание собственных пунктов меню на главной форме https://myvisualdatabase.com/forum/view … hp?id=1092

121

(21 replies, posted in Russian)

vovka3003 wrote:
//_OnResize
SetWindowPos( ..... , SWP_ASYNCWINDOWPOS or SWP_NOACTIVATE); 

SWP_NOACTIVATE - Не активизирует окно,  потому я даже и не думал его применять, думал вообще не будет работать
SWP_ASYNCWINDOWPOS - тут я думал, что не будет связи со вторым потоком, потому прошел мимо этого флажка
ну и вишенка - or,  я опять же думал, что тут вариант только с +
   
Как же еще много нужно изучать ...

122

(21 replies, posted in Russian)

vovka3003 wrote:
pavlenko.vladimir.v wrote:
vovka3003 wrote:

Я про тормоза формы...

все ок, легко работает

И в ресайзе с якорями?

Блин, я и не заметил, я мышкой не могу менять размеры

123

(21 replies, posted in Russian)

vovka3003 wrote:

Я про тормоза формы...

все ок, легко работает

124

(21 replies, posted in Russian)

vovka3003 wrote:

Решил, не?

вариант  от sparrow  так и оставил, вроде все работает как нужно.
Вот эту часть

 and not 8000000 and not 40000 and not 400000

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

Можно еще визуализировать, так многим будет понятнее (я так думаю ))) )
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9935&download=0