LongMonthNames — Переменная Delphi

Функции и процедуры Delphi. Справочник.

Функция FormatDateTime(
const Format: string;
DateTime: TDateTime ): string;

Описание
Функция преобразовывает значение даты и времени типа TDateTime в строку заданного формата. Исходное значение передается в параметре DateTime. Формат результирующей строки определяется параметром Format, который использует следующие элементы форматирования:

Элемент Описание
c Дата и время. Для значения даты используется формат определенный глобальной переменной ShortDateFormat, а для значения времени, формат определенный глобальной переменной LongTimeFormat. Если значение DateTime не содержит дробной части, то время не отображается
d День без нуля впереди (1-31).
dd День с нулем впереди (01-31).
ddd Сокращенное название дня недели (‘вс’, . ‘сб’). Строковые значения определяются глобальной переменной ShortDayNames.
dddd Полное название дня недели (‘Воскресенье’, . ‘Суббота’). Строковые значения определяются глобальной переменной LongDayNames.
ddddd Дата. Формат определяется глобальной переменной ShortDateFormat.
dddddd Дата. Формат определяется глобальной переменной LongDateFormat.
m Месяц без нуля впереди (1-12).
Если данный символ следует за h или hh, то отображается не месяц, а минуты.
mm Месяц с нулем впереди (01-12).
Если данный символ следует за h или hh, то отображается не месяц, а минуты.
mmm Сокращенное название месяца (янв, . дек). Строковые значения определяются глобальной переменной ShortMonthNames.
mmmm Полное название месяца (‘Январь’ — ‘Декабрь’). Строковые значения определяются глобальной переменной LongMonthNames.
yy Год двумя цифрами (00-99).
yyyy Год четырьмя цифрами (0000-9999).
h Час без нуля впереди (0-23).
hh Час с нулем впереди (00-23).
n Минуты без нуля впереди (0-59).
nn Минуты с нулем впереди (00-59).
s Секунды без нуля впереди (0-59).
ss Секунды с нулем впереди (00-59).
t Время. Формат определяется глобальной переменной ShortTimeFormat.
tt Время. Формат определяется глобальной переменной LongTimeFormat.
am/pm Выводит ‘am’ для любого часа до полудня, и ‘pm’ для любого часа после полудня. Обозначения ‘am/pm’ могут быть указаны в верхнем, нижнем и в смешанном регистре. Регистр символов результирующей строки будет соответствовать регистру символов строки формата.
a/p Выводит ‘a’ для любого часа до полудня, и ‘p’ для любого часа после полудня. Символы ‘a/p’ могут быть указаны в верхнем, нижнем и в смешанном регистре. Регистр символов результирующей строки будет соответствовать регистру символов строки формата.
ampm Выводит значение глобальной переменной TimeAMString для любого часа до полудня, и значение глобальной переменной TimePMString для любого часа после полудня.
/ Разделитель полей даты. Результирующий символ разделителя определяется глобальной переменной DateSeparator.
: Разделитель полей времени. Символ разделителя определяется глобальной переменной TimeSeparator.
‘xx’ «xx» Символы, заключенные в двойные или одиночные кавычки, не форматируются и выводятся один к одному, как есть.

Символы форматирования могут быть указаны как в верхнем, так и в нижнем регистре. Если в параметре Format определена пустая строка, то выполняется форматирование, аналогичное формату при использовании значения строки форматирования ‘с’.

Пример
var
S: string;
begin
S:= FormatDateTime( ‘Сегодня dddd dd mmm yyyy г.’, Date);
MessageDlg( S, mtInformation, [mbOk], 0);
end;

LongMonthNames — Переменная Delphi

Данные в компьютере можно рассматривать как ячейки памяти, имеющие свои имена (идентификаторы). Все данные в программе на языке Delphi должны быть описаны до их первого использования. И компилятор следит, чтобы в программе они использовались в соответствии с этим описанием, что позволяет избежать ошибок.

Любая величина в Delphi может быть постоянной или переменной. Её имя (идентификатор) может состоять из комбинации латинских букв, цифр и знака подчёркивания, и начинаться не с цифры. При этом регистр символов значения не имеет.

Место описания данных в программе — вне логических блоков begin / end. В модуле перед ключевым словом implementation есть блок описания:

Именно здесь, начиная со следующей строки, удобно объявлять глобальные переменные и константы. Как видим, одна (Form1) уже есть!

Команда объявления переменных в языке Delphi:

var имя_переменной : тип_переменной ;

Слово var — ключевое. Именем может быть любой идентификатор, если он не был описан ранее и не является одним из ключевых или зарезервированных слов языка Delphi. Если нужно описать несколько переменных одного типа, то их перечисляют, отделяя запятой:

Если несколько описаний следуют друг за другом, то ключевое слово var повторно можно не указывать:

Постоянную величину иначе называют константой. Конечно, в программе можно использовать числа и строки непосредственно: 3.1415 или ‘Это значение числа пи’ , но иногда удобнее присвоить их идентификатору. Описание констант аналогично описанию переменных, но используется ключевое слово const, за именем идентификатора следует тип, затем знак равенства и его значение. Причём тип константы допускается не указывать:

