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

» Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Автор: Man_Without_Face
Дата сообщения: 20.05.2011 08:31
Andryshok

Цитата:
а в рантайме программа подключается к серверу ?

ДА
procedure TDM.DataModuleCreate(Sender: TObject);
begin
SQLConnection.Close;
SQLConnection.Params.values['DSAuthPassword'] := '111';
SQLConnection.Open;
SQLConnection.Connected := true;
end;
Автор: JAPWork
Дата сообщения: 20.05.2011 09:09
Man_Without_Face
Вроде бы в случае изменения параметров соединения на лету нужно
LoadParamsOnConnect установить в True.
В справке написано...
"Note: If you set LoadParamsOnConnect to true, you must be sure to deploy the dbxconnections.ini file with your application. When you rely on the design-time associations, dbxconnections.ini is not needed at runtime.

Warning: If you set LoadParamsOnConnect to true, you must specify a valid connection name as the value for ConnectionName.
"
Рыть нужно где-то здесь...
Автор: Man_Without_Face
Дата сообщения: 20.05.2011 09:18
Всем спасибо, но причина банальна:
В свойствах Driver название поля DSAuthPassword,
а в Params - DSAuthenticationPassword.
Правильно последнее т.е.
SQLConnection.Params.values['DSAuthenticationPassword'] := '111';

Добавлено:
Есть еще такой вопрос:
В Delphi 2011 экзешник создается не в корневом каталоге проекта, как в 2009 и пр., а в Корневой каталог проекта\Debug\Win32\
Перерыл настройки проекта и делфи, где можно поменять? Спасибо.

Все таки нашел: в настройках проекта - DelphiCompiler - OutputDirectory - прописать .\
Автор: m0nty2k5
Дата сообщения: 20.05.2011 10:03
volod3000

Цитата:
Майкрософт много чего не рекомендует.

Есть правила "хорошего тона" ... Майкрософт может так же не рекомендовать форматировать винт ничего не подозревающему юзеру, а Вы можете это проигнорировать.
Автор: Anakros
Дата сообщения: 23.05.2011 11:25
Возможно-ли как-то "нормально" сделать работу TWebBrowser через прокси?
Этот вариант у меня работает только в Form.OnCreate:

