.RU

re: Как убрать кнопки в правом верхнем углу? - Как узнать из программы откуда она запущена? 8 Мне надо из своей...


^ re: Как убрать кнопки в правом верхнем углу?
В TForm есть свойство BorderIcons. Его раскрываешь в Object Inspector и все кнопки (4 штуки) ставишь false. Должно сработать.
А если хочешь ещё и синюю полосы сверху убрать, то кроме этого поставь еще и BorderStyle=bsNone;
Удачи.

 IgorL:
re: Как убрать кнопки в правом верхнем углу?

В инспекторе свойств для формы свойство BorderIcons, отключаются ненужные кнопки.


========================================================= Незнайка:
^ Small fonts, Large fonts, Custom font
Скажите пожалуйста, что нужно сделать, чтобы правильно оображать формы и их со­держимое при изменении размера шрифтов в системе? (Small fonts, Large fonts, Custom font в настройках экрана)
Твориться неизвестно что. Кнопки не полностью отображают заголовки, компоненты "уезжают за форму". Все это происходит у тех пользователей, которые поставили себе Large fonts и не хотят их менять обратно.
Помогите пожалуйста !

Незнайка:
re: Я уже придумал, но это криво

void __fastcall TForm1::Loaded(void)
{
double percent = Screen->PixelsPerInch / 96.0;
TForm::Loaded();

Height = Height * percent;
Width = Width * percent;
}

Но форма перестает отбражаться по центру экрана, хотя и отображалась.

Wed Feb 23 19:44:43 2000

 Joker:
re: Ну так лучше тяжело....)))

А че с центро.....))))
....А вот так с центром:

Height=(Screen->Height-Height)/2
Width=(Screen->Width-Width)/2

А твой метод крут....))))

 Pasha:
re: Small fonts, Large fonts, Custom font

У формы поставь Scaled = false, и фонты Charset = RUSSIAN_CHARSET , у меня MS Sans Serif, можно поставить ArialCyr, все должно быть нормально, единственное если форма будет залезать за границы экрана будет появлятся полоса прокрутки.
Надеюсь поможет, Павел

 Незнайка:
re: Small fonts, Large fonts, Custom font

Ура ! Спасибо ! Оно рисуется более или менее прилично :) но:
Размеры кнопочек остались те же, и заголовки на некоторых не влезли туда целиком. Форма отображается не по центру экрана опять же :( Я читал в конференции borland-a, что где-то в Builder 3 есть Developer Guide в котором это написано. Никто не может по­делиться этим самым Developer Guide-м, или рассказать, где его искать в Builder-е 4 ?

 Pasha:
re: Small fonts, Large fonts, Custom font

Что значит форма отображается не по центру, у ней есть свойство Position, его ставишь в ScreenCenter и все нормольно отображается.


========================================================= Joker:
^ По окна...)))
Народ а как зделать окно прозрачным...)))
И еще как зделоть окно не видемым для Форточек...
И чтобы C+A+DEl - тоже не показывал..)))

 Дима:
re: По окна...)))

1.Чтоб окна прозрачными делать компонента есть - TGlassy:
http://www.utilmind.com/delphi/glassy.zip

2.Чтоб прога не была видна в Alt+Ctrl+Del прогу нужно оформить как сервис. Он созда­ётся функцией CreateService. Почитай про сервисы в хелпе(Service набери). Я честно говоря ни когда не пробовал. А зачем тебе если не секрет(для чего это может быть нужно что мне в голову приходит так это для написания драйвера и для написания ви­руса:)).


========================================================= Smash:
^ Про HTML в окне
Народ, кто знает как на форме в окне вывести стандартный гипертекст формата HTML. Если можно то подробнее.
Заранее спасибо

 Joker:
re: Да запросто ..))))

Компонент такой есть....)) HTNL
А че подробней...))) По хелпе полазей все есть..))
Открыть.... HTML->RequestDoc(Путь...);
....Ну и все.......