const pi= 3.1415 ;
ZnakPi : String = ‘Это значение числа пи’ ;

К слову, константа Pi встроенная в Delphi, то есть для того чтобы использовать в Delphi число 3,1415. в расчётах, нужно просто присвоить встроенную константу Pi переменной типа Real или просто использовать непосредственно в выражениях.

Теперь пришло время узнать о типах данных, используемых в Delphi. Прежде всего это строки и числа.

Строкой называется последовательность символов, заключённая в одиночные кавычки:
‘это текстовая строка’ Если текст должен содержать сам символ кавычки, то его надо повторить дважды:
‘это » — символ одиночной кавычки’ Строка может быть и пустой, не содержащей символов. Тогда она состоит из двух идущих друг за другом без пробела кавычек. Естественно, строка может состоять и только из одних пробелов.
Самый популярный строковый тип — String. Строка типа String может содержать переменное количество символов объёмом до 2 Гбайт. Если нужно ограничить размер строки фиксированным значением, то после ключевого слова String в квадратных скобках указывается число, определяющее количество символов в строке: String[50]. Более полно работа со строками Delphi описывается далее.
Одиночный символ имеет тип Char и записывается в виде знака в одиночных кавычках: ‘a’. Есть символы, которые на экране отобразить невозможно, например, символ конца строки (равен #13), символ переноса строки (равен #10). Такие символы записываются в виде их числового кода (в кодировке ANSI), перед которым стоит знак #. Например, #0.
Наконец, существуют так называемые нуль-терминированные строки. Отсчёт символов в таких строках начинается с нуля, а заканчивается символом с кодом (#0). Такие строки имеют тип PChar.

Числа бывают целые и дробные.
В следующей таблице перечислены стандартные типы целых чисел и соответствующие им дипазоны допустимых значений.

Integer -2147483648 .. +2147483647
Cardinal 0 .. 4294967295
Shortint -128 .. +127
Smallint -32768 .. +32767
Int64 -2 63 .. +2 63 -1
Byte 0 .. +255
Word 0 .. +65535
Наиболее удобным для использования в программах является тип Delphi Integer. Другие целые типы используются для уменьшения места, занимаемого данными в памяти компьютера.

Дробные числа имеют дробную часть, отделяемую десятичной точкой. Допускается использование символа e (или E), за которым следует число, указывающее, что левую часть нужно умножить на 10 в соответствующей степени: 5e25 — пять умножить на десять в двадцать пятой степени.
Ниже приведены стандартные типы дробных чисел и соответствующие им диапазоны допустимых значений. Для большинства типов указан диапазон положительных значений, однако допустимым является аналогичный диапазон отрицательных значений, а также число .

Real 5*10 -324 .. 1.7*10 308
Real48 2.9*10 -39 .. 1.7*10 38
Singl 1.5*10 -45 .. 3.4*10 38
Double 5*10 -324 .. 1.7*10 308
Extended 3.6*10 -4951 .. 1.1*10 4932 -1
Comp -2 63 .. +2 63 -1
Currency 922337203685477.5807
Наиболее удобным для использования в программах является тип Delphi Real. Ему эквивилентен тип Double, но в будущем это может быть изменено. Вычисления с дробными числами выполняются приближённо, за исключением типа Currency (финансовый), который предназначен для минимизации ошибок округления в бухгалтерских расчётах.

Следующим типом данных является логический Boolean, состоящий всего из двух значений: True (Истина) и False (Ложь). При этом True > False.

Теперь, используя компоненты, их свойства и события, вводя собственные переменные, можно конструировать программы, содержащие вычисления. Осталось узнать, как вычисленное значение вывести на экран.
Про консольные программы я здесь не говорю! А в нормальных оконных Windows-приложениях это значение нужно поместить в какой-нибудь компонент, имеющий свойства Text или Caption. Это, например, такие компоненты как Label и Edit, да и сама Форма имеет свойство Caption, куда тоже можно выводить информацию. Однако, в Delphi информацию перед выводом, как правило, необходимо преобразовывать. Так как присвоение возможно только между переменными одного типа, то такая программа (не пытайтесь её исполнять):

var A, B, C: Integer ;
begin
A := 5 ;
B := 10 ;
C := A+B ;
Label1.Caption := C ;
end ;

вызовет ошибку, так как свойство Caption имеет текстовый тип String, а использованные переменные — цифровой тип Integer. Значит, нужно преобразовать значение переменной C в текстовый тип. Для этого есть встроенная функция IntToStr. Строка в нашей «программе», вызывавшая ошибку, должна выглядеть так:

Такая программа, кроме показа числа 15, ни на что не способна. Мы должны научиться вводить в программу другие числа. Используем компоненты Edit. Введённые числа будут содержаться в свойстве Text этих компонентов. Расположим на форме два компонента Edit, один компонент Label и кнопку Button, по нажатию на которую и будем проводить вычисления. В компоненты Edit1 и Edit2 будем вводить числа для суммирования. Чтобы переместиться в редактор кода, щёлкнем дважды по нашей кнопке Button1. Мы попадём прямо в сформированную для нас средой Delphi заготовку обработчика нажатия на кнопку, непосредственно между операторами begin и end. Напишем такой простой код:

Илон Маск рекомендует:  Что такое код asp stop

procedure TForm1.Button1Click(Sender: TObject);
var A, B, C: Integer; //Не забудьте описание переменных
begin
//Начало кода:
A := Edit1.Text;
B := Edit2.Text;
C := A+B;
Label1.Caption := IntToStr(C);
//Конец кода
end ;

При попытке исполнить этот код Delphi покажет ошибки по аналогичной причине — переменные A и B имеют цифровой тип Integer, а свойство Text — текстовый тип String. Исправить ошибки поможет встроенная функция StrToInt, выполняющая обратное преобразование — текст в целое число. Операторы присвоения переменным A и B должны выглядеть так:

A := StrToInt(Edit1.Text);
B := StrToInt(Edit2.Text);

В данном случае переменные A, B, C использовались для наглядности. Можно обойтись одной строчкой:

Аналогично, имеются функции и для преобразования в строку и обратно действительных чисел c плавающей (Floating англ.) запятой, имеющих тип Real. Для преобразования в строку — FloatToStr, обратно — StrToFloat.
Часто результаты вычислений, имеющие тип Delphi Real, имеют после запятой длинный «хвост» цифр. При выводе такой переменной в текстовом виде необходимо ограничить количество цифр после запятой. Как это можно сделать, описывается также в Уроке Delphi Работа со строками Delphi.

LongMonthNames — Переменная Delphi

Продолжаем наше обучение! В Delphi очень важную роль играют переменные. В процессе работы программы в переменных можно как хранить так и извлекать информацию. Переменные могут иметь разный тип. Например для того, чтобы в переменную записать какой-нибудь текст используется тип String. Для того, что бы записать в переменную число используют тип Integer.

Вот список основных типов переменных в Delphi:

  • Integer — целые числа из диапазона: -2147483648..+2147483647
  • Shortin — целые числа из диапазона: -128..+127
  • Byte — целые числа из диапазона: 0..+255
  • Real — как целые так и дробные числа из диапазона: 5e-324..1.7e+308
  • Double — схож с типом Real
  • String — строковый тип данных
  • Char — символьный тип данных
  • Bollean — логический тип данных. Может принимать значение True — истина или False — ложь

С теорией мы закончили, теперь давайте откроем Delphi 7 и создадим новый проект. После этого кидаем на форму знакомый нам компонент Button и еще не знакомый Label. Компонент Label эта такая полезная вещь, в которую можно записать какую-нибудь подпись. Например подпись для другого компонента или просто записать в него автора программы. Попробуйте отыскать компонент Label сами, наводя на все компоненты в вкладке Standard и читая всплывающую подсказку. Кому сложно найти, то это четвертый компонент слева, не считая значка курсора.

Я всё сделал и у меня получилось вот так:

Сейчас нам нужно создать событие OnClick на кнопке, я надеюсь, что вы помните, как это делать.
Переменные объявляются между ключевыми словами procedure и begin. Объявление начинается с ключевого слова var, потом пишется имя переменной и через двоеточие её тип. Заканчивается все как всегда точкой с запятой.

Создадим переменную S типа String в процедуре OnClick: После этого между ключевыми словами begin end присвоим переменной значение равное ‘Моя первая переменная’. Присвоение пишется следующим образом. Пишем имя переменной, оператор присвоения := и значение. Если мы записываем информацию типа String, то информация заключается в одинарные кавычки.

Общий вид: Теперь если скомпилировать программу и нажать на кнопку ничего существенного не произойдет, просто в переменную запишется значение и всё. Попробуем вывести значение из переменной. Делается это также просто как и записывается. Выводить значение мы будем в наш Label.

Синтаксис такой: Разберем этот код подробно. Сначала мы написали Label1, потом пишем точку и в Delphi появляется огромный список со свойствами данного компонента. Можно конечно порыться и отыскать там Caption, но мы будем умнее! Мы, после того как поставили точку, напишем еще букву C и Delphi как бы отсортирует все свойства и найдет все, которые начинаются с буквы C. Первым в списке как раз будет свойство Caption.

Выбираем его из списка и нажимаем на Enter. Заметьте, что мы писали Label1.C, но после того, как нажали Enter, Delphi сам дописал название свойства. Далее опять же идет оператор присвоения и наша переменная.

Вы наверняка спросите: «Зачем же переменная, если можно было написать Label1.Caption:=’Моя первая переменная’;?». Ответ простой. Это нужно затем, что мы изучаем переменные :).
Нет, на самом деле так присваивать тоже можно, но представьте такую ситуацию, что вы написали очень большую, популярную программу и у вас, там в программе, пятидесяти компонентам присваивается одно и тоже значение и вот перед вами встала задача: «Поменять это значение на более универсальное и понятное для пользователя».

Что вы будете делать?

  • В первом случае у вас всем этим компонентам присваивается одна и та же переменная и чтобы изменить всем этим пятидесяти компонентам значение вам просто нужно поменять значение в переменной.
  • Во втором случае вы сидите 20 минут и всё копируете и копируете значение всем пятидесяти компонентам.

Вывод делайте сами.

И так, продолжаем! В общем виде должно быть так: Компилируем нашу программу и нажимаем на Button (батон/кнопку). Сразу же компонент Label вместо Label1 будет показывать Моя первая переменная.

На этом хотелось бы закончить, так как я уже устал писать урок :), но я еще не познакомил вас с типом Integer и как присваивать переменную с таким типом. Вы думаете, что присваивать ее нужно точно так же как и переменную типа String, но вы ошибаетесь.
Дело в том, что свойству Caption вообще у всех компонентов можно присвоить только текстовые значения. Как мы будем присваивать числовой тип если можно только текстовой? Всё проще некуда. Между типами переменных можно как бы переключаться, то есть можно из числового типа сделать текстовой и присвоить его компоненту Label. Этим мы сейчас и займемся.