Код:
var PIInfo:PInternetProxyInfo;
begin
New(PIInfo);
PIInfo^.dwAccessType:=INTERNET_OPEN_TYPE_PROXY;
PIInfo^.lpszProxy:=pansichar(s); //s='proxy:port'
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo,SizeOf(Internet_Proxy_Info), 0);
Dispose(PIInfo);
end;
Автор: Man_Without_Face
Дата сообщения: 25.05.2011 11:07
После установки delphi 2011, перестала запускаться delphi 2009. Выдает ошибку: "Значение не может быть неопределенным. Имя параметра: key". Подробнее: [more] [21D8B652]{dotnetcoreide120.bpl} InteropApp.MSBuildRegisterTaskHost (Line 1350, "InteropApp.pas" + 2) + $40
[5000CE7D]{rtl120.bpl } System.@CheckAutoResult (Line 21834, "System.pas" + 6) + $0
[21D8B652]{dotnetcoreide120.bpl} InteropApp.MSBuildRegisterTaskHost (Line 1350, "InteropApp.pas" + 2) + $40
[21D88232]{dotnetcoreide120.bpl} InteropApp.TInteropHostAppManager.ResolveTempTaskHostStorage (Line 419, "InteropApp.pas" + 5) + $2B
[21D877CE]{dotnetcoreide120.bpl} InteropApp.TInteropHostAppManager.Create (Line 268, "InteropApp.pas" + 48) + $3
[21DBDCEF]{dotnetcoreide120.bpl} DotNetReg.TDotNetRegEvents.RegisterInteropHostApp (Line 71, "DotNetReg.pas" + 0) + $7
[20B86E71]{designide120.bpl} Events.TEvent.Send (Line 103, "Events.pas" + 2) + $11
[00415221]{bds.exe } AppMain.TAppBuilder.CMPostCreateInit (Line 1861, "ui\AppMain.pas" + 18) + $8
[501C5646]{vcl120.bpl } Controls.TControl.WndProc (Line 6642, "Controls.pas" + 91) + $6
[501C9CD3]{vcl120.bpl } Controls.TWinControl.WndProc (Line 9336, "Controls.pas" + 136) + $6
[501E5A40]{vcl120.bpl } Forms.TCustomForm.WndProc (Line 3901, "Forms.pas" + 191) + $5
[501C93EC]{vcl120.bpl } Controls.TWinControl.MainWndProc (Line 9065, "Controls.pas" + 3) + $6
[50059174]{rtl120.bpl } Classes.StdWndProc (Line 12703, "Classes.pas" + 8) + $0
[501C03CE]{vcl120.bpl } Controls.FindControl (Line 2999, "Controls.pas" + 6) + $9
[501EEA9D]{vcl120.bpl } Forms.TApplication.ProcessMessage (Line 9666, "Forms.pas" + 30) + $1
[501EEACA]{vcl120.bpl } Forms.TApplication.ProcessMessages (Line 9688, "Forms.pas" + 1) + $4
[00415D7B]{bds.exe } AppMain.TAppBuilder.ApplicationActivated (Line 2065, "ui\AppMain.pas" + 0) + $7
[50222041]{vcl120.bpl } AppEvnts.TCustomApplicationEvents.DoActivate (Line 200, "AppEvnts.pas" + 1) + $C
[5022268D]{vcl120.bpl } AppEvnts.TMultiCaster.DoActivate (Line 421, "AppEvnts.pas" + 5) + $C
[501EDFF7]{vcl120.bpl } Forms.TApplication.WndProc (Line 9274, "Forms.pas" + 115) + $C
[50059174]{rtl120.bpl } Classes.StdWndProc (Line 12703, "Classes.pas" + 8) + $0
[501EEA9D]{vcl120.bpl } Forms.TApplication.ProcessMessage (Line 9666, "Forms.pas" + 30) + $1
[501EEAE2]{vcl120.bpl } Forms.TApplication.HandleMessage (Line 9696, "Forms.pas" + 1) + $4
[501EEE0D]{vcl120.bpl } Forms.TApplication.Run (Line 9833, "Forms.pas" + 26) + $3
[004259D2]{bds.exe } bds.bds (Line 197, "" + 7) + $7 [/more]
Переустановка не помогла. После удаления 2011 все работает как и прежде. Что с этим можно сделать?
Автор: HunterPM
Дата сообщения: 27.05.2011 11:40
Вопрос по Delphi 2010.

Столкнулся с такой проблемой: в Delphi 7 использовал функцию
if FileExists('NNN???.xls') then и т.д. все работало, файл находился, теперь в 2010 проверка на существование файла по маске не работает, подскажите как быть, есть ли альтернатива такой функции.
Автор: spasius
Дата сообщения: 27.05.2011 11:59
HunterPM
можно попробовать FileExists(AnsiString('NNN???.xls'))
Автор: Frodo_Torbins
Дата сообщения: 27.05.2011 12:05
HunterPM
Используйте FindFirst/FindClose напрямую.
Автор: HunterPM
Дата сообщения: 27.05.2011 13:44

Цитата:
HunterPM
Используйте FindFirst/FindClose напрямую.

Огромное спасибо все получилось!
Автор: Maks150988
Дата сообщения: 31.05.2011 16:18
Подскажите что значат теперь типы LPSTR и LPTSTR в новых Delphi. Это ведь осталось как PAnsiChar? Хочется без проблем перенести код на новые версии.
Автор: Eternal_Shield
Дата сообщения: 01.06.2011 13:38
Maks150988
LPSTR = PAnsiChar
LPTSTR = PWideChar

Если работали с WinAPI читая при этом MSDN, то эти смешные названия наверняка встречали в описаниях большинства функций. Их добавили что того, чтобы нубики могли с минимальными усилиями юзать WinAPI, если нужной функции нету в RTL.
Автор: Maks150988
Дата сообщения: 03.06.2011 19:52
Хм, мне казалось, была следующая аналогия:
LPSTR = PChar (как сокращенный вариант или универсальный тип)
LPTSTR = PAnsiChar (и аналог LPWSTR = PWideChar)
Что-то типа такого, так я везде заместо PAnsiChar указывал LPTSTR, обидно что придется переправить на LPSTR.
Автор: Eternal_Shield
Дата сообщения: 04.06.2011 09:55
Maks150988
В сях тип char всегда 1 байт был, т.е. это анси тип, тогда как t_char 2 байта ... отсюда и буква Т во втором названии:
LPSTR = char*
LPTSTR = t_char*
Автор: TechnoDreamer
Дата сообщения: 06.06.2011 01:21
Хочется при показе модального окна затенять главную форму (типа как делает винда с рабочим столом в диалоге выключения компа). Как наиболее оптимально это реализовать?
Пока приходит в голову только делать картинку формы, затенять ее и накрывать ее форму, а при закрытии диалога - убирать. Может есть более простые варианты?
Автор: murkovich
Дата сообщения: 06.06.2011 08:31
TechnoDreamer
На семерке (Аэро) попроще - там можно делать специальное "окно", поместить его между остальными и модальным, и сделать его частично прозрачным.

На ХР другое не приходит в голову, как вариации на упомянутый Тобой вариант.
Автор: JAPWork
Дата сообщения: 06.06.2011 09:13
TechnoDreamer
А я главное окно закрываю сформированным в ран-тайме фреймом размером с главную форму. Он у меня роль модального окна и играет. Плюс - при перетаскивании по экрану из под модального окна главное не лезет.
Автор: regkz
Дата сообщения: 06.06.2011 21:14
TechnoDreamer

Цитата:
Хочется при показе модального окна затенять главную форму (типа как делает винда с рабочим столом в диалоге выключения компа). Как наиболее оптимально это реализовать?

пример здесь, инфа отсюда
Автор: TechnoDreamer
Дата сообщения: 06.06.2011 22:12
regkz, то что нужно!
Автор: Man_Without_Face
Дата сообщения: 07.06.2011 11:44
Delphi 2011, SyBase 8.0. Через технологию DataSnap передаю данные с клиента на сервер. На сервере создается поток. Вычитал что для каждого потока нужно создавать TSession. Можно ли работать с одним TDataBase (находиться на главной форме, конект к базе при создании формы) или же нужно и его создавать в потоке? Да и как правильно TSession создать?
[more]
type
TServerMethods1 = class(TDSServerModule)
private
qGetCard: TQuery;
sGetCard: TSession;
public
function GetCard(CardNumber: Integer): Integer;
end;
----------------------------------------------------------------
function TServerMethods1.GetCard(CardNumber: integer): Integer;
begin
try
WriteLog('Запрос по карте № ' + inttostr(CardNumber));
qGetCard := TQuery.Create(nil);
qGetCard.DatabaseName := frmMain.Database.DatabaseName;
sGetCard.Create(nil); //???
sGetCard.SessionName := inttostr(CardNumber); //???
qGetCard.SessionName := inttostr(CardNumber); //???
qGetCard.Close;
qGetCard.SQL.Text := '';
qGetCard.Open;
if qGetCard.RecordCount > 0 then
begin
result := qGetCard.FieldByName('CardSumma').AsInteger;
WriteLog('Сумма по карте № ' + inttostr(CardNumber) + ' - ' + inttostr(Result));
end
else
result := 0;
qGetCard.Destroy;
sGetCard.Destroy;
except
on e: exception do WriteLog(e.message);
end;
end;
[/more]
Автор: XOBAH
Дата сообщения: 09.06.2011 20:06
Delphi 2010.
Имею два Ини-файла, из этих двух файлов нужно перетащить названия секций в ListBox. Два часа маюсь, а безрезультатно Последняя попытка (код я комментировал уже на форуме):
[more=Процедура]var FileNames: TiniFile;
Str1,Str2:TStrings;
i: integer;
begin
- Создаем объекты класса TStrings
Str2 := TStrings.Create;
Str1 := TStrings.Create;
- Создаем объект TiniFile с первым файлом
FileNames:=TIniFile.Create(Path + '\Data\Articles_configs.dat');
- Пишем секции в Str1
FIleNames.ReadSections(Str1);
- Построчно добавляем в Str2 данные с Str1, и получаем креш. Ранее использовал AddStrings - получал тоже креш
for i := 0 to Str1.Count-1 do
Str2.Add(Str1.Strings[i]);
- Уничтожаем объект с первым файлом, и пересоздаем со 2 файлом
Filenames.Destroy;
FileNames.Create(Path + '\Data\Articles_misc.dat');
- Пишем секции в Str1
FileNames.ReadSections(Str1);
- Вот собственно и AddStrings
Str2.AddStrings(Str1);
- Тут уничтожаем Str1\2, FileNames
Str2.Destroy;
Str1.Free;
FileNames.Free;[/more]
Помогите пожалуйста
Автор: Frodo_Torbins
Дата сообщения: 09.06.2011 20:15
XOBAH
Класс TStrings является абстрактным. Нельзя создавать объекты этого класса, они не будут работать. Ищите подходящего наследника.
Автор: regkz
Дата сообщения: 09.06.2011 20:26
XOBAH
а почему бы не использовать TStringList?
Автор: XOBAH
Дата сообщения: 09.06.2011 20:33
regkz, Frodo_Torbins
Спасибо, только что решил через TStringList
Автор: TeXpert
Дата сообщения: 16.06.2011 10:04
Фирма купила Embarcadero RAD Studio XE Enterprise, прислали мыло с серийником и ссылкой на качальщик (запускаешь, вводишь серийник и качаешь). Вопрос: нельзя качать в виде отдельного файла, без извращений (ведь из того же Microsoft можно качать и так и эдак)?
Автор: regkz
Дата сообщения: 16.06.2011 11:39
TeXpert
глянь здесь, там и образы и обновы
Автор: VitaliM
Дата сообщения: 16.06.2011 21:52
TeXpert
Чтобы зарегистрировать серийник должен быть аккаунт на офсайт, а если есть аккаунт, то входишь под ним на офсайт и качаешь себе все что доступно в соответствии с зарегистрированным серийником (лицензией).
Автор: KrgUser
Дата сообщения: 17.06.2011 11:50
regkz
Цитата:
глянь здесь, там и образы и обновы
Пасиб, но там разбираться и рыться надо долго(

VitaliM
Пасиб, более-менее ясно, однако, некошерно все это как-то. Даже с сайта Microsoft или Oracle дистрибутивы можно скачать без проблем, а тут такие понты(
Автор: Andryshok
Дата сообщения: 23.06.2011 22:29
Братцы, подскажите ответ на ламмерский вопрос, Delphi XE , компиляешь проект, в папку Debug\Win32\ кидаются автоматом все *.dcu компонентов которые использовал...., достало... засоряет только , никто не знает как отключить это дело ?
Автор: volax
Дата сообщения: 23.06.2011 22:45
Andryshok

Цитата:
достало... засоряет только , никто не знает как отключить это дело

Нужно в Library Path указать путь к уже скомпилированным DCU-шкам компонентов, а не PAS-файлам. Компилятор повторно DCU пересобирать не будет.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Установка копоненты ZipTV


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