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

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

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

ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Botanik_IV
Ты fbclient.dll с программой прихватить не забыл?  
Если эта библиотека присутствует в system32 или рядом с прогой - проверяй firewall, наличие базы по указанному пути и отсутствие флага readonly на файле базы.
 
Для динамического пути к базе можно воспользоваться подобной функцией
function HomePath : string;
begin
 Result := ExtractFilePath(Application.ExeName);
end;

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 19:49 18-09-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу обратиться к вам с вопросом. Все строки/диалоги (ну вообщем все что нужно для интерфейса) грузится из ресурсов. Для применения чего-либо к нужному диалогу, использую FindWindow и например использую SetWindowText(FindWindow(nil, 'gagaga'),'gagaga'). Но хочется полной независимости от констант заголовков диалогов - допустим пригодится когда перводишь ресурсы файла. Встречал пример где типа GetDlgItem(хэндл самого диалога и чего-то там) используют вместо FindWindow. Вот это думаю самый приемлемый вариант. Дайте кусок кода для допустим той самой SetWindowText в данном случае.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:37 18-09-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Maks150988
А почему бы при создании не запоминать хендл окна и хранить его себе вместо постоянного поиска. В случае с диалогами, можно пользоваться GetDlgItem, где первый параметр - это хендл диалога, а второй - ID элемента управления, который вы знаете, так как вы его задаёте, когда создаёте диалог в редакторе.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 22:57 18-09-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
А как быть тогда когда использую SetDlgItemText?
Тогда код
  SetDlgItemText(GetDlgItem(VERSION_DIALOG,8001), 8001, PChar(GetVersionInfo(ParamStr(0), sfiCompanyName)));
У меня уже 8001 указана в принимающем хэндле и я опять прописываю в ГэтДлгИтем. Тут путаница может возникнуть....
Например если я захочу показать мессаджбокс поверх основго диалога, впринципе вместо хэндла спокойно могу указать hwnd. А так мне приходится использовать FindWindow, если хочу показать окно поверх другого диалога. Для начала подумывал в заголовке ресурсов диалогов фигачить циферки, а потом после findwindow использовать setwindowtext из строкового ресурса. Но тут то же путаница вдальнейшем. Хочется универсальный вариант - то есть грузанулся диалог, заголовок применился и все последующие сообщения/диалоги и прочая лабуда происходила именно с этим диалогом.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 23:05 18-09-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Botanik_IV
fbclient.dll или GDS32.DLL. попробуй вместо локалхост написать 127.0.0.1
 
Добавлено:
А служба или Firebird guardian на компе запущены ?

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 09:20 19-09-2007
vserd

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

Цитата:
Приветствую всех, хотелось бы посоветоваться может кто нить сталкивался, ya&google не помогли...  
Я сейчас дописываю одну прогу трабла была сначала в установке исходников, не завязывалась база firebird с делфи, базу приконнектил через localhost:c:\...\x.fdb,  
 

1. Конектишся к одной базе с разных компов или один комп одна база?
Если с разных, тогда localhost для тебя запрещен, используй имя компа.
2. Как задаешь путь к базе (жестко в коде или считываешь), путь на диске правильный, база существует?
3. Если ставишь один комп-одна база, сервер установлен?
4. Клинет установлен?

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 09:27 19-09-2007
Botanik_IV



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

Цитата:
- генерация пути при запуске
 - банальный выбор бызы из OpenDialog  

С этого места можно поподробней?
 

Цитата:
движок interbase?  

нет, firebird 2.0.0.12748
 
Gerasoft
База переносится вместе с прогой...  
 
OXDBA
Firewall'оф нет, брэндмауэр отключен
 

Цитата:
А что мешает использовать alias? Конечно если FB от полуторки и выше.

а как не подскажете?
 
Arvur

Цитата:
Ты fbclient.dll с программой прихватить не забыл?  
Если эта библиотека присутствует в system32 или рядом с прогой - проверяй firewall, наличие базы по указанному пути и отсутствие флага readonly на файле базы.

Есть gds32.dll, fbclient забыл, записал в каталог с прогой, ошибка та же, флага readonly нет.
 

Цитата:
Для динамического пути к базе можно воспользоваться подобной функцией
function HomePath : string;
begin
 Result := ExtractFilePath(Application.ExeName);
end;  

попробую...
 
RostY

Цитата:
fbclient.dll или GDS32.DLL. попробуй вместо локалхост написать 127.0.0.1
А служба или Firebird guardian на компе запущены ?

gds32.dll была, сейчас еще и fbclient.dll, пробовал прописывать 127.0.0.1 ошибка та же, только соответственно вместо localhost идет 127.0.0.1. Службы не запущены...
 
vserd
1. Один комп одна база
2. в коде
 