Для начала нужно начать сначала :). Объявим переменную с именем I и типом Integer, дописав ее к переменной S. Код: Далее присвоим переменной I значение 21. Заметьте, что числовое значение записывается без одинарных кавычек! Теперь присвоим свойству Caption значение переменной I, для этого нужно воспользоваться оператором IntToStr(). Он как бы конвертирует числовой тип в текстовой. В скобках указывается переменная, которую нужно конвертировать.

Общий вид кода: Скомпилируйте программу и вы увидите, что Label будет отображать значение переменной I, то есть 21.

Ну вот и всё! Удачи!
Встретимся в следующем уроке!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 22 Апреля 2012
Просмотров:

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.

Переменные Delphi

Прежде чем изучать переменные Delphi, сначала введем понятие самой переменной. Итак, переменная означает область памяти, содержащей некоторые данные, которые впоследствии могут быть использованы программой.

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

Имя переменной задается произвольным образом программистом. Именем переменной может выступать любая последовательность, включающая буквы латинского алфавита, цифры и некие специальные символы. Имя переменной должно начинаться только с буквы. Нельзя допускать использование пробела в имени переменной.

Заметка. Компилятор языка Delphi, как и компилятор языка Pascal, не различает использование прописных и строчных букв в идентификаторах переменных, то есть используя имена PROGRAM, Program, program, можно ввести обозначение одной и той же переменной. Обычно программисты обозначают переменные Delphi таким образом, чтоб ее имя было более-менее логически связано с ее непосредственным назначением.

Примеры переменных Delphi

Пример 1. Переменным, которым назначено хранение корней и свободных коэффициентов произвольного квадратного уравнения, традиционно представляющегося в общем виде

логично присвоение следующих имен: корням квадратного уравнения — x1 и х2, а свободным коэффициентам — соответственно a, b и c.

Пример 2. Если программа содержит переменные, которым назначено хранение числовых данных о сумме покупки и величине скидки, то эти переменные можно обозначить идентификаторами (именами) соответственно totalsum и skidka. Чтобы использовать переменные в программе, написанной на любых языках программирования, в том числе и Delphi, ее необходимо объявить в разделе переменных var.

Объявление переменных Delphi

При объявлении переменной, программист устанавливает не только факт ее существования, но и задает ее тип, указывая тем сам диапазон возможных ее значений. Обычно переменную объявляют следующим образом:

откуда: Имя является именем назначаемой переменной; Тип подразумевает тип данных; для их хранения как раз и используется переменная.

Пример 3:

Здесь двум переменным m и n присвоен тип real, а переменной k тип integer. В тексте исходной программы программист, как правило, объявляет каждую переменную, помещая ее в отдельной строке. Если в коде исходной программы присутствуют несколько переменных, которым присвоен один и тот же тип, то их имена перечисляют в одной строке, разделяя запятыми, и лишь после последней переменной, используя символ «:», указывают тип переменных:

LongMonthNames — Переменная Delphi

При закрытии подписчики были переданы в рассылку «Delphi — проблемы и решения» на которую и рекомендуем вам подписаться.

Вы можете найти рассылки сходной тематики в Каталоге рассылок.

Статистика

Советы по Delphi Calendar

Всвязи с наступающим Новым годом я решил посвятить выпуск календарю. Ниже приведенная программа рисует на форме календарь на 2002 год. Для каждого месяца сначала выводится его название (используется глобальная переменная LongMonthNames модуля SysUtils), далее выводятся сокращенные названия дней недели (глобальная переменная ShortDayNames модуля SysUtils) и, наконец, выводятся сами числа. Количество дней в месяце записано в массиве months. Чтобы определить, високосный это год или нет, используется функция IsLeapYear. Скачать необходимые для компиляции файлы проекта можно на program.dax.ru.

Полезные мелочи
Чтобы определить, лежит ли точка внутри или снаружи прямоугольника, удобно использовать функцию PtInRect. Если точка внутри прямоугольника, PtInRect возвращает true, иначе false. Пример:

LongMonthNames — Переменная Delphi