========================================================= Sancho:
^ Подскажите как...
Как пользовать функцию SHFileOperation.
Дело в том, что при попытке копирования/удаления/перемещения/переименования файла выдается виндозная ошибка 1026: "Ошибка файловой системы".
Заранее спасибо.

 IgorL:
re: Подскажите как...

Пример стирания всех файлов с дискеты
SHFILEOPSTRUCT op;
ZeroMemory(&op,sizeof(op));
op.hwnd=Application->Handle;
op.wFunc=FO_DELETE;
op.pFrom="a:\\*.*\0"; // double null terminate
op.fFlags=FOF_ALLOWUNDO;
SHFileOperation(&op);

Список файлов обязательно(!) должен кончаться двумя символами '\0', а имена файлов должны отделяться друг от друга одним '\0'.

=========================================================p@sh@:
^ Кидаю исходник ф-ции (+) |outline"> re: Как запустить программу ? -> Кидаю исходник ф-ции (+)
int RunExe(String FileName,String Params,String StartDir,int CmdShow)
{
int Result = -1;
bool OldEnable = Screen->ActiveForm;

Screen->ActiveForm->Enabled = false;
try{
TShellExecuteInfo Info;
DWORD ExitCode;
memset(&Info,0,sizeof(TShellExecuteInfo));
Info.cbSize = sizeof(TShellExecuteInfo);
Info.fMask = SEE_MASK_NOCLOSEPROCESS;
Info.hwnd = Application->Handle;//Info.Wnd = Application.Handle;
Info.lpFile = FileName.c_str();
Info.lpParameters = Params.c_str();
Info.lpDirectory = StartDir.c_str();
Info.nShow = CmdShow;
if ( ShellExecuteEx(&Info) ){
do{
Application->ProcessMessages();
GetExitCodeProcess(Info.hProcess,&ExitCode);
}while ( !((ExitCode != STILL_ACTIVE) !! (Application->Terminated)) );
Result = ExitCode;
}
}__finally{
Screen->ActiveForm->Enabled = OldEnable;
}
return Result;
}

p@sh@:

=================================================
^ Если кто знает то помогите найти компоненты для CBuilder 4.0
(freeware или взломаные) для работы с базовым движком DBase без BDE Очень надо !

 Eagle:
re: Если кто знает...

Вот :
http://www.akzhan.midi.ru/devcorner/devcorner-delphi-links-rus.html#Delphi Database Access

А ещё на http://torry.magnitka.ru зайди, там много чего есть...

 p@sh@:
re: Если кто знает...

