Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi

Автор: stepan96
Дата сообщения: 16.01.2006 09:37
SergeBS
> А положить сервак напрочь на этом не боишься?
А в чем проблема-то? Одна хранимая процедура, которая делает один большой SELECT, а потом делает UPDATE на получившийся набор данных и вот его отдает клиенту. С таким же успехом положить сервак может и само приложение.
Автор: ShamaN
Дата сообщения: 16.01.2006 10:04
Z MeZe, я нашел как можно решить эту проблему.
Если интересно...

Главной форме делаю:

Код: ShowWindow(Application.Handle, sw_hide);
Автор: DenSer
Дата сообщения: 16.01.2006 10:39
господа, подскажите плиз как обработать нажатие клавиши "Win"?
не могу найти инфы по этой теме
Автор: vserd
Дата сообщения: 16.01.2006 10:55
stepan96

Цитата:
К сожалению в xml не получается, т.к. для редактирования этого rtf-файла используется OpenOffice. И было решено использовать rtf-формат

Вас обрадовать?
Документ OpenOffice является зазипованнім XML.
такчто OpenOffice умеет работать с XML.Sergey1970

Цитата:
У кого есть информация/мысли по поводу автоматизации сборки проекта. Укажи где и что лежит толковое.

Поищи информацию про Ant (вроде от Appache.org) он позволяет управлять сборками проекта.
Автор: SergeBS
Дата сообщения: 16.01.2006 11:30
stepan96

Цитата:
а потом делает UPDATE на получившийся набор данных и вот его отдает клиенту

Во-во, парсинг и UPDATE со вставкой туевой хучи форматирующих признаков, которые еще и просто так не сформируешь. Хотя попробовать конечно можно. Но я это все делал бы на клиенте: просто в Word впихнуть, конвертировать он сам умеет. Все заморочки пропадают.
Автор: Farkhad
Дата сообщения: 16.01.2006 15:47
На форме 1 у меня установлено соединение с базой.
На форме 2 меню, по нажатию на пункт меню, в форму 2 подгружается нужный фрейм:


Код:
if assigned(Frame) then FreeandNil(Frame);

Frame := TFrame5.Create(Self);
Frame.Parent:=Form2;
Автор: SergeBS
Дата сообщения: 16.01.2006 17:09
Farkhad
Берешь ADOconnection и через него связываешь с БД всех прочих Table, Query.... А вообще правилом хорошего тона считается выносить все эти компоненты в отдельный модуль и юзать сообща всеми формами, дабы не плодить 1001 ADOTable для работы с главной таблицей. Переделывай, пока не поздно. И опять же, использование ADOTable - моветон. Юзай связку ADOConnection-> N*(ADOcommand+DataSet)->DBGrid/DBEdit...на формах.
Автор: Kosta_piter
Дата сообщения: 17.01.2006 12:59
Писал кто-нить клиента ICQ с поддержкой последней версии протокола и возможностью установки фотографий в информацию об уине (как в ICQ5)? И с поддержкой регистрации нового пользователя? Я раньше сидел на TICQclient, но этот компонент устарел (протокол V7). Пробую TOOSCARclient (www.ithilien.tk) Он под AIM но с асей тоже вроде работает. Стучите в 1923071...
Автор: nvlnik
Дата сообщения: 18.01.2006 14:54
Уважаемые господа!
Не разобрался с компонетом Win32Crt. Скачал с torry, но там нет файла .pas? а только .dcu.
Как его уcтановить в Delphi 7?
Автор: dyr farot
Дата сообщения: 18.01.2006 15:10
так он ( .pas ) и не нужен...
Автор: Z MeZe
Дата сообщения: 18.01.2006 16:21
nvlnik

Цитата:
Уважаемые господа!
Не разобрался с компонетом Win32Crt. Скачал с torry, но там нет файла .pas? а только .dcu.
Как его уcтановить в Delphi 7?

Либо подкладываешь в директорию проекта и прописываешь в uses, либо кидаешь туда, где все дельфийские dcu лежат, либо кладешь в свою директорию и прописываешь путь к этому файлу.
Первый путь самый незамороченный. Если собираешься использовать для множества проектов, то лучше в общую папку кинуть (по умолчанию папка ...:\Program Files\Borland\Delphi...\lib)
Автор: chaugi
Дата сообщения: 18.01.2006 20:18
Программа при помощи

Цитата:
if FindFirst(PathEdit.Text+'\*.mp3', faAnyFile{faDirectory}, sr) = 0 then

находит файли с такимто расширением и потом их переименовывает.
Подскажите пожалуйста как заставить искать файлы с такимже расширением и во всех СУБ директория. В Helpe мне кажется что всё перерыл.