Вручную
Алгоритм я бы взял следуюший:

Илон Маск рекомендует:  strong в HTML

1) Удалить всё что до запятой
2) Из полученной строки взять то что до точки — это будет дата, и удалить её из исходной строки
3) Взять то что до пробела и сравнить с названиями 12 месяцев
4) Взять то что после пробела — это будет год

Согласен, что вручную совсем легко сделать. Но, может есть готовые функции, которыми просто надо воспользоваться.

Song, так тоже можно, но этот способ годится на 1 раз, для конкретного случая.

Написать то я и сам могу, только я ищу готовые способы. Не хочу терять время на такую фигню.

Добавлено 14.01.05, 12:01

Romtek, можно написать свою ф-цию, обратную FormatDateTime. Немного гиморно будет, но вполне реально.

Добавлено 14.01.05, 12:09
Romtek, а готовой ф-ции вроде нету

Вот наваял функцию. Распознаёт почти любые форматы, можно загадать например такое:

10jan2000
2july, 1999
DeCamber, 2 2003
2003-aug-2
2003 любой мусор Feb. №№№№ 20

Из ограничений — год должен быть четырёхзначный (двухзначный невозможно отличить от дня), для русского языка прийдётся подрехтовать. Естественно если есть неоднозначные комбинации то могут быть ошибки, типа «2 20 jan 2000 1999»

Наверное можно в FAQ помещать

Подрехтовал код, теперь распознаёт и русский и английский языки. Кстати вполне корректно обрабатывает и падежи типа:

2 мая 2002
май месяц 1999 года, 3е число
3е мая 1999 года
Солнечный апрельский день в 1998м году, 20е число

Добавил коррекцию двузначных лет, корректно распознаёт что-нибудь типа

но естественно не способен распознать

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

Вопрос по Delphi

Hamster

Well-Known Member

Ответ: Помощь по Delphi

Kuron

New Member

Ответ: Помощь по Delphi

for i:=0 to (memo1.lines.count-1) do
memo2.Lines:=(floattostr(strtoint (memo1.Lines)/max));

ето часть небольшой программки. Нужно просто заполнить строки компонента мемо2 строками мемо1, поделиными на число МАХ. ВСЕ!

Дело в том, что заполняются только 2 первых строчки компонента мемо2.
Остальные почемуто не хотят. Как с етим боротся?

зы при использывании команды memo2.lines.add(. ) все работает, но такой вариант мне не катит.

Hamster

Well-Known Member

Ответ: Помощь по Delphi

Короче, я так понял, нужно прописовать memo2.lines.Add , сколько мне неужно раз.
Но ето мне помогло:
memo2.Clear;

Piton

Вызываю привыкание.

Ответ: Помощь по Delphi

SoLar

Забанен

Ответ: Помощь по Delphi

сворачивания програмы в сис трэй Ключевая фраза.
Это ведь Delphi, компонентов для этого море.

BrUTal

Старий фірман

Ответ: Помощь по Delphi

Hamster

Well-Known Member

Ответ: Помощь по Delphi

Ето выставляеться в свойствах формы.
Точно где — не помню=(

Merlіn

dead wizard

Ответ: Помощь по Delphi

Описание:
procedure SetWindowPos(Wnd, WndInsertAfter: HWnd; X, Y, cx, cy: Integer; Flags: Word);

Изменяет pазмеp, положение и поpядок окна.

Паpаметpы:
Wnd: Идентификатоp окна.
WndInsertAfter: Пpедыдущее окно в списке администpатоpа окон.
X, Y: Веpхний левый угол.
cx: Новая шиpина окна.
cy: Новая высота окна.
Flags: Флаги установки положения окна.

HWND_BOTTOM Начало Z-последовательности
HWND_NOTOPMOST Первое окно которое располагается не «поверх все окон»
HWND_TOP Вершина Z-последовательности
HWND_TOPMOST Первое окно которое располагается «поверх все окон»

Флаги установки положения окна.

SWP_HIDEWINDOW — после проделаных действий над окном ( перемещением и изменением размера ) окно прячется
SWP_NOSIZE — если указан этот параметр, то 5й и 6й параметры учитываться не будут, т.е. окно менять размер не будет (этот параметр указан в нашем примере )
SWP_NOMOVE — если указан этот параметр, то 3й и 4й параметры учитываться не будут, т.е. окно не будет перемещаться.

SWP_SHOWWINDOW — после проделаных действий над окном ( перемещением и изменением размера ) окно будет показано ( работает только если окно было спрятано).
SWP_NOACTIVATE — после проделаных действий над окном ( перемещением и изменением размера ) окно не активируется.
Также доступны флаги: swp_DrawFrame, swp_NoRemove ,
swp_NoSize, swp_NoRedraw, swp_NoZOrder

feministka

Забанен

Ответ: Помощь по Delphi

Говорю сразу я в делфи чуть больше чем ноль. Поэтому прозьба не издеватся, если я прогнала по полной программе.
Так вот.
У меня возникла такая проблемма: создала с помощю MainMenu меню(файл, справка ), все заполнила, как положено (тоесть, как в методичке за 1 курс, который я прохалявила. ), все вроди как положено, но облом в том, что после компиляции то меню не видно. в чем может быть проблемма?
Скрины прилагаются.

Merlіn

dead wizard

Ответ: Помощь по Delphi

MainMenu свойство AutoMerge в False(Delphi 6)

feministka

Забанен

Ответ: Помощь по Delphi

Ответ: Помощь по Delphi

вопрос 1
как сделать чтоб при нажитии кнопки вызывалась менюшка типа как в эксплорере чтоб можна было выбрать файл какой мне нужно , т е какая функция за это отвечает
2 вопрос как вызывать помощь по процедурам в коде програмы

WalkMan

«Непоседы»

Ответ: Помощь по Delphi

Happy Live :)

Ответ: Помощь по Delphi

Happy Live :)

Ответ: Помощь по Delphi

Merlіn

dead wizard

Ответ: Помощь по Delphi

nilayn
Свойство FormStyle у главной формы TPagesDlg поставь fsMDIForm
PS Файл->Выход Application.Terminate

sniper

New Member

Ответ: Помощь по Delphi

Hamster

Well-Known Member

Ответ: Помощь по Delphi

ОНО?
var h,m,s,t:string;
begin
t:=timetostr(time);

результат на скрине.

Вложения

Merlіn

dead wizard

Ответ: Помощь по Delphi

t переводиш в TDataTime , потом DecodeTime, но это както кривовато, проше как в примере к описания последней функции.

Функция StrToTime ( const S: string ): TDateTime;

Описание
Функция преобразовывает строковое представление значения времени в значение типа TDateTime. Строка должна состоять из двух (часы:минуты) или трех (часы:минуты:секунды) чисел, отделенных друг от друга символом-разделителем. Символ, используемый в качестве разделителя, определяется значением глобальной переменной TimeSeparator. Для использования 12-ти часового формата времени исходная строка должна заканчиваться значением ‘AM’ или ‘PM’. Если указанные значения отсутствуют, то будет применен 24-х часовой формат.
Если строка содержит недопустимое значение времени, то возникает исключение EConvertError.

Процедура DecodeTime( T: TDateTime; var Hour, Min, Sec, MSec: Word );

Описание
Процедура возвращает значение часов (Hour), минут (Min), секунд (Sec) и миллисекунд (MSec) для значения времени указанного в формате TDateTime. Исходное значение передается в параметре T. Если значение T

Merlіn

dead wizard

Ответ: Помощь по Delphi

Формат может быть разный.

Функция FormatDateTime( const Format: string; DateTime: TDateTime ): string;

Описание
Функция преобразовывает значение даты и времени типа TDateTime в строку заданного формата. Исходное значение передается в параметре DateTime. Формат результирующей строки определяется параметром Format, который использует следующие элементы форматирования:
Элемент Описание
c Дата и время. Для значения даты используется формат определенный глобальной переменной ShortDateFormat, а для значения времени, формат определенный глобальной переменной LongTimeFormat. Если значение DateTime не содержит дробной части, то время не отображается
d День без нуля впереди (1-31).
dd День с нулем впереди (01-31).
ddd Сокращенное название дня недели (‘вс’, . ‘сб’). Строковые значения определяются глобальной переменной ShortDayNames.
dddd Полное название дня недели (‘Воскресенье’, . ‘Суббота’). Строковые значения определяются глобальной переменной LongDayNames.
ddddd Дата. Формат определяется глобальной переменной ShortDateFormat.
dddddd Дата. Формат определяется глобальной переменной LongDateFormat.
m Месяц без нуля впереди (1-12).
Если данный символ следует за h или hh, то отображается не месяц, а минуты.
mm Месяц с нулем впереди (01-12).
Если данный символ следует за h или hh, то отображается не месяц, а минуты.
mmm Сокращенное название месяца (янв, . дек). Строковые значения определяются глобальной переменной ShortMonthNames.
mmmm Полное название месяца (‘Январь’ — ‘Декабрь’). Строковые значения определяются глобальной переменной LongMonthNames.
yy Год двумя цифрами (00-99).
yyyy Год четырьмя цифрами (0000-9999).
h Час без нуля впереди (0-23).
hh Час с нулем впереди (00-23).
n Минуты без нуля впереди (0-59).
nn Минуты с нулем впереди (00-59).
s Секунды без нуля впереди (0-59).
ss Секунды с нулем впереди (00-59).
t Время. Формат определяется глобальной переменной ShortTimeFormat.
tt Время. Формат определяется глобальной переменной LongTimeFormat.
am/pm Выводит ‘am’ для любого часа до полудня, и ‘pm’ для любого часа после полудня. Обозначения ‘am/pm’ могут быть указаны в верхнем, нижнем и в смешанном регистре. Регистр символов результирующей строки будет соответствовать регистру символов строки формата.
a/p Выводит ‘a’ для любого часа до полудня, и ‘p’ для любого часа после полудня. Символы ‘a/p’ могут быть указаны в верхнем, нижнем и в смешанном регистре. Регистр символов результирующей строки будет соответствовать регистру символов строки формата.
ampm Выводит значение глобальной переменной TimeAMString для любого часа до полудня, и значение глобальной переменной TimePMString для любого часа после полудня.
/ Разделитель полей даты. Результирующий символ разделителя определяется глобальной переменной DateSeparator.
: Разделитель полей времени. Символ разделителя определяется глобальной переменной TimeSeparator.
‘xx’ «xx» Символы, заключенные в двойные или одиночные кавычки, не форматируются и выводятся один к одному, как есть.