Добавлено:
И еще gds32.dll есть файл 1523796 байт, есть 425948 байт, данная ошибка появляется при нахождении 1,5mb файла в каталоге с прогой, если записать др gds32 то появляется ошибка:
"Unable to complete network request to host "localhost"
Failed to locate host machine
Undefined service gds_db/tcp "
 
В каталоге с прогой есть так же fbintl.dll, fbudf.dll, ib_udf.dll, и плюслм сейчас fbclient.dll

Всего записей: 52 | Зарегистр. 04-08-2004 | Отправлено: 11:02 19-09-2007
OdesitVadim



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

Цитата:
Например если я захочу показать мессаджбокс поверх основго диалога, впринципе вместо хэндла спокойно могу указать hwnd.  

А какая разница между хэндлом и hwnd? Никакой. Два названия одного понятия.
Цитата:
У меня уже 8001 указана в принимающем хэндле и я опять прописываю в ГэтДлгИтем. Тут путаница может возникнуть...

Моя твоя не понимать.

Цитата:
Хочется универсальный вариант - то есть грузанулся диалог, заголовок применился и все последующие сообщения/диалоги и прочая лабуда происходила именно с этим диалогом.

А может маленький класс-обёртку написать? Тогда всё разложиться по полкам.
Но в целом, я слабо представляю "что же хочеться".

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 11:55 19-09-2007
OXDBA

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

Цитата:
И еще gds32.dll есть файл 1523796 байт...
...В каталоге с прогой есть так же fbintl.dll, fbudf.dll, ib_udf.dll, и плюслм сейчас fbclient.dll

Мдя... мне вот интересно, где ты взял gds32.dll от Interbase?
Короче:
1. Проверяешь установлены ли у тебя какие-либо версии IB/FB, если да, то сносишь все, предварительно куда-нибудь положив security2.fdb.
2. Из директории с программой удаляешь все, что ты туда накидал от FB.
3. Поиском по всей машине ищешь gds32 и fbclient,  удаляешь все найденное .
4. Ставишь из дистрибутива FB2.01 супер, классик тебе пока лучше не трогать, где взять надеюсь знаешь.
5. При отсутствии проблем с настройками сети все будет работать.
 
По поводу алиасов см.
1. Релизнутые ноты от FB 1.5(например Firebird_v1.5.4.ReleaseNotes.pdf).
2. Книгу Хелен Борри стр. 104.
3. файл aliases.conf  в корне FB.
 
Добавлено:
Кстати, а  FB случайно не Embedded?

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 11:55 19-09-2007
vserd

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

Цитата:
Есть gds32.dll, fbclient забыл, записал в каталог с прогой

Как всегда, рвем гланды через зад?
Сервер не устанавливал, клиента тоже. Что тут удивительного....
 

Цитата:
1. Один комп одна база  

Последоватьеность установки.
1. Сервер+клиент Firebird/interbase
2. прога.
либо смотри в сторону Embeded сервера, я с ним не работал, ничем помочь не смогу.
Дальше перезжай в тему по intebase/firebird.
 

Цитата:
"Unable to complete network request to host "localhost"  
Failed to locate host machine  
Undefined service gds_db/tcp "  

0. Сервер не установлен.
1. netstat -a показывает что слушается 3050 ?
2. в Servises есть gds_db 3050/tcp

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 12:07 19-09-2007
Botanik_IV



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OXDBA
переинсталировал firebird, gds32 = 389.120б = fbclient.dll
 
ошибка та же, что и в первом случае...

Всего записей: 52 | Зарегистр. 04-08-2004 | Отправлено: 12:17 19-09-2007
OXDBA

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

Цитата:
в Servises есть gds_db 3050/tcp

Для FB уже можно не указывать. Для IB вроде все еще необходимо.
 
Добавлено:
Botanik_IV
А локальное соединение работает (c:\...\x.fdb)?

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 12:18 19-09-2007
Botanik_IV



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

Цитата:
Последоватьеность установки.
1. Сервер+клиент Firebird/interbase
2. прога.  

??? первоначально по исходникам все работало без firebird на др. компах...
 
Добавлено:
OXDBA
нет, только через localhost:c:\...\x.fdb, локально не хочет ни в делфи ни в IBE

Всего записей: 52 | Зарегистр. 04-08-2004 | Отправлено: 12:22 19-09-2007
OXDBA

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

Цитата:
??? первоначально по исходникам все работало без firebird на др. компах...

Теперь я начинаю сомневаться в том, что мы сможем тебе помочь...
Что значит не хочет? Прямо вот так и пишет, не хочу и все? Ошибку какую возвращает???
 
Добавлено:
Версия gds32 какая?

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 12:25 19-09-2007 | Исправлено: OXDBA, 12:27 19-09-2007
Botanik_IV



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OXDBA
 
gds32.dll FileVersion    : WI-V2.0.0.12748
 
Переинстал firebird помогло немного, в делфи и IBE пошло подключение локально... но если запускать на др. компе выдает все ту же ошибку..."Unable to complete network request to host "localhost". Failed to establish a connection. Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение"

Всего записей: 52 | Зарегистр. 04-08-2004 | Отправлено: 12:37 19-09-2007 | Исправлено: Botanik_IV, 12:44 19-09-2007
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Botanik_IV
Тынц

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 12:48 19-09-2007
Botanik_IV



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OXDBA
попробуем тама
 
 
 
Добавлено:
Не наверно лучше тут:  
почитал "Firebird: руководство разработчика баз данных" на 61,62,781,782 стр. по установке embeded вроде все правильно делаю по файлам dll,
А еще забыл проге было:
procedure TMainData.DataModuleCreate(Sender: TObject);
begin
  MainDB.Close;
  MainDB.DatabaseName := 'localhost:' +ExtractFilePath( GetRealPathName( ParamStr( 0))) + 'xxx.FDB';
  MainDB.Open;
end;  
 
Локалхост убрал. появляется ошибка "bad parameters on atach or create database. character set win1251 is not defined"
 
Добавлено:
Плохо читал. прописал путь к БД в aliase и firebird.conf все пошло...
а можно как нибудь сделать чтобы не прописывать путь к бд, ведь устанавливать будут в любой понравившийся каталог...
 
Добавлено:
Все вопрос снят все огромное спасибо, в исходники перекинул ехе файл проги все работает, но 2-х компах проверял....

Всего записей: 52 | Зарегистр. 04-08-2004 | Отправлено: 12:51 19-09-2007
mfn9



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день
такой вопрос
как раскрасить всю строку в StrinGrid
вот так я раскрашиваю ячейку а мне нужно всю строку закрасить
в которой есть текст 'Test'  
 
procedure TMainForm.RzStringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if TRzStringGrid(Sender).Cells[ACol,ARow]='Test' then
    with TRzStringGrid(Sender) do
     begin
         Canvas.Brush.Color := clRed;
         Canvas.FillRect(Rect);
         Canvas.TextRect(Rect, Rect.Left, Rect.Top, TRzStringGrid(Sender).Cells[ACol,ARow]);
     end;
end;
 
Заранее спасибо

Всего записей: 63 | Зарегистр. 05-12-2005 | Отправлено: 17:20 19-09-2007
Maks150988



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

Цитата:
А какая разница между хэндлом и hwnd? Никакой. Два названия одного понятия.

Просто код допустим такой:

Код:
 
const
  HWND_MAIN_DIALOG = 'Main';
  HWND_ABOUT_DIALOG = 'About';
...
procedure ConfirmExit;
var
  String_ConfMessage : String;
  String_ConfCaption : String;
begin
  SetLength(String_ConfMessage, 255);
  LoadString(HInstance, 1627, PChar(String_ConfMessage), 255);
  SetLength(String_ConfCaption, 255);
  LoadString(HInstance, 1642, PChar(String_ConfCaption), 255);
  if MessageBox(FindWindow(nil, HWND_MAIN_DIALOG), PChar(String_ConfMessage), PChar(String_ConfCaption), MB_OKCANCEL or MB_ICONWARNING) <> ID_CANCEL then EndWork;
end;
 

То есть мне нужно точно знать хэндл, надо которым помещать сообщение. У меня таких мессаджбоксов в приложении больше 20 штук и некоторые должны отображаться поверх определенных диалогов.
Константа в файле проекта идет после uses, а так мне надо в var поместить строчки для диалогов, но компилятор ругается. Думаю надо создать отдельный inc файл и там прописать resourcestrings и фигачить. Как раз компилятор в строковые ресурсы поместит те строки. Просто первоначально хотел самостоятельно указывать номера строк, а компилятор по умолчанию сует их, начиная с 4096 строки. Может быть есть способ обойти данную закавыку?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 18:41 19-09-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Maks150988
Любят люди делать проблемы на голом месте. Хотя раз вы решили писать всё на винапи, так пиняйте на себя.

Цитата:
const  
  HWND_MAIN_DIALOG = 'Main';

Это хендл?
Может стоит создать дополнительную функцию, если код часто однотипный?

Цитата:
Просто первоначально хотел самостоятельно указывать номера строк, а компилятор по умолчанию сует их, начиная с 4096 строки. Может быть есть способ обойти данную закавыку?

Создать файл ресурса и слинковать его?
Что бы не набивать файл ресурса, можно взять и разок скомпилировать с параметром -GD


----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 20:50 19-09-2007
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3
ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru