moonrise

Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору уфффф... прочитал все 47 страниц странно, что никто еще не просил, но все-таки (и не надо говорить, что проще руками. знаю)... нужна компанента для отображения логотипа перед загрузкой основной формы (при запуске программы стало быть)... с ходу нашел StartMark Цитата: Только разместите этот компонент на вашем проекте и перед запуском программы StartMark покажет вашу торговую марку или картинку как в Delphi, с заданной задержкой времени. В архиве есть Demo.exe URL: _http://www.grundic.narod.ru/file/components/startmark.zip | вспомнил, что юзал эту компаненту раньше... скачал новую версию (1.2), поставил.. все компилится и ставиться. Но... делаю пустой проект, кидаю туда эту форму, указываю путь к картинки.. ставлю Enable в свойства компанента и при компиляции вылетаю с ошибкой доступа к памяти... ставлю старую версию - все работает (но в старой нету поддержки прозрачности.. т.е. неквадратных лого).. благо сырцы есть - лезу разбираться.. нашел, что вылетает при обращении к Код: procedure Delay(d: word); assembler; label m1; begin Application.ProcessMessages; asm mov dx,d mov ax,47 mul dx mov cl,8 shr ax,cl shl dx,cl add ax,dx push ax mov ah,0 int 1ah pop ax add dx,ax mov bx,dx m1: int 1ah cmp dx,bx jne m1 end; end; | в исходниках написано, что под 5-ми делфями все оработало.. у меня 7-е.. может кто скажет в чем грабли или посоветует что-либо на подобии... без наворотов.. самое простенькое все что надо: выбор картинки активно/неактивно пауза прозрачность полный код старой версии (только StartMark.pas): Код: (* ----StartMark v1.0---- ГрюндикСтудия представляет: Компонент StartMark v1.0 Статус: Freeware; Написан на Delphi 5. Тестировался только на 5 делфи Для работы необходимы стандартные компоненты Компонент сделан на базе стандартного компонента Image. Перед запуском программы StartMark покажет вашу торговую марку или картинку как Delphi. Свойства: Active: Boolean; - Если true то Picture будет показана Picture: TPicture; - Сама картинка ShowTime: longint; - Время продолжительности показа 26.10.01 г. По всем вопросам обращаться на tarasui@aport.ru (Чёрный Тарас ака Грюндик); *) unit StartMark; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, MarkForm; //Марка type TStartMark = class(TComponent) private { Private declarations } FShowTime: longint; FPicture: TPicture; FActive: Boolean; procedure SetShowTime(Val: longint); procedure Delay(ms : longint); procedure SetPicture(Val : TPicture); function GetPicture: TPicture; procedure SetActive(Val: Boolean); protected { Protected declarations } public { Public declarations } CONSTRUCTOR Create(AOwner : TComponent); override; destructor Destroy; override; published { Published declarations } property ShowTime: longint read FShowTime write SetShowTime; property Picture: TPicture read GetPicture write SetPicture; property Active: Boolean read FActive write SetActive default False; end; procedure Register; implementation CONSTRUCTOR TStartMark.Create(AOwner : TComponent); begin FShowTime:=2; FPicture:=TPicture.Create; INHERITED Create(AOwner); end; procedure Register; begin RegisterComponents('Grundic', [TStartMark]); end; procedure TStartMark.SetPicture(Val : TPicture); begin if Val <> nil then FPicture.Assign(Val); end; function TStartMark.GetPicture: TPicture; begin Result := fPicture; end; procedure TStartMark.SetShowTime(Val: longint); begin if Val <> ShowTime then FShowTime:=Val; end; procedure TStartMark.SetActive(Val: Boolean); var M: TMark; begin if not (csDesigning in componentstate) then begin if val = True then begin m:=TMark.Create(self); m.Logo.Picture.Assign(Picture); m.Height:=m.Logo.Height; m.Width:=m.Logo.Width; m.Top:=(Screen.Height-m.Logo.Height) div 2; m.Left:=(Screen.Width-m.Logo.Width) div 2; m.Visible := true; //+ Pause Delay(ShowTime*600); m.Free; end; end; FActive := Val; end; procedure TStartMark.Delay(ms : longint); var TheTime : LongInt; begin TheTime := GetTickCount + ms; while GetTickCount < TheTime do Application.ProcessMessages; end; destructor TStartMark.Destroy; begin inherited Destroy; end; end. | Да... автор говорит, что у него нет Д7 и проверить он не может 
---------- Истина внимательно выслушивает спорящих... вздыхает и уходит. |
| Всего записей: 1987 | Зарегистр. 19-09-2001 | Отправлено: 17:50 24-11-2004 | Исправлено: moonrise, 17:53 24-11-2004 |
|