Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38

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

01.11.2007, 21:27. Показов 4475. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, плиз, как или что или какие изменить свойства TEdit или еще чего-то или где-то мне надо сделать чтобы еогда появляется окошко подключения к БД каждый раз не вводить пользователя и путь к БД. Очень неудобно каждый раз набивать. Надо что бы один раз набить и он сохранялся.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.11.2007, 21:27
Ответы с готовыми решениями:

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

Как сделать чтобы анимация запускалась каждый раз после нажатия на кнопку, а не один раз?
Как сделать чтобы анимация запускалась каждый раз после нажатия на кнопку, а не один раз? <style> .main { ...

Можно ли "запомнить" пароль доступа к БД из макроса, чтобы не вводить каждый раз вручную
День добрый, господа программеры и сисадмины. Вопрос такой. Есть макрос, созданный для забирания (обновления) данных из БД и уменьшения...

18
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
01.11.2007, 21:45
Если нужно, чтобы один раз ввел, а дальше все сохранялось, то можно сохранять введенные данные либо в файле, либо в реестре. Соответственно, потом оттуда считывать. Если только для текущего запущенного приложения, то можно в переменной хранить.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
01.11.2007, 21:53  [ТС]
А как сделать чтобы с файла считывалось?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
01.11.2007, 22:30
Способов существует куча. Думаю, для вас самым простым будет использование старых паскалевских функций. Используем тип TextFile и функции assignfile, rewrite, reset, readln, writeln, closefile. Если не разберетесь, я Вам могу небольшой пример чиркануть.
А вообще, для хранения всего лишь одной строки (ну пусть даже двух) разумней использовать реестр. Работа с ним ненамного сложнее.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
02.11.2007, 14:07  [ТС]
Чирканите примерчик для реестра, а еще лучше, чтобы вытягивали информацию из XML файла. Буду очень признательна. Я не очень наглею?
Спасибо.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
02.11.2007, 15:36
Нет, не очень
По поводу XML тут уже был ряд тем. В том числе, есть темы, где я писал примеры кода. Попробуйте поискать. Если что-то будет непонятно - спрашивайте.
Пример работы с реестром напишу немного позднее. Толкько Вы почитайте что-нибудь о реестре, а то еще систему свою убьете
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
03.11.2007, 00:33
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var reg:tregistry;
begin
reg := tregistry.create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OPenKey('\Software\MySuperProgram', true);
reg.WriteString('PathToDB', edit1.text);
reg.free; 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var reg:tregistry;
begin
reg := tregistry.create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('\Software\MySuperProgram', false);
edit1.text := reg.ReadString('PathToDB');
reg.Free; 
end;
Только добавь модуль registry в uses.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
30.11.2007, 15:45  [ТС]
Подскажите, плиз, такой момент. На той форме, которая выскакивает при подключениии к БД есть 3 копонента Edit и 2 кнопки. Что или как надо сделать чтобы когда в первом Edit я написала путь и при нажатии Энтер курсор переходил автоматом в другой Edit или из Edit на кнопку. Ато чесно говоря как то неудобно получается, надо каждый раз мышкой щелкать.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
30.11.2007, 16:59
В обработчике события нажатия enter используй метод SetFocus компонента.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
30.11.2007, 19:41  [ТС]
Простите за незнание, а что это за метод такой? :oops: В обработчике для формы или для Edit?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
30.11.2007, 19:46
В обработчике для Edit, если с edit хотите прыгать. Можно разными обработчиками пользоваться. Я предпочитаю OnKeyDown. Проверяю, если key равен 13 (код символа), то делаю то злое, что задумал.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
30.11.2007, 20:08  [ТС]
И что мне в этом методе написать? (извините за наглость)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
01.12.2007, 03:12
Вызывай setfocus у нужного тебе компонента (у кого можно).
К примеру, если надо перевести фокус на button1, то пишешь button1.setfocus.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
01.12.2007, 17:39  [ТС]
Написала

Delphi
1
2
3
4
procedure TForm1.Edit1Enter(Sender: TObject);
begin
  Edit2.setfocus;
end;
Теперь курсор стоит только в Edit2, а в Edit1 не становиться, даже если его ставить с помощью мыши.
Что я не так сделала? :?
Спасибо за консультацию
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
01.12.2007, 17:44
Все.
Событие OnEnter происходит, когда компонент получает фокус, а НЕ нажатие клавиши Enter.
Таким образом, переводим то, что ты написала:

"когда edit1 получает фокус, мы тут же переводим фокус на edit2."

Поэтому у тебя ничего и не получается.
Говорю же, обработчик сделай на OnKeyPress, к примеру. Проверь в нем key на равность 13 и делай edit2.setfocus.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
01.12.2007, 18:13  [ТС]
"Я не....Я только учусь" :oops:
Если написать вот так

Delphi
1
2
3
4
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if key=13 then edit2.setfocus;
end;
то выдает ошибку, что не может скомпилировать. Чего я опять не так сделала?
и еще почему 13 а не другое число?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
01.12.2007, 18:45
Мы видим, что аргумент key у нас имеет тип Char. А мы его тут с числом пытаемся сравнить. Это еще в С++ будет позволительно, но у нас дельфи.
Ппопробуем сделать так:
Code
1
 if (key=chr(13)) then edit2.setfocus;
или так:
Code
1
 if (ord(key)=13) then edit2.setfocus;
Сразу извиняюсь, если вдруг где опечатка, или ошибка. Все пишу без компилятора. Я компилер дельфи в глаза уже давно не видел Но, вроде, все должно работать верно.

А 13, потому что это код ASCII символа Enter (то есть, конца строки). Кстати, если мне, опять же, не изменяет память, то есть там где-то VK_ENTER константа. Если будет нечего делать попробуй заменить 13 на VK_ENTER.
Советовал бы я вам паскаль сначала изучить.
0
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 38
01.12.2007, 19:18  [ТС]
Спасибо, пошло и первым и вторым способом .
А вот с третим что то не хочет. или я опять что не так делаю.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
03.12.2007, 14:00
Попробуй VK_RETURN. Просто я не вижу смысла запоминать эти константы. Да и коды символов лучше запомнить. Пригодится. Это не ты неправильно делаешь, это я уже не помню эти константы, мне проще с кодами работать
Просто у меня сейчас delphi не стоит, а то бы уже посмотрел имя константы. Они все в хелпе описаны.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2007, 14:00
Помогаю со студенческими работами здесь

Как сделать так, чтобы модель в Simulink после окончании моделирования автоматически перезапускалась заново, множество раз?
Здравствуйте! Может кто-то подскажет как сделать так, чтобы модель в Simulink после окончании моделирования сразу автоматически запускалась...

Как сделать чтобы данные вводить в строку а не в столбик?
ребят подскажите как сделать что бы данные вводить в строку а не в столбик для экономии места program record1; uses crt; const...

Как сделать так,чтобы я мог вводить данные с клавиатуры т.е массив?
Program Mas; Uses crt; Var A:array of integer; i,k,n:integer; Begin ClrScr; Randomize; Write('Ishodn mas:'); For i:=1 to 15...

Необходимо чтобы каждый поток (не файловый) писал данные в ОТДЕЛЬНОЕ ОКНО КОНСОЛИ
Друзья! Разбираюсь с библиотекой pthread, потоки-читатели выводят данные в одно окно консоли, очень неудобно тестировать. Допустим, два...

Можно ли сделать так, чтобы программа начала выполнять что-либо заново с определённой строчки?
Хотелось бы, чтобы программа выполняла действия с 20 по 22 строку до тех пор пока я бы не ввёл значение ruble>0. И ещё, возникла одна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru