Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

waik



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сори за оффтоп.
Пока читал страницу чуть не помер от смеха. Думал народ прикалывается...Оказывается весь форум как подонкафф начитался . Ух... слезы текут.

Всего записей: 610 | Зарегистр. 15-01-2003 | Отправлено: 21:33 01-04-2006
valerka78



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
Ну опиши хотяб в двух словах что за прога и что делает мб что подскажут

Всего записей: 248 | Зарегистр. 16-01-2006 | Отправлено: 12:24 02-04-2006
0bject

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите где почитать или пример приведите.
Вобщем нужно как то со сканера изображение взять, причем не вызывая стандартный twain модуль, а самостоятельно. Главное установить разрещение, цветопередачу (мне хватит 2 цвета) и регион сканирования (мне нужен весь А4).
В принципе можно и стандартный модуль захвата использовать но чтоб он не отражался на экране со своей кучей кнопок и настроек.
К сведенью:
Тут -> http://www.codenet.ru/progr/delphi/stat/twain.php расписано как и куда, для использования стандартного модуля захвата (идет со сканером).

Всего записей: 10 | Зарегистр. 02-02-2006 | Отправлено: 16:11 02-04-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
valerka78
Замутил нечто вроде dock'a - панель с батонами, невидимая до тех пор, пока мышь не появится на краю десктопа. И вот пока она невидима - жрёт до фига памяти, а хотелось бы, чтобы меньше. Я не жадный, просто у меня Касперский (5.0) жрёт столько же, но делает при этом полезного гора-а-а-аздо больше, чем моя панель
А зачем платить больше, если стирает одинково? Вот и хотел узнать, есть ли какие-нибудь хитрости, ловушки, общие ошибки программиста, прочитав/изучив/исправив которые можно было бы хоть немного умерить аппетит приложения...
С другой стороны, это - расплата за то, что юзаю VCL, но всё-таки
 
Добавлено:
Ещё вопрос... Есть три процедуры для отлова кликов грызуна:
1. WMNCRBUTTONDOWN(var msg: TMessage); message WM_NCRBUTTONDOWN;
2. WMNCLBUTTONDOWN(var msg: TMessage); message WM_NCLBUTTONDOWN;
3. WMNCLBUTTONDBLCLK(var msg: TMessage); message WM_NCLBUTTONDBLCLK;
 