Был... для CB 4.0 нет ни одной компоненты...
Нашел Halcyon6, вроде неплохая весч, но под 4-ой стройкой он валится намертво... :(

Yuriy:
re: Если кто знает...

Если я правильно понял "с базовым движком DBase", то смотри:
Создание "маленького" приложения с базой данных без использования BDE
Нередко разработчики небольших приложений, использующих одну или несколько таб­лиц, испытывают некоторые удобства при их поставке. Эти неудобства связаны с необ­ходимостью установки библиотеки BDE на компьютер пользователя.
В общем случае, если приложение использует базы данных, следует, помимо приложе­ния, установить на компьютер пользователя библиотеку Borland Database Engine. Уста­новка этой библиотеки заключается в копировании файлов этой библиотеки на компью­тер пользователя, внесении сведений о ней в реестр, установке пиктограммы для ути­литы конфигурации BDE, а также настройке псевдонимов и языковых драйверов для данного приложения.

В процессе установки BDE могут возникнуть разнообразные проблемы. Во-первых, у пользователя на компьютере могут быть установлены другие приложения, использую­щие BDE. Если скопировать на такой компьютер файл конфигурации BDE поверх имеющегося, работоспособность этих приложений может быть нарушена из-за того, что исчезнут описания псевдонимов, используемых ими. Возможна также потеря работо­способности уже установленного и используемого приложения (и, как следствие, полу­чение претензий от пользователей), если другой программист установит свой файл конфигурации BDE поверх имеющегося.

Еще одна проблема может быть связана с несовпадением версий BDE. Если с момента выхода используемой версии BDE прошло какое-то время, есть риск заменить старой версией BDE более новую и тем самым нарушить работоспособность использующих ее приложений.
Отметим также, что корректное написание дистрибутива приложения далеко не всегда является гарантией дальнейшей корректной его работы. Например, не все пользова­тели грамотно деинсталлируют приложения.
Часто бывает, что ставший ненужным каталог просто стирается (в том числе и каталог с BDE). При этом скорее всего (исключения бывают очень редко) соответствующая ветвь ...

Yuriy:
re: Если кто знает...

...реестра сохранится, и инсталляционное приложение будет сообщать пользователю, что BDE на данном компьютере уже есть.
Иными словами, установка BDE влечет за собой создание дистрибутива и риск быть вовлеченным в коллизии, связанные с заменой этой библиотеки более старой версией или замены файлов конфигурации BDE. В сложных многопользовательских системах с серверными базами данных и с большим количеством таблиц такой риск может быть сведен к минимуму, так как в силу высокой стоимости таких систем на подобных пред­приятиях обычно устанавливаются жесткие корпоративные правила для пользователей, в том числе запрещающие несанкционированную установку программного обеспечения без ведома системного администратора. Но если приложение невелико и использует одну-две таблицы, оно не должно требовать наличия жестких корпоративных правил его использования. Отметим также, что в этом случае сама библиотека BDE может су­щественно превышать по объему и приложение, и поставляемые с ним данные.
По этим причинам разработчики таких приложений нередко изобретают свои форматы данных, дабы не использовать BDE вообще, а просто считывать файл с диска.
Как ни парадоксально, разработчики, занимающиеся созданием подобных приложений, даже имея клиент-серверные версии Delphi или C++Builder, просто не обращают вни­мания на страницу MIDAS палитры компонентов этих средств разработки, считая, что эти компоненты - не для их задач. А ведь именно там и содержится компонент TClientDataSet, позволяющий создать такой файл и использовать его.
Компонент TCLientDataSet обычно используется в "тонких" клиентах серверов доступа к данным. Подобные приложения широко используют кэширование данных в оператив­ной памяти рабочей станции и нередко учитывают возможность разрыва связи с серве­ром доступа к данным. Соответственно компонент TCLientDataSet позволяет сохранить содержимое своего кэша в файле и загрузить его оттуда. После этого можно просто за­быть о сервере доступа к данным и работать только с этим файлом ...

Yuriy:
re: Если кто знает...

...(его можно даже редактировать).
Библиотека BDE при этом не нужна - "тонкие" клиенты ее не используют (в том числе и отчуждаемые "тонкие" клиенты).
Создадим пример такого "маленького" приложения. Но прежде создадим приложение для переноса данных из таблиц в файл, содержащий кэш компонента TCLientDataSet. Для этого создадим новый проект и поместим на его главную форму три компонента TTable, три компонента TDataSourse и один компонент TClientDataSet, один компонент TDBGrid и один компонент TDBNavigator (последние два компонента нужны только для контроля и просмотра данных и, по существу, совершенно не обязательны). Установим следующие свойства этих компонентов:

Компонент
Свойство
Значение
DBGrid1
DataSource
DataSource3
DBNavigator1
DataSource
DataSource3
Table1
DatabaseName
BCDEMOS (или DBDEMOS)
TableName
customer.db
Active
true
DataSource1
DataSet
Table1
Table2
DatabaseName
BCDEMOS (или DBDEMOS)
TableName
orders.db
IndexFieldNames
CustNo
MasterFields
CustNo
MasterSource
DataSource1
Active
true
DataSource2
DataSet
Table2
Table3
DatabaseName
BCDEMOS (или DBDEMOS)
TableName
items.db
IndexFieldNames
OrderNo
MasterFields
OrderNo
MasterSource
DataSource2
Active
true
ClientDataSet1
ProviderName
Provider1
Active
true
DataSource3
DataSet
ClientDataSet1

Далее выберем из контекстного меню компонента ClientDataSet1 опцию Assign Local Data и в появившемся списке выберем Table1:

Рис. 1 Выбор источника данных для заполнения компонента TClientDataSet.

После этого в кэш компонента TCLientDataSet будут загружены данные:

Рис. 2 Главная форма приложения после выбора источника данных для TCLientDataSet .

Теперь из контекстного меню этого же компонента выберем опцию Save To File и в поя­вившейся диалоговой панели открытия файла введем имя файла, в котором будут хра­ниться данные из кэша. Итак, файл с данными готов.

Теперь можно создать

Yuriy:
re: Если кто знает...

...наше "маленькое" приложение. Для этого достаточно просто удалить с формы компо­ненты Table1, Table2, Table3, DataSource1, DataSource2 - они больше не нужны.

Есть две возможности создания таких "маленьких" приложений. Самый простой из них - хранить данные непосредственно в исполняемом файле приложения (если их объем невелик). Для этой цели следует из контекстного меню компонента TClientDataSet вы­брать опцию Load From File и выбрать имя файла, сохраненного прежде. Теперь дан­ные из этого файла содержатся в ресурсах формы, в чем можно убедиться, открыв форму в текстовом представлении. Если скомпилировать такое приложение, его можно передать
пользователю. Единственное, что требуется добавить в комплект поставки - файл dbclient.dll из каталога Winnt\System32 (или Windows\System).
Еще один вариант - выполнить метод LoadFromFile компонента TClientDataSet в обра­ботчике события OnCreate формы. В этом случае файл с кэшированными данными следует также включить в комплект поставки приложения, и объем его может быть дос­таточно велик (насколько именно - зависит от ресурсов рабочей станции, на которой используется такое приложение).

Отметим, что Delphi 4 и C++Builder 4 позволяют хранить в таком файле данные из не­скольких связанных таблиц (именно это и было нами сделано). Поэтому в полученном наборе данных имеется поле типа TDataSetField, предоставляющее доступ к detail-за­писям (в нашем случае к записям таблиц orders.db и items.db).

Рис. 3 Приложение, использующее локальную копию данных, на этапе выполнения.

Пользователи Delphi 3 и C++Builder 3 могут создавать несколько компонентов TCLientDataSet и организовывать связь между ними в приложении так же, как и в слу­чае обычных таблиц, используя свойства MasterField и MasterSource.

Отметим, что, помимо настольных приложений, сохраненные в файле кэшированные данные могут быть использованы при создании демо-версий и прототипов клиент-сер­верных приложений, где затруднена или исключена в силу лицензионных ограничений ...

Yuriy:
re: Если кто знает...

...поставка полноценной версии СУБД.

Совет 9. Как сэкономить место на форме при отображении связанных таблиц

В приложениях с базами данных, использующих несколько связанных таблиц, места на форме для их отображения, как правило, не хватает - это общая проблема проектиро­вания интерфейсов подобных приложений. Компонент TCLientDataSet может помочь и в этом случае.

Возьмем наше самое первое приложение, содержащее три компонента TTable и компо­нент TClientDataSet, и добавим в него компонент TDataSetProvider. Установим значение его свойства DataSet равным Table1. Затем свойство ProviderName компонента ClientDataSet1 установим равным DataSetProvider1.

Теперь наше приложение позволяет редактировать данные из всех трех таблиц, при этом интерфейс приложения окажется примерно тем же, что и на предыдущем рисунке. Единственное, о чем дополнительно следует позаботиться, это о пересылке отредакти­рованных данных обратно в исходные таблицы с помощью метода ApplyUpdates компо­нента TClientDataSet. Обычно для этой цели к форме добавляют какой-либо интер­фейсный элемент, инициирующий выполнение этого метода. Иногда этот метод добав­ляют к обработчику события AfterPost компонента TClientDataSet. В случае C++Builder этот код имеет вид:

void __fastcall TForm1::ClientDataSet1AfterPost(TDataSet *DataSet)
{
ClientDataSet1->ApplyUpdates(-1);
}
Соответствующий код для Delphi имеет вид:
procedure TForm1.ClientDataSet1AfterPost(DataSet: TDataSet);
begin
ClientDataSet1.ApplyUpdates(-1);
end;

Отметим, однако, что это не самый эффективный способ сохранения отредактирован­ных записей, так как метод Post в данном случае выполняется локально, а метод ApplyUpdates требует обращения к базе данных, и при использовании сетевой СУБД лучше выполнять его не так часто, кaк метод Post.
...

 p@sh@:
re: Если кто знает...

Спасибо за совет. Метод хорош, но только в том случае если работаешь с одним и тем же набором данных (причем небольшим). Но все равно следует это запомнить, может пригодится когда... :)


========================================================= Dmitry:

statya-39-poryadok-organizacii-provedeniya-aukciona-na-pravo-zaklyuchit-dogovor-o-razvitii-zastroennoj-territorii-majminskogo-municipalnogo-obrazovaniya.html
statya-47-arhitekturno-stroitelnoe-proektirovanie-statya-osnovopolagayushie-trebovaniya-k-osushestvleniyu-gradostroitelnoj.html
statya-6-doklad-predstavlyaetsya-komitetu-po-pravam-cheloveka-kpch-oon-v-svyazi-s-rassmotreniem-komitetom-pyatogo.html
statya-8-doklad-predstavlyaetsya-komitetu-po-pravam-cheloveka-kpch-oon-v-svyazi-s-rassmotreniem-komitetom-pyatogo.html
statya-90-platelshiki-naloga-na-dobavlennuyu-stoimost-stranica-2.html
statya-opublikovana-v-zhurnale-stranica-3.html
  • teacher.bystrickaya.ru/gnosticheskij-etos-i-nravstvennaya-metafizika-l-p-karsavina.html
  • klass.bystrickaya.ru/account-larval-quality-trained-when-shaping-a-a-pimerzin-zamestiteli-glavnogo-redaktora.html
  • essay.bystrickaya.ru/domashnee-zadanie-minimalnij-uroven.html
  • paragraph.bystrickaya.ru/konkurs-predstavlyayutsya-sleduyushie-dokumenti.html
  • uchenik.bystrickaya.ru/chast-vtoraya-iskusstvo-snovideniya-kniga-dar-orla.html
  • studies.bystrickaya.ru/biografiya-fnicshe-i-ego-vklad-v-etiku.html
  • notebook.bystrickaya.ru/istoriya-kemerovskogo-oblastnogo-kraevedcheskogo-muzeya.html
  • studies.bystrickaya.ru/l-v-shaposhnikovoj-vtoroe-izdanie-ispravlennoe-dopolnennoe-stranica-7.html
  • uchit.bystrickaya.ru/tema-vliyanie-faktorov-vneshnej-sredi-na-realizaciyu-genotipa-praktikum-l-i-gubareva-o-m-mizireva-t-m-churilova.html
  • school.bystrickaya.ru/bill-diksi-din-kniga-budet-interesna-dlya-kazhdogo-kto-uvlechen-futbolom-i-istoriej-sporta-v-celom.html
  • portfolio.bystrickaya.ru/organizaciya-perevozok-i-upravlenie-na-transporte-chast-11.html
  • exchangerate.bystrickaya.ru/hram-dzhokhang-aleksandr-tibetskij-gambit-bitva-za-shestuyu-rasu-aleksandr-redko-professionalnij-puteshestvennik.html
  • tasks.bystrickaya.ru/31-obshie-svedeniya-o-tkanyah-i-voloknistih-materialah-uchebno-tematicheskij-plan-k-programme-hudozhestvennaya-obrabotka.html
  • prepodavatel.bystrickaya.ru/tema-2-teoreticheskie-voprosi-professionalnoj-deformacii-uchebnoe-posobie-tomsk-2009-bbk-88-37.html
  • lesson.bystrickaya.ru/otchet-ob-ocenke-01-0811-stranica-13.html
  • nauka.bystrickaya.ru/vmoem-kratkom-predislovii-ya-tolko-hochu-rasskazat-chitatelyu-ob-istorii-etoj-knigi-izlagayushej-esteticheskuyu-filosofiyu-kandinskogo-o-duhovnom-v-iskusstve.html
  • uchebnik.bystrickaya.ru/v-sfere-ekonomiki.html
  • ucheba.bystrickaya.ru/poznaniya-sofiya.html
  • credit.bystrickaya.ru/plan-meropriyatij-11-20-maya-2012-goda-dekada-dopolnitelnogo-obrazovaniya-v-udod-szouo-gbou-centr-detskogo-tvorchestva-detskij-muzikalnij-teatr-domisolka.html
  • composition.bystrickaya.ru/p-l-a-nraboti-mou-oosh-21-s-09-04-po-16-04-2012-g.html
  • otsenki.bystrickaya.ru/sadovskij-inzhener-cerkovnik-botkin-dvoe-nezametnih.html
  • ucheba.bystrickaya.ru/programma-kursa-novaya-istoriya-stran-evropi-i-ameriki-chast-2-razrabotchik-programmi-visokova-v-v-k-i-n-docent.html
  • ekzamen.bystrickaya.ru/soft-programmnij-myagkij-acronym-finder-poiskovik-abbreviatur.html
  • learn.bystrickaya.ru/glava-3-ot-proroka-v-pustine-do-emmanuelya-artur-ford-zhizn-posle-smerti-kak-ob-etom-rasskazano-dzheromu-ellisonu-blagodarnosti.html
  • crib.bystrickaya.ru/istoricheskoto-vreme-uvodni-belezhki.html
  • crib.bystrickaya.ru/i-audita-v-sovremennih-usloviyah-federalnaya-celevaya-programma-integraciya-institut-ekonomiki-uralskogo-otdeleniya.html
  • kolledzh.bystrickaya.ru/anders-celsij-kak-nablyudaya-za-planetami-i-severnim-siyaniem-pridumat-svoyu-shkalu.html
  • predmet.bystrickaya.ru/spasti-cheloveka-nagrada-za-muzhestvo-i-chelovechnost.html
  • pisat.bystrickaya.ru/tema-drevnie-napevi-eposa-2-raza-v-nedelyu.html
  • spur.bystrickaya.ru/koncepciya-imeet-ryad-prilozhenij-nalogovaya-nagruzka-po-vidam-ekonomicheskoj-deyatelnosti-v-procentah.html
  • thesis.bystrickaya.ru/postanovka-voprosa-o-granicah-dushevnogo-zdorovya-stranica-9.html
  • teacher.bystrickaya.ru/g-m-strelkovskij-teoriya-i-praktika-voennogo-perevoda.html
  • literatura.bystrickaya.ru/socialnie-i-pravovie-problemi-stanovleniya-razvitiya-i-funkcionirovaniya-sistemi-voennih-sudov-rossii-stranica-18.html
  • learn.bystrickaya.ru/glava-svyatoj-apostol-iakov-napechatano-po-mansurov-s-svyash-ocherki-po-istorii-cerkvi-m-1994-g.html
  • ucheba.bystrickaya.ru/pozhar-unichtozhil-krupnij-sklad-v-magadane-mchs-informacionnoe-agentstvo-ria-novosti-07022011.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.