Виртуальная библиотека Delphi - [15]
> dmPelsHeight:=480;
> dmFields:=DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;
> result:=False;
> if ChangeDisplaySettings(DeviceMode,CDS_TEST or CDS_FULLSCREEN) <> DISP_CHANGE_SUCCESSFUL
> then Exit;
> Result:=ChangeDisplaySettings(DeviceMode,CDS_FULLSCREEN) = DISP_CHANGE_SUCCESSFUL;
> end;
>end;
>procedure RestoreDefaultMode;
>var T : TDevMode absolute 0;
>begin
> ChangeDisplaySettings(T,CDS_FULLSCREEN);
>end;
>procedure TForm1.Button1Click(Sender: TObject);
>begin
> if setFullScreenMode then begin
> sleep(7000);
> RestoreDefaultMode;
> end;
>end;
1) Предполагается, что поле BLOB (например, Pict)
2) в запросе Query.SQL пишется что-то вроде
>'select Pict from sometable where somefield=somevalue'
3) запрос открывается
4) делается "присваивание":
>Image1.Picture.Assing(TBlobField(Query.FieldByName('Pict'))
или, если известно, что эта картинка — Bitmap, то можно
>Image1.Picture.Bitmap.Assing(TBlobField(Query.FieldByName('Pict'))
А можно воспользоваться компонентом TDBImage.
Каким образом извлечь иконку из EXE- и DLL-файлов (ExtractAssociatedIcon) и отобразить ее на компоненте Timage или небольшой области на форме?
--------------------------------------------------------------------------------
>uses ShellApi;
>procedure TForm1.Button1Click(Sender: TObject);
>var
> IconIndex : word;
> h : hIcon;
>begin
> IconIndex := 0;
> h := ExtractAssociatedIcon(hInstance, 'C:\WINDOWS\NOTEPAD.EXE', IconINdex);
> DrawIcon(Form1.Canvas.Handle, 10, 10, h);
>end;
Разное
Так же как в случае с TMemo, здесь можно использовать сообщения. Например, сообщение может быть отослано в момент создания формы:
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> ListBox1.Perform(LB_SETHORIZONTALEXTENT, 1000, Longint(0));
>end;
Второй параметр в вызове — ширина прокрутки в точках.
Есть функция API Windows, что заставляет искать строку в ListBox с указанной позиции.
Например, поиск строки, что начинается на '1.' От текущей позиции курсора в ListBox. Т.о., нажимая на кнопку Button1, будут перебраны все строки начинающиеся на '1.'
>procedure TForm1.Button1Click(Sender: TObject);
>var S : string;
>begin
> S:='1.';
> with ListBox1 do ItemIndex := Perform(LB_SELECTSTRING, ItemIndex, LongInt(S));
>end;
Более подробную информацию о работе команды LB_SELECTSTRING можно узнать из Help-а Win32.
>procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
>begin
>Memo1Click(Self);
>end;
>procedure TForm1.Memo1Click(Sender: TObject);
>VAR
> LineNum : LongInt;
> CharNum : LongInt;
>begin
> LineNum := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
> CharNum := Memo1.Perform(EM_LINEINDEX, LineNum, 0);
> Label1.Caption := IntToStr(LineNum+1)+' : '+IntToStr((Memo1.SelStart-CharNum)+1);
>end;
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> Memo1Click(Self);
>end;
В компоненте TMemo предусмотрена функция отмены последней правки (Undo). Ее можно вызвать следующим образом:
>Memo1.Perform(EM_UNDO,0,0);
Узнать о том, возможна ли отмена (т.е. есть ли что отменять) можно следующим образом:
>UndoEnabled:=(Memo1.Perform(EM_CAUNDO,0,0)<>0);
Я добавляю програмно несколько строк в конец поля Memo, а их не видно. Как прокрутить Memo, чтобы было видно последние строки ?
Примерно так:
>SendMessage(Memo1.Handle, EM_LINESCROLL, 0, Memo1.Lines.Count-1);
Для Delphi 1. Каждый экземпляр программы имеет ссылку на свою предыдущую копию — hPrevInst: hWnd. Ее можно проверить перед созданием приложения и при необходимости отреагировать соответствующим образом. Если запущена только одна копия, то эта ссылка равна нулю.
Пример:
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> {Проверяем есть ли указатель на предыдущую копию приложения}
> IF hPrevInst <> 0 THEN BEGIN
> {Если есть, то выдаем сообщение и выходим}
> MessageDlg('Программа уже запущена!', mtError, [mbOk], 0);
> Halt;
> END;
> {Иначе - ничего не делаем (не мешаем созданию формы)}
>end;
P.S. Для выхода необходимо использовать Halt, а не Close, как хотелось бы, так как форма еще не создана и закрывать нечего.
Есть и другой способ — по списку загруженных приложений
>procedure TForm1.FormCreate(Sender: TObject);
>VAR
>Wnd : hWnd;
>buff : ARRAY[0.. 127] OF Char;
>Begin
>Wnd := GetWindow(Handle, gw_HWndFirst);
>WHILE Wnd <> 0 DO BEGIN
> IF (Wnd <> Application.Handle) AND (GetWindow(Wnd, gw_Owner) = 0)
> THEN BEGIN
> GetWindowText (Wnd, buff, sizeof (buff ));
> IF StrPas (buff) = Application.Title THEN
> BEGIN
> MessageDlg('Приложение уже загружено', mtWarning, [mbOk], 0);
> Halt;
> END;
> END;
> Wnd := GetWindow (Wnd, gw_hWndNext);
> END;
>End;
Еще один интересный способ для Win32. Дело в том, что можно в памяти создавать временные файлы. При перезагрузке они теряются, а так существуют. Кстати, этот метод можно использовать и для обмена информацией между вашими приложениями.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.