Как написать ту, которая будет ловить клик средней кнопки мыши?.. Логика отсутствует напрочь (((
 
Добавлено:
Нашёл её: procedure WMNMBUTTONDOWN(var msg: TMessage); message WM_MBUTTONDOWN;
 
Но она у меня не пашет, почему-то \\\
 
 
 
 
p.s.
Тихо сам с собою...
Я веду беседу...
 
Добавлено:
Есть контакт! Нашёл!
 
WM_NCMBUTTONDOWN

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 21:35 02-04-2006
JekaCh

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В вопросах по Builder уже запостился, но может нужный мне знаток читает только Delphi ветки так, что спрошу и здесь .  
В инсте есть задача написать прогу для работы с внешним железом. Работа производится непосредственной записью в память определённых значений. Есть прога недописанная и не обладающая необходимым функционалом, но имеющая правильные мысли написанная на Delphi. Так как Borland Builder я знаю получше хотелось бы перевести нужные мне вещи на язык builder, но знаний не хватает .  
Вот как выглядит нужный мне кусок на Delphi:  
int N, MyAdress;  
BaseAdress:=$D0000; -такое же прямое указание адресса в билдере не проходит  
procedure WriteWord95(Address:integer; Value:word);  
var Data:^word; - это насколько я понял мона заменить на unsigned short *Data;  
    P:pointer; - это на  void *P;  
begin  
   P:=Ptr(Address); функция Ptr переводит указанный адресс в указатель, как сделать это в Билдере?  
   Data:=P;  
   Data^:=Value;  
end;  
MyAdress=BaseAdress+$20*N;  
WriteWord95 (MyAdress, 4);  
Как то же самое будет выглядеть в билдере? Если кто знает помогите плиз!

Всего записей: 46 | Зарегистр. 26-08-2003 | Отправлено: 00:39 03-04-2006
valerka78



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
А после того, как сановится видимой, жрет меньше? Мб, тут и зарыта собака?
Какой процедуркой пользуешься для определения наезда мыши?

Всего записей: 248 | Зарегистр. 16-01-2006 | Отправлено: 05:30 03-04-2006
0bject

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть огромная матрица (массив) типа boolean, подскажите как ее свернуть (сжать) для хранения в одной ячейки БД.
То есть по сути это двухцветная картинка (ч/б), но представленна она в виде матрицы.

Всего записей: 10 | Зарегистр. 02-02-2006 | Отправлено: 06:51 03-04-2006 | Исправлено: 0bject, 06:52 03-04-2006
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну так и храни как двоичную строку, 01010101010110.

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 07:21 03-04-2006
valerka78



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0bject
Нафик ее сворачивать то? Так и храни матрицей

Всего записей: 248 | Зарегистр. 16-01-2006 | Отправлено: 07:23 03-04-2006
0bject

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.. написал же "ДЛЯ ХРАНЕНИЯ В ОДНОЙ ЯЧЕЙКЕ БД". Дык вот тепрь скажите как в одну ячейку запихнуть матрицу.
Пока остановился на следующем:
есть матрица (оочень большая)
001010110 .. 1
.....................
000011010 .. 1
110101010 .. 1
101010101 .. 0
делим ее на строки и сохраняем в одну строчку, в начале строки записываем размерность для последующей разбивки. Напрмер
"12346#10101011101010101101101 .. 1010101010101" - это строка.
такую строчку можно писать в БД. Тип string or ansistring
ps/ вот бы ее еще ввиде int числа представить..

Всего записей: 10 | Зарегистр. 02-02-2006 | Отправлено: 09:28 03-04-2006 | Исправлено: 0bject, 09:36 03-04-2006
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0bject
ты переводи 8-бит в 1 байт (символ) и сохраняй как строку весь масив
 
Добавлено:
00101011 = 43 (дес)
 
какой-то стринг := какой-то стринг + chr(43);
 
и т.д
потом стринг пишеш в базу

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 09:55 03-04-2006
valerka78



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А не проще поле БД сделать BlobMemo и пихать туда что хочешь и как хочешь?

Всего записей: 248 | Зарегистр. 16-01-2006 | Отправлено: 11:19 03-04-2006
Markell



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fixer84

Цитата:
Markell  
Можно через стандартные компоненты Delphi. Коннект с помощью ADOConnection, OLE DB Provider выбираешь Microsoft OLE DB Provider for SQL Server.

EZH

Цитата:
Markell  
Либо через стандартные ADO компоненты, либо используя какие-то сторонние, типа SQL Server Direct Access Components (SDAC).

Через ADO соединение устанавливается. Однако, каким образом можно сделать так, чтобы пользователь сам из программы мог выбирать нужную ему БД? Может есть какой-нибудь кусочек кода, чтобы нагляднее было?

Всего записей: 103 | Зарегистр. 05-10-2004 | Отправлено: 11:21 03-04-2006
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Markell

Цитата:
Через ADO соединение устанавливается. Однако, каким образом можно сделать так, чтобы пользователь сам из программы мог выбирать нужную ему БД?

 
дай пользователю возможность выбирать разные ConnectionString, или пусть выбирает базу и подставляй ее название в connectionString

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 12:35 03-04-2006
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JekaCh
Если думаешь, что такие хохмы будут работать на Винде старше W98, то сильно ошибаешься. А хочешь найти решение - лезь в  
winio.zip - WinIo v2.0 - Direct Hardware Access Under Windows 9x/NT/2000/XP
                 (C)1998-2002 Yariv Kaplan http://www.internals.com  
Исходники на С наличествуют.

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 12:50 03-04-2006
fixer84



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Markell

Код:
 
procedure TForm1.Button1Click(Sender: TObject);
 begin
  adoconnection1.close;
  if editconnectionstring(adoconnection1) then
    begin
    adoconnection1.Connected:=true;
    AdoTable1.active:=true;
    end;
 end;
 

Всего записей: 214 | Зарегистр. 30-07-2005 | Отправлено: 13:19 03-04-2006
Markell



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, плз, в чем может быть ошибка? Устанавливаю соединение с MSSQL БД через SQLConnection. Прописываю все параметры, тестирую, соединение установлено. Затем кидаю на форму SQLDataSet.  Указываю свое соединение SQLConnection1, затем в CommandText пишу свой SQL запрос. Затем кидаю на форму DataSource. В свойствах указываю свой DataSet1, делаю его активным. Затем кидаю на форму DBGrid, чтобы в него выводить результат запроса. Но когда я в его свойствах хочу выбрать свой DataSource, вылетает ошибка "Operation not allowed on a unidirectional dataset" При этом программа компилируется нормально, но, естественно, никаких результатов не выдает.
 
Добавлено:
fixer84
Спасибо!

Всего записей: 103 | Зарегистр. 05-10-2004 | Отправлено: 13:21 03-04-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
valerka78
Нет, она в любом состоянии жрёт одинаково, это я хочу исправить
 
Про мышь смотри тему "Окно на первый план в Delphi 6" здесь же, в этой ветке.

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 23:40 03-04-2006
whitewolfs

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите плз, как после применения Table1.Filter:='N='+'1';  узнать кол-во отфильтрованных строк?

Всего записей: 300 | Зарегистр. 21-10-2005 | Отправлено: 04:19 04-04-2006
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
whitewolfs
Table1.RecordCount вот что тебе нужно.

Цитата:
Table1.Filter:='N='+'1';

Вот так лучше сразу Table1.Filter:='N=1';

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:54 04-04-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru