![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
sheka |
![]()
Сообщение
#21
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Цитата Поле типа Memo Я текстовым пользуюсь), чтобы красиво в таблице выводило.Хотя мне идея 3 понравилась больше всего, но почему-то 2я поолучилась, по-моему, красивее. Delphi 7 Вопросики: 1. Как можно сделать для TDBImage свойство Proportional ? такое возможно? 2. почему после удаления картинок из БД ее размер не уменьшается? Вот, что получилось: ![]() Посмотрите, пожалуйста, не смотря на то, что там весь код Ваш) |
volvo |
![]()
Сообщение
#22
|
Гость ![]() |
Цитата 1. Как можно сделать для TDBImage свойство Proportional ? такое возможно? У меня в Д2009 присутствуют свойства Proportional и Stretch:![]() Цитата 2. почему после удаления картинок из БД ее размер не уменьшается? Чтобы уменьшить размер Access-базы, надо сделать из самого Access-а Tools->Database Utilities->Repair and Compact Database. По-моему в ДРКБ было описано, как это сделать прямо из Дельфи, но точно не могу утверждать...Цитата Delphi 7 Посмотреть могу только визуально, ибо в Д7 еще не было работы с Юникодом, а у меня установлена по умолчанию НЕ кириллица, так что я вижу кракозябры. Ну, главное чтоб тебе нравилось ... Вот, что получилось: ![]() Хотя я предпочитаю давать файлам, таблицам и полям названия на английском языке (в крайнем случае - латинскими буквами), а то знаешь, мало ли... |
sheka |
![]()
Сообщение
#23
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Надо бы вопросы выбирать из БД рандомно. Как это осуществить?
Как выделить запись я так и не нашел, тем более вы говорили что этого лучше не делать. Откуда можно скачачть Д2009 ? Кстати, она на Виндовс 7 нормально работает, еще не проверяли? |
Client |
![]()
Сообщение
#24
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
ADOTable1.RecNo и ADOTable1.RecordCount - это текущая запись и количество записей. Этого может и хватит.
Цитата на Виндовс 7 нормально работает На 7 не знаю, на висте все нормально...Сообщение отредактировано: Client - 15.02.2010 20:55 |
sheka |
![]()
Сообщение
#25
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#26
|
Гость ![]() |
Цитата Кстати, она на Виндовс 7 нормально работает, еще не проверяли? Прекрасно работает и на Win7 тоже.Цитата Вот, например, с массивом я бы это делал так m[random(RecordCount)] итд. А как с базой быть? procedure TForm1.btnRandomRecClick(Sender: TObject);
var Curr: integer;
begin
with DBGrid1.DataSource.DataSet do
begin
Curr := Random(RecordCount);
First;
MoveBy(Curr);
end;
end;
, только не забудь вызвать при инициализации формы Randomize, иначе будешь получать все время одну и ту же запись. Чтобы видеть выбранную строку, желательно в опциях ДБГрида установить gdRowSelect и dgAlwaysShowSelection... |
sheka |
![]()
Сообщение
#27
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
http://www.cyberguru.ru/delphi-sources/db-...olzuya-dao.html
Вот нашел как программно сжать бд. Только Делфи ругается на DAO2000, говорит, что такого модуля он не знает. И еще сразу же вопрос: если мне для работы ДБГрид не нужен(таблица на форме), то все равно его надо кинуть на форму и установить Visible:=False; или без него можно как-то обойтись(ADOTable1 или DataSource1 они же вроде выполняют функции свызывания с базой). |
volvo |
![]()
Сообщение
#28
|
Гость ![]() |
Цитата если мне для работы ДБГрид не нужен(таблица на форме) Хм... Ну, обойдись без него, просто не клади его на форму. Никто не запрещает связывать тот же TDBImage напрямую с TDataSource. Грид - он только для отображения информации.Цитата Вот нашел как программно сжать бд. Ух ты ![]() Uses ComObj; // Добавить если еще нет этого модуля
// ...
function CompactAndRepair(DB: string) : boolean;
var
v: OLEvariant;
begin { CompactAndRepair }
Result := True;
try
v := CreateOLEObject('JRO.JetEngine');
try
//try
v.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB,
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB +
'x;Jet OLEDB:Engine type=5');
DeleteFile(DB);
RenameFile(DB + 'x', DB)
finally
v := Unassigned
end; { try }
except
Result := False
end; { try }
end; { CompactAndRepair }
// Вызывать - так:
procedure TForm1.btnCompactDBClick(Sender: TObject);
const sDBPath = 'F:\Programs\Delphi\myProject\base.mdb';
begin
ADOTable1.Close; // Закрываем все открытые таблицы и саму базу...
ADOConnection1.Close;
if CompactAndRepair(sDBPath) then
ShowMessage('Success')
else
ShowMessage('Fault');
ADOConnection1.Open; //Открываем в обратном порядке, сначала базу, потом - таблицы
ADOTable1.Open;
end;
, только для этого надо не устанавливать в Инспекторе Объектов ADOConnection.Connected в True, а делать это при инициализации формы, иначе база будет открыта в монопольном режиме, и сжатие не будет произведено. То же самое касается и ADOTable - они в Design-Time должны быть неактивны, активизировать их надо будет при запуске:procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Open;
ADOTable1.Open;
// Ну, и что там тебе еще надо было...
end;
|
sheka |
![]()
Сообщение
#29
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Почему при перемещении по DataSource информация в DBText1 не меняется???
Спасайте, пожалуйста. Завтра уже надо сдавать тест в полностью рабочем состоянии... ![]() Прикрепленные файлы ![]() |
Client |
![]()
Сообщение
#30
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
проект не компилится, если закомментировать то не запускается...
Как в ДАТАСУРСЕ перемещаешся? Или через table? Кстати, а пароль как узнать можно от базы? |
sheka |
![]()
Сообщение
#31
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
проект не компилится, если закомментировать то не запускается... Как в ДАТАСУРСЕ перемещаешся? Или через table? Кстати, а пароль как узнать можно от базы? Пароль и имя пустые. Почему не компилится? Если пишет что базы нет - то это путь надо поменять. Как Volvo писал, только через ДатаРесурс form1.DataSource1.DataSet.First;
form1.DataSource1.DataSet.MoveBy(ord(variation[1])-1);
Это в procedure NextQuestion; Сообщение отредактировано: sheka - 4.03.2010 21:48 |
Client |
![]()
Сообщение
#32
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Путь к базе поменял в AdoConnection.
procedure NextQuestion;
var i:integer;
begin
form1.DataSource1.DataSet.First;
form1.DataSource1.DataSet.MoveBy(ord(variation[1])-1);
form1.DBText1. // вот ошибка
delete(variation,1,1);
DrawComboNew;
inc(curr);
form1.Memo1.Lines.Clear;
for i:=1 to length(variation) do
form1.Memo1.Lines.Add(inttostr(ord(variation[i])));
end;
Без этой строки такая ошибка (на скрине) В моем проекте (для теста, база Access) данные DBText и DBEdit обновляются при перемещеним (и через датасурс и через AdoTable) Эскизы прикрепленных изображений ![]() |
sheka |
![]()
Сообщение
#33
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Цитата form1.DBText1. // вот ошибка Забыл видимо))), но проблема не в этом. Комп глючный!!! Раньше все нормально работало, а теперь та проблема, о которой я говорю. Сейчас на ХР попробую... Добавлено через 6 мин. На ХР тоже не работает... |
Client |
![]()
Сообщение
#34
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
запустилось...
![]() хм, если добавить в твой проект DBEdit, то в нем инфа обновляется, а в DBText нет... |
sheka |
![]()
Сообщение
#35
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
|
Client |
![]()
Сообщение
#36
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
создал заново проект, добавил твою базу, кинул на форму дбтекст и дбедит. Все нормально обновляется...
Добавлено через 7 мин. если без DBText никуда, то попробуй добавить обычный Label и задавай ему значение поля для текущей записи. Почему DBText сам не обновляется даже нет идей... |
sheka |
![]()
Сообщение
#37
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Я думал, что проект мог быть "битым". Такое у меня уже бывало, но мне лень было его переделывать заново...
Спасибо за указание! ![]() |
sheka |
![]()
Сообщение
#38
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
volvo, Client, большое спасибо! Программу написал, сдал!
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 8:14 |