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

» Вопросы по Delphi

Автор: FAngel
Дата сообщения: 05.04.2005 06:31
YFred
Тебе нужно что нибудь типа Borland StarTeam
Автор: Shadi
Дата сообщения: 06.04.2005 12:49
Вопрос! Как сделать, чтобы заставка грузилась как PL/SQL Developer? Т.е. заставка исчезает только после того, как загрузится главная форма. Буду очень признателен за кусочек рабочего кода!
Автор: OdesitVadim
Дата сообщения: 06.04.2005 13:03
Создаеш форму для заставки. FormStyle:=bsNone (тоесть чтобы заголовка не было). На неё бросаеш картинку и прочю красоту. Лезишь Project.dpr (Project -> View Source).
Ищещ там строку создания своей формы и сносиш. а дальше переписываеш следующим образом.

Код:
Application.Initialize;
Screen.Cursor:=crHourGlass;
FormSplash:=TFormSplash.Create(Application);//это наша заставка
FormSplash.FormStyle:=fsStayOnTop;
FormSplash.Show;
FormSplash.Update;
//Здесь создание остальных форм - начало
Application.CreateForm(TForm, Form);
//Здесь создание остальных форм - конец
FormSplash.Free; //Убираем форму за собой
screen.Cursor:=crDefault;
Application.Run;//Запускаем приложения.
Автор: Shadi
Дата сообщения: 06.04.2005 13:22
OdesitVadim

Конечно спасибо за быстрый ответ, но это не то! Суть в том, что окно заставки исчезает и только потом открывается главная форма.
А надо, чтобы заставка "висела" а за ней открывалась бы главная форма и только потом заставка должна исчезнуть!
Автор: OdesitVadim
Дата сообщения: 06.04.2005 13:33
Shadi
тогда сделаем так. Метод немного извращённый, но он того стоит.
строку FormSplash.Free; нужно перенести в главную форму следующим образом. Поставим на форму таймер и в него впишем

Код:
Timer1.enabled:=false;
FormSplash.Free;
Автор: Shadi
Дата сообщения: 06.04.2005 13:39
OdesitVadim

И так не прет! На OnCreate он не отражает главную форму вообще...
Автор: OdesitVadim
Дата сообщения: 06.04.2005 14:02
ТОгда только через потоки. Мутненько будет.
Попробуй после
Цитата:
FormSplash.Free;

вставить Form1.show (свою главную форму)
Автор: Shadi
Дата сообщения: 06.04.2005 14:29
OdesitVadim


Цитата:
ТОгда только через потоки

Да это будет действительно мутненько!

Я пробовал на событие оnShow вешать FormSplash.Free; Но нет прорисовки формы, хотя что-то пытается..
Может есть какой способ попроще, чем в потоках?

Автор: VitaliM
Дата сообщения: 06.04.2005 15:15
Shadi
Я тут маленький примерчик сделал, попробуй
http://rapidshare.de/files/1153548/demo.rar.html

после того как скачаешь, удали, что бы не засорять ресурс
http://rapidshare.de/files/1153548/demo.rar?killcode=382641025
Автор: Shadi
Дата сообщения: 07.04.2005 06:44
VitaliM

Кинь плиз еще разок, а то кто-то их уже удалил!


Цитата:
http://rapidshare.de/files/1153548/demo.rar.html

File /files/1153548/demo.rar.html has been deleted.



Добавлено:
Сорри, наверное это я впопыхах и удалил
Плиз еще раз выложи или в профильное мыло
Автор: VitaliM
Дата сообщения: 07.04.2005 14:56
Shadi
http://rapidshare.de/files/1166753/demo.rar.html
ссылку на удаление не кладу, как скачаешь сообщи, я сам удалю.
Автор: Shadi
Дата сообщения: 08.04.2005 06:20
VitaliM

Грацио сеньоре!!!
Все гениальное просто!!!
Можно удалять!
Автор: VitaliM
Дата сообщения: 08.04.2005 06:25
Shadi
Я рад, что тебе понравилось. Удачи.

Добавлено:
Посмотри по ссылке, может тебе пригодится...
http://forum.ru-board.com/topic.cgi?forum=35&topic=24919&start=340#19
Автор: Shadi
Дата сообщения: 08.04.2005 08:12
VitaliM

Классная вещь! Еще раз вери сенкс!
Есть еще один вопросик над которым бьюсь и пока нет результата.

Суть в том, что когда делаю заставку в цикле, то прогрессбар сильно дергается
Вот фрагмент кода
FrmSplash := TFrmSplash.Create(self);
FrmSplash.MaxMt:= Dmod.QryTmp.RecordCount;
FrmSplash.Show;
...
while not Dmod.QryTmp.Eof do
begin
FrmSplash.Update;
FrmSplash.TekMt :=j;
inc(j);
...
end;

Может кто сталкивался, подскажите...
Автор: OdesitVadim
Дата сообщения: 08.04.2005 09:23
Application.ProcessMessage - заставит "ощущать" мишь и клавиатуру. Он в подобных цыклах нужен. прогрессбар дёргается по той причине что при каждом обновлении он пересоздаётся. Выходов два: либо пропускать часть обновлений (типа если j mod 5=0 then begin FrmSplash.TekMt :=j;FrmSplash.Update;end; - я переставил их) или использовать компонент TGauge.
Автор: Shadi
Дата сообщения: 08.04.2005 09:25
OdesitVadim

Спасибо, буду пробовать
О результатах скажу позже...


Добавлено:

Цитата:
использовать компонент TGauge.


Поменял и все пошло! Вот что значит - МАСТЕР!
Автор: HelL_Doctor
Дата сообщения: 08.04.2005 17:57
Подскажите пожалуйста учебник (желательно список функций)+(не help) по Delphi.
Автор: YurikGL
Дата сообщения: 08.04.2005 22:52
Вот здесь есть книжки
http://podgoretsky.com/ddp.html
Автор: V2ad
Дата сообщения: 08.04.2005 23:44
HelL_Doctor Но ты все же постарайся приобрести бумажную книгу по Delphi. Принцип выбора прост - больше страниц, меньше картинок меньше шрифт, я таким образом прикупил в свое время Ч.Калверта по Delphi2, до сих пор пользуюсь, хоть и на семерку перелез
Автор: Larry Laffer
Дата сообщения: 09.04.2005 13:11
Подскажите, как можно навсегда убрать каретку из компоненты TEdit? Я использовал HideCaret(Edit1.Handle);, но она не всегда выручает. :\
Автор: gar
Дата сообщения: 12.04.2005 14:48
Larry Laffer
Навсегда - если перепишешь TEdit, а так можно в Aplication.OnIdl HideCaret вызывать.
Автор: MrZeRo
Дата сообщения: 12.04.2005 15:45
Larry Laffer
Может, через SetWindowLong поменять атрибуты окна? (имеется в виду Edit.Handle)
С параметром GWL_WNDPROC можно подставить свою оконную процедуру, а в ней в обработчике события WM_SETFOCUS написать HideCaret, чтобы при получении фокуса прятать каретку.
Автор: Larry Laffer
Дата сообщения: 12.04.2005 19:09
MrZeRo, спасибо, буду пробовать.

З.Ы.: А может компонента такая есть, чтобы можно было автоматом прятать каретку?
Автор: MrZeRo
Дата сообщения: 13.04.2005 08:32
Larry Laffer
Не видел таких.
Автор: Pentium133
Дата сообщения: 13.04.2005 10:10
Larry Laffer
Да, конешно есть: TAdvancedCaretHider
)))
Автор: HelL_Doctor
Дата сообщения: 13.04.2005 19:05
Можно ли на делфи сделать загрузочную дискету (полностью с форматированием под загрузчик).
P.S. Нужно именно из делфи. Очень нужно помогите пожалуйста.
Автор: VitaliM
Дата сообщения: 13.04.2005 19:21
Pentium133

Цитата:
Да, конешно есть: TAdvancedCaretHider

И где оно лежит
Автор: OdesitVadim
Дата сообщения: 13.04.2005 19:22
Для начала сделай образ какой - нибудь загрузочной дискетки. Вручную (тоесть программно) делать - немеряный геморой. Даже майкрософт так делает. Потом поппробуй открыть дисковод как файл и писать туда. тоесть что-то в виде CreateFile('\\.\A\'......)
Автор: HelL_Doctor
Дата сообщения: 13.04.2005 19:26
Ну а все таки есть же такие программы которые автоматически создают дискету (они же на чем то писались).
Автор: ShIvADeSt
Дата сообщения: 14.04.2005 01:26

Цитата:
Ну а все таки есть же такие программы которые автоматически создают дискету (они же на чем то писались).

Ну они не создают дискету, а воссоздают файловую структуру . А работают они примерно сл образом, по секторное считывание данных с дискеты (или еще более мелкие единицы для считывания) запись этих данных в собственную структуру файла, который хранит этот образ. А процесс записи наоборот, считывают данные из файла а пишут на дискету.

Цитата:
Потом поппробуй открыть дисковод как файл и писать туда. тоесть что-то в виде CreateFile('\\.\A\'......)

OdesitVadim правильно тебе написал. Хотя можно работать и через DeviceIOControl. (вроде так называется, видел сорцы программы которая позволяла побайтно править данные на винте в любой области раздела в 9х)

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

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


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