Огромное спасибо.

Добавлено:
Программа при помощи

Цитата:
if FindFirst(PathEdit.Text '\*.mp3', faAnyFile{faDirectory}, sr) = 0 then

находит файли с такимто расширением и потом их переименовывает.
Подскажите пожалуйста как заставить искать файлы с такимже расширением и во всех СУБ директория. В Helpe мне кажется что всё перерыл.

Огромное спасибо.
Автор: Sleepwalker
Дата сообщения: 18.01.2006 20:48
chaugi

примерно в таком концепте:


procedure findfiles(dir:string);
var
fs:TSearchRec;
begin
if findfirst(dir+'*.*',faDirectory,fs)=0 then
repeat
if (fs.Name='.') or (fs.Name='..') then continue;
findfiles(dir+fs.name+'\');
until findnext(fs)<>0;
if findfirst(dir+'*.mp3',faAnyFile,fs)=0 then
repeat
if fs.Attr and 16>0 then continue;
{тут творишь весь беспредел над найденным файлом}

until findnext(fs)<>0;
findclose(fs);
end;


рекурсивный вызов и усе...
Автор: chaugi
Дата сообщения: 18.01.2006 21:52
Sleepwalker
Я не совсем знаю что такой рекурсивный вызов
И т.к. у меня идёт обращение к элементам формы мне нужно сделать

Цитата:

procedure findfiles(Sender: TObject; Path:string);

Но я не знаю, как нужно правильно вызвать процедуру.
procedure TForm1.RenameButtonClick(Sender: TObject);

Цитата:
.....
if SubCheckBox.Checked then findfiles(?????????,Path); что вписать?
....

Спасибо.

Добавлено:
А то, что эта процедура сама себя вызывает, это нормально?

Добавлено:
Может есть есть какой-нибудь другой способ, просто функция например, которая из заданной директирии находит все поддиректории и заносит их какую нибудиь string переменную, а потом просто запускаешь

Цитата:

if FindFirst(PathEdit.Text+'\*.mp3', faAnyFile{faDirectory}, sr) = 0 then

с разными путями и всё....?
Автор: gpi
Дата сообщения: 18.01.2006 22:04
chaugi

Цитата:
А то, что эта процедура сама себя вызывает, это нормально?

Вот это и есть рекурсия

Цитата:
procedure findfiles(Sender: TObject; Path:string);

procedure findfiles(Path:string);
Только напиши procedure findfiles ДО procedure TForm1.RenameButtonClick

Автор: Sleepwalker
Дата сообщения: 18.01.2006 22:55
chaugi

сделай мою процедуру как метод формы и обращайся к элементам формы сколько душе угодно

т.е.
procedure Tform1.findfiles(dir:string);
... и далее по моему тексту

+ не забудь добавить описание метода в описание класса в начале модуля
т.е. у тебя есть
TForm1 = class (Tform)
procedure ....
procedure ....
procedure Tform1.findfiles(dir:string);
...
private;
public;
end;


и потом в обработчике кнопки:

procedure TForm1.RenameButtonClick(Sender: TObject);
begin
...
findfiles(dir);
...
end;

зы. если я правильно понял твой вопрос..
Автор: chaugi
Дата сообщения: 18.01.2006 23:25
Sleepwalker
Да, правильно, только почемуто в глубь дирректорий не лезет.... А так работает в указанной...

Добавлено:
gpi
Спасибо за пояснение.
Sleepwalker
Переправерил, все переписал, как Вы и сказали

Добавлено:
Нашёл ошибку, всё работает спасибо огромное Sleepwalker!
Автор: Konstantin555Xaker
Дата сообщения: 19.01.2006 00:11
Для выделения текущей интернет-ссылки из IE я использую следующий код:


Код: function Get_URL(Servicio: string): String;
var
Cliente_DDE: TDDEClientConv;
temp:PChar; //
begin
Result := '';
Cliente_DDE:= TDDEClientConv.Create( nil );
with Cliente_DDE do
begin
SetLink( Servicio,'WWW_GetWindowInfo');
temp := RequestData('0xFFFFFFFF');
Result := StrPas(temp);
StrDispose(temp); //
CloseLink;
end;
Cliente_DDE.Free;
end;
Автор: Bonivur
Дата сообщения: 19.01.2006 07:14
Может кто-то сталкивался...?
Нужна подсветка гитарных аккордов в тексте (OnChange, реалтайм то бишь..) Для тех кто не знает - аккорды могут состоять из одной Заглавной английской буквы и буквенно-цифровых обозначений - например:
Cm, A, G#, F#m7-5, A7, Hm, Hsus4, H+5, D6/9 и.т.д.
Так вот сама задача - как сделать подсветку
1) быстро. по изменению текста (вставка, исправление, добавление и пр.) чтобы на глаз
перерисовка была заметна по минимуму.
2) чтобы убирала подсветку если аккорда нет в массиве (например, было 'Hm', такой аккорд есть, потом пользователь приписал буковку 'a' -стало 'Hma' такого аккорда нет - подсветка снимается со всего этого слова.
3) Между аккордами есть пробелы, но аккорды могут стоять и в конце строки, то есть ими строка может заканчиваться.

Вот такая задача. Бьюсь, но пока ничего не смог сделать. Пробовал TRichEdit, TRichView, SynEdit - не то.
Автор: PowerChute
Дата сообщения: 19.01.2006 09:50
Bonivur
Возми компоненту TfsSyntaxMemo из библиотеки FastScript, исправь ключевые слова на аккорды и будет тебе счастье.
Автор: chaugi
Дата сообщения: 19.01.2006 11:19
Sleepwalker
Раз на то пошло, а какой функцией я могу переименовать директирию?
Уж если с директорией получится, то и с субдиректориями по-тому же методу поидее проблем не будет...

Спфсибо.
Автор: Kr_Alex
Дата сообщения: 19.01.2006 12:02
При открытии проекта выдается сообщение об ошибке: Unable to locate file system "Delphi.TStringsFileSystem".
Что это значит?
Автор: ArtemiyUO
Дата сообщения: 19.01.2006 12:26
MoveFile()
Автор: Kr_Alex
Дата сообщения: 19.01.2006 12:34
ArtemiyUO
Это ты кому?
Автор: ArtemiyUO
Дата сообщения: 19.01.2006 12:37
chaugi
Автор: Z MeZe
Дата сообщения: 19.01.2006 12:59
Kr_Alex

Цитата:
При открытии проекта выдается сообщение об ошибке: Unable to locate file system "Delphi.TStringsFileSystem".
Что это значит?

Посмотри, наместе ли файлы:
...:\Program Files\Borland\Delphi...\Source\Property Editors\stredit.pas
...:\Program Files\Borland\Delphi...\Source\Vcl\stfilsys.pas
Автор: eMASTER
Дата сообщения: 19.01.2006 16:09
Подскажите, может кто знает...
Как в документе MS Word заменить некоторые слова на данные из таблицы Access'а?
Вообще какие-нибудь доки или статьи по работе с Word...
Автор: Kr_Alex
Дата сообщения: 19.01.2006 16:22
Z MeZe
Вторго нет. Че делать?


Добавлено:
Z MeZe
А, не, он не в Vcl, а в Property Editors
Автор: Pinocchio
Дата сообщения: 19.01.2006 16:34
Kr_Alex
Зависит от версии Delphi. Лучше не трогай если ставишь всякие сборники подобные RC3. У них собственное перекрытие редактора TSrings. А ты что property editor-сы пишешь?
Автор: Kr_Alex
Дата сообщения: 20.01.2006 09:13
Pinocchio
Не, мне до этого далеко
В общем на другом форуме разъяснили -
>>У меня такое сообщение иногда встречается. Как я понял - это проиходит при следующих условиях:
1. В настройках Delphi включена опция Tools\Enviroment option\Autosave option\Project desktop.
2. При закрытии Delphi происходит exeption и в результате приходится снимать задачу (delphi32).

Я так понял, что в результате файл с настройками рабочего стола Delphi получается битым.

Как правило exception происходит после того, как программа в режиме отладки прерывалась по Ctrl+F2. Либо используются компоненты, которые не очень то следят за Exception при неправильных настройках, и или не правильно отрабатывающие прядок создания удаления компонентов.

В большинстве случаев достаточно просто открыть проект не смотря на эту ошибку, и ничего не делая выйти из Delphi с включеной опцией Tools\Enviroment option\Autosave option\Project desktop. Если не произойдет Exception - то все должно нормально заработать.

Еще возможно(но я не проверял) от этой ошибки можно избавиться просто удалив файл с настройками рабочего стола Delphi а именно файл "Имя проекта".dsk

Есть другой еще вопрос:
Написал вот такую простенькую процедурку

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
Pr: TPrinter;
Device, Driver, Port: array[0..255] of Char;
hPrn: THandle;
begin
Pr := TPrinter.Create;
for I := 0 to Pr.Printers.Count - 1 do // Iterate
begin
Pr.PrinterIndex := I;
Pr.GetPrinter(Device, Driver, Port, hPrn);
ShowMessage(string(Device) + ' ' + string(Driver) + ' ' + string(Port));
end; // for
Pr.Free;
end;

Только вот почему то string(Driver) = '' и string(Port) = ''. Почему?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Вероятность одинакового CRC32


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.