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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ALPeresvet
Определи папку, в которой лежит библиотека и сформируй путь к хелпу:
var
  buf: array [0..1024] of Char;
begin
  GetModuleFileName(HInstance, @buf, SizeOf(buf));
  hlppath := ExtractFilePath(PChar(@buf)) + '\myhelp.hlp';

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 08:28 30-11-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALPeresvet  или, что тоже самое, что предложил RomanTim, только используя системную функцию AppFileName:
Код:
 
  hlppath := ExtractFilePath(AppFileName) + '\myhelp.hlp';


Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 11:05 30-11-2007
vladk1973



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sampron
Я смогу скачать только в выходные.
Если проблема не разрешилась, то попробую посмотреть

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 11:21 30-11-2007
adg208

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Использую Delphi 7 база данных в Access
Имеется таблица
в Delphi подключаюсь к базе ADOConnection, в DBGrid1 отображаю все строки таблицы. DBGrid1 соединен с базой через ADOTable и DataSource1.
 
В DBGrid2 вывожу даные запроса
select *
from Si
where PZ LIKE '''+Edit1.Text+'''
DBGrid1 соединен с базой через ADOQuery и DataSource2.
 
есть кнопка редактирования Button
Если активна сетка DBGrid1 при нажатии на Button открывается форма редатирования выбранной строки.
А если выбрана DBGrid2 при нажатии на Button открывается форма редатирования первой строки в базе данных.
 
Вопрос  вот в чем, как сделать чтобы в DBGrid2 открывалась форма редатирования выбранной строки, а не первой строки в BD?

Всего записей: 159 | Зарегистр. 26-12-2003 | Отправлено: 12:48 30-11-2007
vladk1973



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
adg208
Не лучший способ работы с БД, имхо.
Ты бы лучше в DbGrid2 выдавал запросиком коротенький список со скрытым ID  
А при нажатии на кнопку редактирования уже в самой форме редактирования выполнял еще один запрос, передавая в него ID
 
В твоем случае можно поиграться со свойствами CursorLocation&CursorType

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 13:26 30-11-2007
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladk1973
Проблема не разрешилась, жду выходных.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 13:53 30-11-2007
ymg2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
adg208
У меня что-то подобное было, когда забыл таблицу проиндексировать и таблица без праймори. Правда, был не Accsess, а Interbase.

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 14:20 30-11-2007
SergeBS



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

Цитата:
 Вопрос  вот в чем, как сделать чтобы в DBGrid2 открывалась форма редатирования выбранной строки, а не первой строки в BD?

Сам-то понял, что написал? DBGrid - компонент для отображения и редактирования таблицы. Форму ты в него никак не запихнешь. А потому не майся ерундой. Либо подумай и напиши что ДЕЙСТВИТЕЛЬНО нужно, либо просто выкинь DBGrid2 и применяй другие компоненты.  
Да и ADOTable применять - не рекомендуется. ADODataset - правильное решение.  

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 14:23 30-11-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SERGE_BLIZNUK
А что за AppFileName, из какого модуля? Я по пасам, что идут с Д2007 пробежался, там вроде такого нет, и в WinAPI не увидел.

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 15:23 30-11-2007
vladk1973



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
adg208
Кстати, ymg2000 дело говорит, проверь ка ключевые поля на таблицах
 
 
Добавлено:
ALPeresvet
Урло тебе в помощь

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 15:28 30-11-2007
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ymg2000
vladk1973
Ну при чем тут индексы? Разные запросы могут встать на одну запись только если ее в одном из запросов специально выделять по признакам из 2-го запроса. Или использовать "в лоб" locate. Опять же по признакам 1 запроса искать в результатах 2-го.
А индексы тут никаким боком не помогут.
 
Добавлено:
SERGE_BLIZNUK
Наверное все-таки Application.Filename.
 
Добавлено:
SERGE_BLIZNUK
Пардон, Application.ExeName.

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 16:19 30-11-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeBS
Цитата:
А что за AppFileName, из какого модуля? Я по пасам, что идут с Д2007 пробежался, там вроде такого нет, и в WinAPI не увидел.
Вы правы! Приношу свои извинения!...
 
взял с работы, из рабочей программы и не глянул, а там используется JEDI JCL - из модуля JvVerInf

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 18:07 30-11-2007
vladk1973



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

Цитата:
Ну при чем тут индексы? Разные запросы могут встать на одну запись только если ее в одном из запросов специально выделять по признакам из 2-го запроса. Или использовать "в лоб" locate. Опять же по признакам 1 запроса искать в результатах 2-го.
А индексы тут никаким боком не помогут.  

Много букв, ниасилил
Может поподробнее разъяснишь нам, сирым, о параметризованных запросах?

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 18:59 30-11-2007
ALPeresvet

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

Цитата:
Определи папку, в которой лежит библиотека и сформируй путь к хелпу:
var
  buf: array [0..1024] of Char;
begin
  GetModuleFileName(HInstance, @buf, SizeOf(buf));
  hlppath := ExtractFilePath(PChar(@buf)) + '\myhelp.hlp';
 

 Так и сделал, но если вписывать это в ShellExecute, то компиллятор пишет несовместимость типов данных:
procedure TFLibVizual.SpeedButton3Click(Sender: TObject);
 var
  buf: array [0..1024] of Char;
begin
  GetModuleFileName(HInstance, @buf, SizeOf(buf));
  ShellExecute (Handle, 'open', ExtractFilePath(PChar(@buf)) + '\ROOT.HLP', nil, nil, SW_RESTORE);
end;
 
[Pascal Error] LibVizual.pas(222): E2010 Incompatible types: 'string' and 'PAnsiChar'

Всего записей: 13 | Зарегистр. 29-11-2007 | Отправлено: 10:18 01-12-2007
kalkin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Натолкнулся на проблему помогите разобраться:
С помощью Indy пытаюсь реализовать ssl +sock5
1)Для этого создал IdSSLIOHandlerSocket, IdSocksInfo, IdHTTP, взаимно их связал.
2)Библиотеки для поддержки SSL в Indy загрузил
 
При указании сокса и порта и выполнении операции Get выдается следующая ошибка:
Project raised exception class EAccessViolation with message
'Access violation at address 00475AB8 in module xxxx.exe.'
Read of address 00000014'.
 
При отключении сокса (в SocksInfo устанавливаю Version:=svNoSocks) сайт открывается без ошибок.
При подключении сокса, но при отключенном SSL режиме (просто http://) сайт также открывается нормально.
При одновременном https:// и наличии сокс-сервера выдается ошибка.

Всего записей: 55 | Зарегистр. 19-05-2006 | Отправлено: 13:53 01-12-2007
vladk1973



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

Цитата:
PChar(@buf)) + '\ROOT.HLP'

Здесь у тебя ошибка. При сложении результата функции и константы получится строка  string, а ShellExecute требует Pchar

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 14:17 01-12-2007 | Исправлено: vladk1973, 14:24 01-12-2007
ALPeresvet

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladk1973
 
HINSTANCE ShellExecute(          HWND hwnd,
    LPCTSTR lpOperation,
    LPCTSTR lpFile,
    LPCTSTR lpParameters,
    LPCTSTR lpDirectory,
    INT nShowCmd
);
lpFile
[in] Pointer to a null-terminated string that specifies the file or object on which to execute the specified verb. To specify a Shell namespace object, pass the fully qualified parse name. Note that not all verbs are supported on all objects. For example, not all document types support the "print" verb.
Тут вроде сказано, что ShellExecute требует string...

Всего записей: 13 | Зарегистр. 29-11-2007 | Отправлено: 14:35 01-12-2007
vladk1973



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ALPeresvet
Не угадал
Указатель на нуль терминированную строку, то бишь Pchar

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 14:45 01-12-2007
ALPeresvet

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladk1973
И как тут тогда поступить то?
 
Добавлено:
Я сделал вот так:
procedure TFLibVizual.SpeedButton3Click(Sender: TObject);
 var
  buf: array [0..1024] of Char;
  PH: String;
  PCH: PChar;
begin
  GetModuleFileName(HInstance, @buf, SizeOf(buf));
  PH:= ExtractFilePath(PChar(@buf)+'\ROOT.HLP');
  PCH:= PChar(PH);
  ShellExecute (Handle, 'open', PCH, nil, nil, SW_RESTORE);
end;
 
Конструкция компиллируется, но не работает - пишет что не удалось открыть файл (((
 
Добавлено:
По моему делается попытка открыть файл *.hlp с помощью системы Компас, тоесь той самой, из под которой запускается динамическая библиотека.

Всего записей: 13 | Зарегистр. 29-11-2007 | Отправлено: 15:12 01-12-2007
vladk1973



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ALPeresvet
Компас, что то знакомое... Не зарплата часом?
А сам то файл точно есть? может сначала MessageBox выведешь на экран с PH.  
В твоем случае Компас скорее ни при чем.
 
 
Добавлено:
Судя по коду, у тебя в PH совсем не то, что ты думаешь

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 15:51 01-12-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