Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 3

Автор: nuker2015
Дата сообщения: 23.02.2008 09:35
Derrick Morgan

Цитата:
есть два TImage наложенных друг на друга (т.е с одинаковыми координатами и размерами), только картинки там разные
Image1.Visible := True;
Image2.Visible := False;

А один TImage использовать никак? Какое расточительство системных ресурсов.
Чтобы не мерцало:
form(форма, панель или контейнер содержащий Timage).doublebuffered:=true;
Автор: FaustOVO
Дата сообщения: 24.02.2008 13:36
Привет всем
У меня возникла проблема - использую Delphi 10 lite но в нем в палитре почему то нету компонентов отвечающих за DataAccess - только 1 TDataSource, а DataSet и TTable отсутствуют О_О можно как нибудь эти компоненты добавить?
Автор: SRUTSSSSSSSS80
Дата сообщения: 24.02.2008 16:48
Привет всем я сам в этом разделе в первые помогите пожалуйста настроить поиск в программе
Программа для базы данных по служебкам на HDD SAMSUNG
ВРОДЕ ВСЁ СДЕЛАЛ А ВОТ ПОИСК НЕ РАБОТАЕТ ПОИСК выдрал с другой проги

тут моя база данных http://slil.ru/25510844

а тут прога откуда выдрал поиск( Unit9.pas) http://slil.ru/25510856

P.S.в дальнейшем программа будет выложена бесплатно с исходниками и забитой базой данных тут http://forum.ru-board.com/topic.cgi?forum=84&topic=0308&start=2060

не останьтесь равнодушными помогите доделать поисковик а то он уже задолбал
признаюсь честно в Делфи и в програмировании я новичёк
Автор: waik
Дата сообщения: 24.02.2008 18:31
SRUTSSSSSSSS80

Не думаю что кто-то тебе поможет при такой постановке вопроса. Загляни сюда http://forum.ru-board.com/topic.cgi?forum=13&topic=1774 и спрячь весь этот нечитаемый код. И заоддно поясни что значит не работает? Выдаёт ошибку (какую)?
Автор: Minissota
Дата сообщения: 24.02.2008 18:37
Привет всем! Мужики, спасибо за помощь с поиском в базе данных! Все работает, отлично, вот только хотел уточнить можно ли сделать так, что б я например, ввел букву "А" или букву "Д" и мне вывело все фамилии на букву "А" или "Д"?
И еще вопросик, как в DBGridе сделать так, что б я ввел значение ( например, в Edit ) число 10 и у меня DBGrid мог добавлять только 10 записей и не больше?
Заранее всем благодарен!!!!
Автор: FaustOVO
Дата сообщения: 24.02.2008 19:37

Цитата:
Привет всем
У меня возникла проблема - использую Delphi 10 lite но в нем в палитре почему то нету компонентов отвечающих за DataAccess - только 1 TDataSource, а DataSet и TTable отсутствуют О_О можно как нибудь эти компоненты добавить?

Сам разобрался - они отдельно устанавливаются
Автор: waik
Дата сообщения: 24.02.2008 20:01
Minissota

На сколько помню у тебя используется Interbase или его клон. В этом случае лучшее решение подключить UDF функцию к серверу типа SUBSTR и в запрос добавить что-то типа такого and SUBSTR(FAM,1,1)='А' Это будет работать лучше, но можно и локально фильтровать записи в событии OnFilterRecord. Код - одна строка Accept := (UPPER(Copy(QUERY1FAM.Astring,1,1))='А') При включенной фильтрации Filtered := true это событие будет срабатывать и записи удовлетворяющие условию будут выводиться.

По второму вопросу - Не заставляй грид делать не свойственную ему работу. Это делается на уровне датасета, а грид только покажет всё что нужно. Точнее трудно сказать, не понятно что за датасет будет использоваться и в каком режиме. Копни в сторону свойства RecordCount и ручного ограничения вставки записей если количество уже достигло максимума.
Автор: SRUTSSSSSSSS80
Дата сообщения: 24.02.2008 20:51
всё сам сел и разобрался и переписал прогу

Базу Данных подключил через TQuery
теперь поиск работает осталось чуть с формами поработать пару кнопок добавить и в путь
тут исправленый исходник программы http://slil.ru/25511475
(я не чего не комертировал и так всё понятно можно даже свою базу данных подключить только чуть откоректировать то что будет в TQuery)

а то часто такие вопросы про использование TQuery в качестве поисковика попадаються

Всем спасибо за советы

Добавлено:

Цитата:
Minissota

на скока я помню можно

нужно заменить = в запросе на LIKE
типа строгое соответствие на не строгое
поправьте если не прав
Автор: Lexz84
Дата сообщения: 25.02.2008 06:50
Всем привет!
Проблема: надо написать прогу для управления устройством через lpt порт... само устройство примитивное включать 2 двигателя... сигналы снимаются с 2 и 3 вывода порта... (отправляется на порт byte 1 и 2)... пробовал по всякому неработает! даже на borlan pascal пробовал под 98 винду, нехочет.... помогите плиз! надо очень!
Автор: SRUTSSSSSSSS80
Дата сообщения: 25.02.2008 22:53
Lexz84
глянь тут
http://valery-us4leh.narod.ru/main.html
можно использовать и для твоих целей


Добавлено:
Там всё просто с примерами и обьяснениями
P.S. Видно плохо искал
Автор: Lexz84
Дата сообщения: 26.02.2008 07:15
SRUTSSSSSSSS80
спасибо ОГРОМНОЕ....
буду разбираться...
Автор: SergeBS
Дата сообщения: 26.02.2008 07:44
SRUTSSSSSSSS80

Цитата:
а то часто такие вопросы про использование TQuery в качестве поисковика попадаються

Это называется "халява". Люди не понимая что такое БД и как с ними работать, не читают ничего, а втупую ко всем пристают с криками "сделайте мне хорошо, а то уволят". А вопрос прописан во ВСЕХ FAQах по БД, какие я видел. Но их же читать надо.


Добавлено:
waik

Цитата:
В этом случае лучшее решение подключить UDF функцию к серверу типа SUBSTR и в запрос добавить что-то типа такого and SUBSTR(FAM,1,1)='А' Это будет работать лучше, но можно и локально фильтровать записи в событии OnFilterRecord. Код - одна строка Accept := (UPPER(Copy(QUERY1FAM.Astring,1,1))='А')

Ну боже ж мой! Прочитай про LIKE и не парь людям мозги. И не надо насчет "лучших решений". Это не лучшее, а кривейшее решение. Как из Питера в Москву через Владик лететь. Специально есть оператор с кучей параметров и богатейшими возможностями, так нет, обязательно нужно что-то свое придумать. . Вместо того, чтобы доки прочесть.


Добавлено:
SRUTSSSSSSSS80

Цитата:
Программа для базы данных по служебкам на HDD SAMSUNG

На http://doxtorhdd.narod.ru/Resurs/samsung/samsung.htm ходил? У тебя больше будет? Или может ну его - уже все есть.
Автор: waik
Дата сообщения: 26.02.2008 10:36
SergeBS

Цитата:
Ну боже ж мой! Прочитай про LIKE и не парь людям мозги. И не надо насчет "лучших решений".


По осторожнее на поворотах... Никто никому мозги не парит. Какой вопрос такой ответ... Кто бы мог подумать что про лайк человеку не известно. Да и на какой базе это работате тоже пришлось догадываться... И в доку попрошу не тыкать, есть подозрение что я её в свои годы прочитал много больше.
Автор: vladk1973
Дата сообщения: 26.02.2008 10:56
Minissota

Цитата:
И еще вопросик, как в DBGridе сделать так, что б я ввел значение ( например, в Edit ) число 10 и у меня DBGrid мог добавлять только 10 записей и не больше?

waik

Цитата:
Копни в сторону свойства RecordCount и ручного ограничения вставки записей если количество уже достигло максимума

Есть подозрение, что следующий вопрос от Minissota будет "А как мне теперь, мужики, вывести следущие десять записей?" Так что, waik, дружище, почему бы тебе сразу и этот вопрос не осветить?
Автор: SergeBS
Дата сообщения: 26.02.2008 12:25
waik

Цитата:
На сколько помню у тебя используется Interbase или его клон. В этом случае лучшее решение подключить UDF функцию к серверу типа SUBSTR

Это чье произведение?

Minissota

Цитата:
И еще вопросик, как в DBGridе сделать так, что б я ввел значение ( например, в Edit ) число 10 и у меня DBGrid мог добавлять только 10 записей и не больше?

Лезешь в любой FAQ - "как запретить добавление записей в DBGride". Выбираешь что больше нравится и запрещаешь не сразу, а когда нужно. Заодно там же посмотри "как Enter заставить себя вести как Tab". Симпатичнее будет. Или с torry тащи готовое.

Автор: Maks150988
Дата сообщения: 26.02.2008 12:34
Привет. Подскажите как применить расширенный стиль к TreeView. Нужен стиль TVS_FULLROWSELECT. Например для ListView
SendMessage(ListView, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
Для TreeView подобного не нашел. Что нужно вместо LVM_SETEXTENDEDLISTVIEWSTYLE для TreeView?
Спасибо. =)
Автор: waik
Дата сообщения: 26.02.2008 13:57
SergeBS

Цитата:
Это чье произведение?


Это моё предположение что используется sql сервер. Не больше. Если не понравился мой ответ можно просто дать свой. Если есть желание пофлудить - прошу в ПМ. Здесь не место.

Minissota
Зря тебя тыкают в любой ФАК. Ещё раз повторю что грид не должен заниматься этой работой. Но на всякий случай дам прямые ссылки
http://delphiworld.narod.ru/_comps_.html
http://delphiworld.narod.ru/base/tdbgrid_not_auto_add.html
http://delphiworld.narod.ru/base/enter_next_dbgrid.html
Хотя на самом деле это нужно делать в датасете. Хоть в BeforeInsert вписать
if dataset.recordcount > 10 then Abort;
Автор: plastkor
Дата сообщения: 27.02.2008 09:26
кто-нибудь может дать ссылочку на update's for Delphi 7?
Буду очень признателен
Автор: RostY
Дата сообщения: 27.02.2008 11:35
plastkor
http://forums.realcoding.net/index.php?s=6be83ec21ed686a6dfa834233f8df37e&showtopic=1193&st=15&start=15

http://www.codegear.com/downloads/regusers/delphi
http://forum.vingrad.ru/act-Print/client/html/f-84/t-54119.html
Автор: SRUTSSSSSSSS80
Дата сообщения: 27.02.2008 20:48

Цитата:
SergeBS

читал я эти FAQ пример работы людям не помешает как и мне я этих примеров скачал много и понял суть мне читать лень мне проще в программе увидеть как что устроенно
осмыслить и сделать что мне нужно
а на samsung примерно 120 метров служебок пока..... есть и новее, именно комплектов служебок а не слитое Vtool-ом и Wcub-ом

Добавлено:

Цитата:
Это называется "халява". Люди не понимая что такое БД и как с ними работать, не читают ничего, а втупую ко всем пристают с криками "сделайте мне хорошо, а то уволят". А вопрос прописан во ВСЕХ FAQах по БД, какие я видел. Но их же читать надо.

что правда то правда везде про него читал но такого чтоб тыкал что нуно делать не видел я ж тока начал писать и эт моя первая БД и с этими компонентами не сталкивался


Цитата:
На http://doxtorhdd.narod.ru/Resurs/samsung/samsung.htm ходил? У тебя больше

а его у меня не чего нет хотя видял я этот сайт неплохой но пока от туда не чего не брал

Цитата:
SergeBS

если чем обидил извини
Автор: Mandor Sawall
Дата сообщения: 28.02.2008 08:43
Maks150988
Если посмотриш на реализацию TListView в Delphi, увидеш, что там използуют
SetWindowLong(TreeView.Handle, GWL_STYLE, NewStyle);
где NewStyle = OldStyle or TVS_FULLROWSELECT.
Надеюсь, что ето поможет...
Автор: lavren
Дата сообщения: 28.02.2008 14:21
Скачал и установил CodeGear™ Delphi® 2007 for Win32® Version 11.0.2804.9245.
А он запустил сервис BlackfishSQL ("C:\Program Files\CodeGear\RAD Studio\5.0\bin\BSQLServer.exe" -S="BlackfishSQL").
Кто нибуть знает что это такое? Как использовать?
Автор: jemiko
Дата сообщения: 29.02.2008 15:06
lavren
http://www.codegear.com/products/blackfish
Автор: Maks150988
Дата сообщения: 01.03.2008 09:55
Mandor Sawall
То есть надо
SetWindowLong(TreeView.Handle, GWL_STYLE, GetWindowLong(TreeView.Handle, GWL_STYLE) or TVS_FULLROWSELECT);
?
Я точно не знаю как правильно изменить стиль элемента.

И еще хотел спросить. В программе открываю URL ссылку для подачи ее в библиотеку Bass. Конструкция выглядит примерно так:


Код:
SendMessage(GetDlgItem(hLst, CTRL_EDIT_STATLINKURL), WM_GETTEXT, 255, Integer(@BufText));
if (BufText = '') then
begin
Messagebox(hLst, 'Пожалуйста проверьте заполнение всех полей.', 'Предупреждение', MB_ICONWARNING);
Exit;
end;
Автор: Frodo_Torbins
Дата сообщения: 01.03.2008 16:30
Maks150988

Код: if pos('http://', BufText)<>1 then
...
Автор: vidic777
Дата сообщения: 01.03.2008 16:51
lavren

Цитата:
Скачал и установил CodeGear™ Delphi® 2007 for Win32® Version 11.0.2804.9245.

Вам нада еше декабрьский апдейт установить и последнее обновление справки. Находится здесь http://forum.ru-board.com/topic.cgi?forum=35&topic=38537#1

Сорри за небольшой
Автор: Jokerjar79
Дата сообщения: 01.03.2008 17:32
О том, как перетаскивать файлы на форму написано достаточно, а вот о том, как перетаскивать из проги ничего путного найти не могу. В общем, нужно реализовать перетаскивание (drag-and-drop) из приложения в папку / рабочий стол. Total Commander как один из примеров
Автор: Stizerg
Дата сообщения: 02.03.2008 23:18
Всем привет! Помогите разобраться с потоком (Thread).
Ситуация такая: создается поток и выполняет вычисления паралельно с основным потоком. Все работает без ошибок за исключением одного НО - наотрез отказывается использовать весь процессор, использует два ядра по половине каждое. Если второй поток не запускать то приложение использует одно ядро на 100%. А мне нужно чтобы основной поток работал на 100% на своем ядре, второй поток соответственно на другом. SetThreadAffinityMask не помогает. Что делать?
Автор: lavren
Дата сообщения: 03.03.2008 09:53
Jokerjar79
Посмотри здесь!
Автор: Maks150988
Дата сообщения: 03.03.2008 10:14
Товарищи, помогите разобраться. Вкратце: читаю настройки из ини файла. В комбобокс добавляю строки. После чтения настроек необходимо выделить в комбобоксе ту строчку, которую прочитали в ини файле.
Пользуюсь методом:


Код:
CmbxNetBuf := '10';
SendMessage(GetDlgItem(hStg, CTRL_COMBOBOX_NETPREBUF), CB_ADDSTRING, 0, Integer(@CmbxNetBuf));
CmbxNetBuf := '15';
SendMessage(GetDlgItem(hStg, CTRL_COMBOBOX_NETPREBUF), CB_ADDSTRING, 0, Integer(@CmbxNetBuf));
CmbxNetBuf := '30';
SendMessage(GetDlgItem(hStg, CTRL_COMBOBOX_NETPREBUF), CB_ADDSTRING, 0, Integer(@CmbxNetBuf));

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.