Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Компонент Delphi MonthCalendar






Размещено 21 Март 2012

Компонент Delphi MonthCalendar (Календарь) находиться на странице Win32 Палитры компонентов. С его помощью легко и быстро можно можно выбрать нужную дату используя. мышь.

Поместив компонент на форму, он сразу же будет готов к работе.

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

Свойство Date содержит значение даты и используется пользователем в приложении. Если мы хотим видеть номера недели для этого свойству WeekNumbers присвоить значение TRUE. Неделя может начинаться с другого дня, например с воскресенья. За это отвечает свойство FirstDayOfWeek, для воскресенья это - dowSunday, по умолчанию берутся системные настройки. За вывод нижней строки с сегодняшним днем отвечает свойство ShowToday.

Итог: мы разобрали компонент MonthCalendar и его возможности.

 

 

Вначале карьеры писал на Delphi, и это было прекрасно (для того времени)! Потом писал на схожей по функциональности платформе Oracle Forms, для околобанковского сектора и не только. Могу с уверенностью сказать — для создания бизнес приложений Oracle Forms лучше Delphi, благодаря прозрачной работе с БД

****

var
S, S2: String;
P1: Integer;
begin
//Строка.
S: = Edit1.Text;
//Искомая подстрока.
S2: = Edit2.Text;
//Удаление всех вхождений заданной подстроки с учётом регистра букв.
S: = StringReplace(S, S2, '', [rfReplaceAll]);
//Или:
//Удаление всех вхождений заданной подстроки без учёта регистра букв.
S: = StringReplace(S, S2, '', [rfReplaceAll, rfIgnoreCase]);
//Или:
//Удаление только первого воходения подстроки без учёта регистра букв.
S: = StringReplace(S, S2, '', [rfIgnoreCase]);

 

****

 

procedure TForm1.Button2Click(Sender: TObject);
varDoc: IHTMLDocument2; S: string;
beginWebBrowser1.Navigate('URL');
while
WebBrowser1.ReadyState< READYSTATE_COMPLETE do begin
Application.ProcessMessages;
end; Doc: = WebBrowser1.Document as IHTMLDocument2;
s: =doc.body.innerHTML;
Memo1.Text: =s;
end;

*****

 

procedure Ping(IP: String; OutMemo: TMemo);
const BUFSIZE = 2000;
var SecAttr: TSecurityAttributes;
hReadPipe,
hWritePipe: THandle;
StartupInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
Buffer: Pchar;
WaitReason,
BytesRead: DWord;
begin
with SecAttr do
begin
nlength: = SizeOf(TSecurityAttributes);
binherithandle: = true;
lpsecuritydescriptor: = nil;
end;
if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then
begin
Buffer: = AllocMem(BUFSIZE + 1);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb: = SizeOf(StartupInfo);
StartupInfo.hStdOutput: = hWritePipe;
StartupInfo.hStdInput: = hReadPipe;
StartupInfo.dwFlags: = STARTF_USESTDHANDLES +
STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow: = SW_HIDE;
if CreateProcess(nil,
PChar('ping.exe '+IP),
@SecAttr,
@SecAttr,
true,
NORMAL_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
ProcessInfo) then
begin
repeat
WaitReason: = WaitForSingleObject(ProcessInfo.hProcess, 100);
Application.ProcessMessages;
until (WaitReason < > WAIT_TIMEOUT);
Repeat
BytesRead: = 0;
ReadFile(hReadPipe, Buffer[0], BUFSIZE, BytesRead, nil);
Buffer[BytesRead]: = #0;
OemToAnsi(Buffer, Buffer);
OutMemo.Text: = OutMemo.text + String(Buffer);
until (BytesRead < BUFSIZE);
end;
FreeMem(Buffer);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
end;
end;
Процедура отправляет IP адрес и возвращает в TMemo результат работы.
Вот пример использования:
Ping('127.0.0.1', Memo1);

****

Вот таким образом можно осуществить быстрый поиск в ListBox
Код Delphi
123 ListBox1.Perform(LB_SELECTSTRING, -1, longint(Pchar(Edit1.text)));

****

ListBox1.Items.LoadFromFile(‘название Файла’); загрузка из файла;
ListBox1.Items.SaveToFile(‘название Файла’); сохранение в файл;
Для добавления строки в конец списка можно использовать команду
ListBox1.Items.Add(‘Новая Строка’);
Для добавления строки перед строкой n используется команда
ListBox1.Items.Insert(n, ‘Новая_Строка’); новая строка получает номер n.
Для получения выделенной строки используется команда
Vst: =ListBox1.Items[ListBox1.ItemIndex]; где Vst — текст выделенной строки
Для удаления строки используется команда
ListBox1.Items.Delete(i); где i — номер строки

Сегодня картинок тоже будет не мало. В продолжение темы «Windows 7 x64, IIS, ISAPI и DataSnap XE2 в картинках» решил я поработать с базой данных. Получать от сервера ReverseString, конечно, весело («Оно работает!», «Уау!» и всё такое прочее), но на деле врядли кому-то такой сервер пригодиться. Поэтому решил расширить свой кругозор и доработать уже имеющийся ISAPI-модуль и клиента, чтобы они смогли обмениваться данными — сервер будет читать данные из базы данных и отправлять их клиенту. Клиент, в свою очередь, будет получать данные с сервера, работать с ними и отправлять изменения на сервер.

 

Вообще, т.к. наш ISAPI-модуль предназначен для IIS, то, наверное, логичнее было бы рассказать про работу c MSSQL, а не с MySQL. Но, признаюсь, попытка установки MSSQL Server на мой компьютер была неудачной по причине того, что меня просто откровенно задолбало выкачивать с сайта Microsoft тучу каких-то сервис-паков к дистрибутиву, которые в итоге просили ещё не меньшую кучу обновлений. В общем плюнул я на это дело и решил установить MySQL — всё-таки это очень популярная СУБД, да и провайдеры, предоставляющие Win-хостинг обычно дают доступ и к MSSQL и к MySQL (например, МастерХост). Да и, в принципе, какая нам сегодня разница, что за СУБД будет использоваться MSSQL, MySQL или вообще FireBird? Основная задаче сегодня — «научить» сервер и клиент работать с данными из базы, а её (БД) тип — дело второе.

Содержание

  1. Установка и настройка необходимого ПО
  2. Настраиваем сервер на работу с MySQL
    1. «DBX Error: Driver could not be properly initialized…» Как победить?
    2. Создаем соединение с БД, читаем данные и отправляем их клиенту
  3. Разработка клиента
    1. Создаем клиент для чтения данных
    2. Создаем клиент для чтения и редактирования данных
  4. Отладка ISAPI-модулей в Delphi





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.