Символы форматирования могут быть указаны как в верхнем, так и в нижнем регистре. Если в параметре Format определена пустая строка, то выполняется форматирование, аналогичное формату при использовании значения строки форматирования ‘с’.

Пример
var
S: string;
begin
S:= FormatDateTime( ‘Сегодня dddd dd mmm yyyy г.’, Date);
MessageDlg( S, mtInformation, [mbOk], 0);
end;

sniper

New Member

Ответ: Помощь по Delphi

Ёмаё! Так тут делфийкие монстры обитают!
Вопрос такой: Клиет-серверная структура на базе TIdTCPClient и TIdTCServer, клиент посылает серверу строку, сервер возвращает строку в ответ, но в некоторых случаях сервер, перед тем как вернуть клиенту ответ должен выполнить определённые операции, которые занимают много времени. Как клиенту правильно разорвать соединение, не дождавшись окончания операций на сервере. И что в этом случае будет с потоком на сервере? Удастся ли правильно отработать поток до конца?

Merlіn

dead wizard

Ответ: Помощь по Delphi

Лучше было б если поподробней что за программа (зачем запускать действие в потоке?).
Посмотри вложения может это решение(исходники Delphi 6).
Возможно это поможет (Delphi Help)
property TerminateWaitTime: Integer;
Description
TerminateWaitTime is an Integer property that identifies the total number of milliseconds that the server should wait, in TerminateAllThreads, for all threads to complete termination. TerminateWaitTime is an aggregate delay time, and allows TerminateAllThreads to monitor the Threads list every 250ms until TerminateWaitTime has elapsed.
The default value for TerminateWaitTime is 5000 (5 seconds). Use a larger value for TerminateWaitTime when the server handles a large number of peer connection threads, or when OnDisconnected event handling for the peer connection involves time intensive operations.
PS с Indy работать не приходилось.

Илон Маск рекомендует:  Псевдокласс focus-within в CSS

LongMonthNames usage in Delphi XE2 and Delphi XE7

Why does LongMonthNames[X] alone (without name-space prefixing) not work in Delphi XE7, while it DOES work in Delphi XE2?

1 answer

  • answered 2014-12-08 13:07 Her Majesty Queen of ARC

In XE2, LongMonthNames was still its own global variable (which was deprecated in XE) in the SysUtils unit. In XE3, that variable was removed. You have to use the LongMonthNames member of TFormatSettings , which has a global variable in the SysUtils unit:

You don’t have to write fully qualified path, just FormatSettings.LongMonthNames[x] will do:

If you create your own instance of TFormattSettings , it is safe to use in threads (as long as you obey usual thread safety rules):

See also questions close to this topic

I need to assign value to linear, but then when I check it the result is wrong. The expression 1/exp( 2.30258509299 * (abs(dB)/20) ) result is 0,063095734448 (which is correct value) but the linear is -3,6854775808e+4863 and n is 1,805186914e-307 .

What am I doing wrong and how to get the correct value?

Notice: For evaluation of the expression I used debuger «Evaluate/Modify» command.

I dropped a TMemo and a regular TStyleBook on a Form. I edited the custom style for the TMemo by adding a TRectangle to background so TMemo now has a different background color, and changed the TMemo.StyleLookup property to the actual StyleName , but at runtime the TMemo can not get focus.

What I am missing?

I am trying to create a COM object in Delphi and use it in a C# WPF project.

I have created a new DLL project in Delphi 10.3, using File -> New -> Other, then Delphi -> Windows -> ActiveX Library. I have created the following IDL in the GUI editor for my *.ridl file:

In Design view, I hit Refresh Implementation, Register Type Library, and Save As Type Library File. It says registration of the ActiveX Server was successful. I hit Build on my project. No errors or issues.

I added the following unit to implement the interface:

I rebuilt my project, no errors so far. I went and hit Run -> ActiveX Server -> Register. It was successful.

I would expect it to have a registered the COM object on my system now, or am I wrong? In my WPF C# project, when I try to Add Reference. , it does not show up under COM -> Type Libraries. Am I missing something?

How get header text from TListView onItemClick (TListView is populated over Bind visually).

Item text get eg. AItem.Data[‘itemName’].ToString;

I have been coding in Delphi since day one. Although I mostly use C# these days, I still have to maintain and refactor old Delphi code. In the early days, I almost never used interfaces, and when I did, I found it annoying that they implicitly introduce reference counting. I primarily use interfaces to reduce unit dependencies, but objects were still assigned to class vars, and this mixed landscape is far from ideal. Often instead of inheriting from TInterfacedObject, I implemented my own QueryInterface, _Addref and _Release just to have interfaces without refcount.

