Skip to forum content
My Visual Database
A Simple Solution for Creating Databases
You are not logged in. Please login or register.
Active topics Unanswered topics
Search options (Page 5 of 18)
Люди добрые, помогите решить проблему !
Я хочу сделать в меню 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;
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="Иван"'));
levrussia174 wrote:Здравствуйте! Первый раз сижу за программой. Сверху читал... нечего не понял, от куда что взяли. Подскажите пожалуйста на моем примере, как посчитать количество по условию.
загрузите проект
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
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.
Видимо возникает какая-то дополнительная ссылка на память
k245 wrote:Это какой-то глюк MVDB. Столкнулся с похожей проблемой при написании функции проверки существования поля таблицы:
в общем проще сделать через SQL запрос, вывести результат в грид и потом пройтись по колонке с именами
я нечто подобное хотел с DataSet проделать, но у меня так и не вышло получить количество записей в поле "name" и просто по индексу получить имя поля тоже не вышло.
Пытаюсь получить список имен полей таблицы
SQLExecute('SELECT group_concat(name,",") pragma_index_info dbname')
Не могу понять, что я делаю не так?
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;
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;
dazzleqq wrote:Добрый день. При подключении к MySQL Выходит ошибка #HY000Duplicate foreign key constraint name '_user_id__role'. Как ее устранить? Включены встроенные роли.
Вы случайно скриптом не добавляете новую запись при старте программы?
--
Повторяющееся имя ограничения внешнего ключа
Пользуйтесь!
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), но сам запутался
andrey.yugay wrote:sDeletedFile := SQLExecute('SELECT file_filename FROM files WHERE id='+frmNewRecord.TableGrid1.sqlValue);
sDeletedFile := ExtractFileDir(Application.ExeName) + sDeletedFile;
это не нужно, в поле filename уже храниться путь к файлу
andrey.yugay wrote:По событиям понятно, не пойму как вытащить имя файла что бы скопировать его... Пробовал копировать в текстовое поле при создании (сохранять в таблицу в отдельное поле) сохранять просто имя файла - ничего не срабатывает.
имяВашегоПоляФайла_filename
k245 wrote:Проверил ещё раз, действительно работает! Значит, это у меня в коде какой-то баг был, и остаётся только одна новость - хорошая, про TMemIniFile )))
я помню при чтении ini возникала ошибка из-за строки? Вроде как первую строку не читает
k245 wrote:1. Метод TIniFile.ReadSectionValues не работает
должен работать, тут я применял его
https://myvisualdatabase.com/forum/view … hp?id=7125
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
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 ???
oleg wrote:k245 wrote:Обычно приведенную вами информацию размещают непосредственно в заголовке формы.
Хорошо. В таком случае, как в заголовке формы вывести?
Form1.Caption := 'Привет мир!';
Скрыть меню главного окна (Файл, Инструменты, О Программе) https://myvisualdatabase.com/forum/view … hp?id=1091
Создание собственных пунктов меню на главной форме https://myvisualdatabase.com/forum/view … hp?id=1092
vovka3003 wrote://_OnResize
SetWindowPos( ..... , SWP_ASYNCWINDOWPOS or SWP_NOACTIVATE);
SWP_NOACTIVATE - Не активизирует окно, потому я даже и не думал его применять, думал вообще не будет работать
SWP_ASYNCWINDOWPOS - тут я думал, что не будет связи со вторым потоком, потому прошел мимо этого флажка
ну и вишенка - or, я опять же думал, что тут вариант только с +
Как же еще много нужно изучать ...
vovka3003 wrote:pavlenko.vladimir.v wrote:vovka3003 wrote:Я про тормоза формы...
все ок, легко работает
И в ресайзе с якорями?
Блин, я и не заметил, я мышкой не могу менять размеры
vovka3003 wrote:Я про тормоза формы...
все ок, легко работает
vovka3003 wrote:Решил, не?
вариант от sparrow так и оставил, вроде все работает как нужно.
Вот эту часть
and not 8000000 and not 40000 and not 400000
Все равно не могу понять, почему такие высокие значения?..
Так же пытался найти информацию по Вашему ответу ("попиксельном" событии.) , но видимо правильно искать так и не научился ((
Можно еще визуализировать, так многим будет понятнее (я так думаю ))) )
Posts found: 101 to 125 of 442