In the later years refactorings, I have used interfaces as they were intended, namely to only use interface vars as instance, and taking full advantage of not having to free objects myself.

I was very surprised to find that they don’t work as I expected.

If I do not explicitly set the interface var to nil, I have memory leaks in every iteration (but the first). I thought that assigning a reference to an interface, that was already pointing to an instance, would implicitly dereference that previous instance, but apparently it doesn’t.

Is that just another difference between reference counting and garbage collection, or is it a ‘feature’ of Delphi XE2, that has been resolved in later versions?

So I am customizing my Samsung boot animation and I have to change the ratio of the images. I would like to do so without cropping the image. To do that I have a 1080×2340 black background and I just have to add the images to the middle of the background. I have to do that with 300 images and also don’t know how I should do all of that batch. The names of the files also has to be in an ascending order.

I Have a program that have several forms, i want to send data at form 2 to one of the edit box that exist in main form, in form 2 uses main form unit but I don’t have access to none of components in main form! in other form of my program i don’t have this problem! please help me.

I feel like this should be simple and that I’m missing a trick but I can’t quite seem to find what I need. I have two graphics32 TImage32 components, imSelect and imHighlight.

imSelect has this image in it:

imHighlight has this image in it:

I’m trying to get a result that looks like this, with imHighlight drawn over the top at 50% opacity:

But all I can seem to get is this:

My current code is this:

I’ve tried playing around with different DrawModes and MasterAlpha values, but the results I get are strange and not what I’m looking for.

Thanks for any help!

I am trying to implement numbering in TRichEdit component, Delphi. Ideally I want to get the same behavior as in these 3rd party component:

As you can see Numbering button works similar way as Bullet button. I mean it sets FirstIdent or LeftIdent (I am not sure) and put the numbers 1,2,3. instead of bullets. When you move cursor to the left close to number it does not allow to move onto number but jumps one line up.

This is what I got so far:

But it does not work as I want. Anybody have any ideas?

I have a problem to translate the following C++ code to Delphi. This is the code:

And this is what I think what it should be:

However, I know this field should return a name, and not just one character.

So, it maybe something like this:

Now, this looks nice, but there’s no way of predicting how long the name will be, and it will probably return something with a load of rubish and somewhere a #0 terminator in it, but that is -I think- not the proper way. Would it not be wise to use a pointer to this array? Like:

Thank you in advance.

We are currently using ZipTV for file compression. We are trying to eliminate third party components for easy upgrades to newer Delphi versions. We came across System.Zip.TZipFile but can not find it in the XE7 Delphi Tool Palette. Does anyone know how we can add this to our application. Here is a link to the Embarcadero Documentation: http://docwiki.embarcadero.com/Libraries/Rio/en/System.Zip.TZipFile

Thanks for all your help.

My project uses an environment variables in the output paths, i.e $(MY_PROJECTS)\MyPackage (in Project -> Options -> Delphi Compiler -> Package output directory )

The MY_PROJECTS environment variable is defined as W:\Test (in Tools -> Options -> Environment Options -> Environment Variables -> User overrides )

When I build or compile the project from the IDE, the output files are created in W:\Test\MyPackage .

If I build the project from the RAD Studio Command Prompt, the output files are created in W:\MyPackage (as if it doesn’t see the MY_PROJECTS environment variable).

How can I make sure it sees my environment variables?

LongMonthNames — Переменная Delphi

Привет! Скажите, пожалуйста, как получить дату в формате «15 июля 2003 г.» (как на хинте у часиков), а не «15 Июль 2003 г.».

Запиши в глоб. переменную LongMonthNames месяца в нужном падеже

Я пользуюсь таким методом:

procedure .
var month: array[1..12] of string;
begin
month[1] := «января»;
month[2] := «февраля»;
month[3] := «марта»;
month[4] := «апреля»;
month[5] := «мая»;
month[6] := «июня»;
month[7] := «июля»;
month[8] := «августа»;
month[9] := «сентября»;
month[10] := «октября»;
month[11] := «ноября»;
month[12] := «декабря»;
StatusBar1.Panels[0].Text:=
FormatDateTime(«d «+month [MonthOfTheYear(Date)]+» yyyy г.»,
Date);
end

Спасибо, но мне нужно чтоб название месяца отображалось на языке выбранном в «Язык и стандарты» (ControlPanel). Не создавать же списки на всех языках.
Может знаете где стандартные часы берут строчку для своего хинта?

Delphi/Переменные

Переменная — область оперативной памяти, в которой лежит какое-то значение. Основные типы переменных в Delphi:

  • Integer — целые числа.
  • Real — целые и дробные числа.
  • Boolean — логический тип.
  • Char — символьный тип данных.
  • String — строковой тип данных.

Переменные указываются после ключевого слова var (variable — переменная). Общий вид указывания переменных:

В Delphi есть оператор присваивания — := .Общий вид присваивания:

Но с типом string и char, особое дело. Общий вид присваивания с типом string и char:

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL