Delphi. Перевод в универсальный формат даты для SQL Server

SQL Server, начиная с версии 2005 понимает универсальный формат даты, не зависящий от региональных настроек yyymmdd.

Перегнать любую DateTime переменную в этот формат можно с помощью процедуры.

DateTimeToString(str,’yyymmdd’,Now);

Более подробную информацию можно получить здесь

Saving changes is not permitted. SQL Server 2088

В MS SQL Server 2008 при сохранении таблицы появляется сообщение

“Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.”

При этом сохранить изменения в БД не удаётся…

Лечится это так:

Открываем SQL Server 2008 Management Studio (SSMS), заходим Tools/Options

Идём в Designers/Table and Database Designers и снимаем флаг «Prevent saving changes that require table re-creation»

Далее «ОК». Теперь таблицы можно сохранять.

Как изменить стандартный crHandPoint на системный (Delphi)

По умолчанию он довольно страшный… Изменить страшный crHandPoint на более симпотный системный поможет данный код, добавленный в обработчик инициализации формы.

 Screen.Cursors[crHandPoint]:=LoadCursor(0,IDC_HAND);

При изменении размеров TImage размер его Canvas не меняется (Delphi)

Иногда возникает ситуация, когда необходимо в ходе выполнения программы изменить размеры компонента TImage, а потом на его холсте что-то нарисовать. Но все новые рисунки на холсте TImage ограничены старыми габаритами. Как это решить?

Необходимо вместе с размерами TImage изменить размеры его Bitmap.

Image1.Height := 80;
Image1.Width := 33;
Image1.Picture.Bitmap.Height := 80;
Image1.Picture.Bitmap.Width := 33;

Кто вызвал PopupMenu? (Delphi)

Маленькое лирическое отступление

В этом блоге решил постить в основном всякие мелочи, типа той, которую запостю щас. Для чего это? В Интернете море информации обо всём, но как только дело доходит до конкретики даже совсем несложного вопроса, нужно изрядно постараться, чтобы из кучи мусора выбрать именно то, что необходимо. Порой на это уходит очень много времени. Тут буду собирать выжимки, которые могут пригодиться как мне, так и остальным. Надеюсь не зря…

Кто вызвал PopupMenu?

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

procedure Form.N11Click(Sender: TObject);
  begin
  ShowMessage(PopupMenu1.PopupComponent.Name);
  end;

Ещё одно вступление

Время больше полуночи, а я взялся опять за блог. В голове полно мыслей, которыми делиться совсем не хочется… Учитывая то, что начал я этот блог совсем не потому что мне было весело в тот момент, могу сказать, что не знаю — чувствуюя я сейчас себя хорошо или плохо… В любом случае — постить тут я всё-таки буду и отнюдь не всякую фигню, типа этой

О наболевшем. Даже IE8 они сделали… они не доделали…

Ну как так? Я конечно не претендую на звание матёрого вёб-программиста, но IE8 почему-то отказался обрабатывать последовательность вида:

<script type="text/javascript">
айлалэлалы
</script>
<form>
<input type="button" value="У" onclick="ajax_loadContent('Texts','Clean.php');" class="but">
<input type="button" value="Ы" onclick="ajax_loadContent('Texts','Go.php');" class="but">
</form>

Он просто наитупейшим образом тупил!! Зато в опере всё норм, как надо… И я полтора часа бился в истериках от мысли: «Неужели я такой тупой, что не смогу просто перепечатать скрипт с исходника??!!» В исходнике последовательность <script> — <form> такая же, и самое главное, что там всё работает. Я чуть ежика не родил, пока ко мне не пришла мысль о том, чтобы переставить конструкции местами и свести вышенаписанное к:

<form>
<input type="button" value="У" onclick="ajax_loadContent('Texts','Clean.php');" class="but">
<input type="button" value="Ы" onclick="ajax_loadContent('Texts','Go.php');" class="but">
</form>
<script type="text/javascript">
айлалэлалы
</script>

От крываю ИЕ и вижу долгожданный результат… 70% меня радовалось от того, что проблема решена, но 30% офигевало от количества затраченных нервов и времени… Вот так вот бывает…

alvisX

Вступление

Я не знаю как описать состояние души, в котором я сейчас нахожусь. Что-то неопределённое… Своеобразный коктейль из усталости, нежелания ложиться спать, негативных, позитивных мыслей, раздумий о том, что сейчас происходит у меня в душе и в жизни. Всегда меня в себе поражало то, что независимо от того как я хочу спать, я всё равно буду сидеть и заниматься каким-нибудь бесполезным делом, о результатах которого я даже не вспомню на следующий день. Вот и сейчас сижу и поражаюсь… На часах 1.30, а я только что пришёл домой, весь промокший, но с хорошим настроением. Настроение мне поднял дождь, который заметно освежил мне сегодняшнюю ночь. В соседней комнате спят родители, только я, по привычке, так же хлопаю дверями, кидаю ключи на комод, и как-то на подсознательном уровне центральная нервная система даёт руке сигнал о том, что нужно включить компьютер, но рука уже давно всё сделала. С радостью бы не включал это чудо техники, но раз передо мной уже красуется сочная картинка рабочего стола, так почему же мне не написать следующий пост на моём блоге? Сегодня я встал в 11 утра, приготовил себе завтрак, приступил к написанию очередного модуля сайта, над которым сейчас работаю. С короткими передышками на развлечения, в которые входила игра на гитаре, уборка комнаты пылесосом и тисканье гантели, модуль был написан на 70%, хоть и через зад. К вечеру, от проделанной работы, мозг уже невнятно обрабатывает простые операции, а от сложных просто виснет. Поэтому на  вечерней встрече с друзьями в кофейне моё сознание не способно было родить ни чего существенного, зато желудок готов был литрами пить Фирменный Мокко. Далее ночная прогулка по нашему Челябинскому Арбату с Деном. Обычно все прогулки с этим человеком никогда не заканчиваются так как задумывалось. Ни слова мимо, всё именно так. Сегодняшний вечер не стал исключением. Но я уже дома (Офигеть, неужели я дома?).

За окном темно, остатки выживших после пьянки моряков (а пьянка у них была сегодня знатная) орут под окнами. Постепенно количество голосов уменьшается — не мудрено.  Стало заметно тише, только шум шин по мокрому асфальту. А в голове мысли об одном человеке… о котором, пожалуй позже…

Волосы вроде немного высохли, из аськи вышел последний программер, да и мне пора уже спать, о чём напомнил уже закрывшийся правый глаз. Завтра разговоры с начальством, клиентами, кодинг, аськинг и т.д.

Конец второго поста, хотя о чём он опять..?

alvisX

23:07 21 Июля 2009 года

Это момент, когда я решил зайти на Вордпресс и создать тут собственный блог. Не думал, что он (момент) наступит так быстро. Просто сегодня был довольно странный день, половину которого я провёл на работе, хотя нахожусь в законном отпуске. Едя домой после рабочего дня с начальником в его немного «обвешанной» двенашке рассказываю как замечательно я провёл только что минувшие  выходные и радую его тем, что первый раз за несколько лет я ни разу не вспоминал про него в течение трёх дней. А в голове крутится мысль о том, что следующий день своего мини-отпуска я проведу тоже на работе… Но, как ни странно, это меня совсем не пугает и не расстраивает. Дома меня ждут полупустой холодильник с пачкой варенников в морозильной камере, час шума вентиляторов компьютера, пара приятных и не очень комментов новых фотографий из «контакта», потом тренировка, бананы, душ и опять шум вентиляторов, аська… и пустота. Пусто… Потому что уже пол года я дома один. Обстоятельства сложились так… Хотя живу с родителями.  Вроде устал, хочется спать, хочется отдохнуть… Взглянув на звёздное небо сквозь окно, но не смотря на часы, будильник на Нокии был поставлен на девять часов утра. Но симбиан такой умный, что сразу же посчитал, что до момента, когда будильнику нужно будет осуществить свою прямую задачу, осталось 5 часов и сразу же обрадовал своего обладателя этой «радостной» новостью. Лёжа в постели в голове мысль:  «Просидел столько времени практически впустую…» Сон. Летнее утро радует, но радует оно уже часов в десять-одиннадцать. Кружка зелёного чаю в рот,  рюкзак со всем необходимым на спину, ключи в карман и вот уже передо мною новый день.

Конечно можно подумать, что всё это довольно скучно, но это совсем не так. Каждый новый день крайне редко бывает похож на предыдущий, да и не описать всего.

Я это всё к тому, что сегодня вечером,  21 Июля 2009 года, придя домой, я включил компьютер, выложил новый шампунь, заправил кофеварку свежекупленным молотым кофе, покидал трусы, носки, в стиральную машинку и пошёл в душ. Выйдя из душа налил кофе, сел за клаву и выключил аську… Дописал вот эти слова и вспомнил, что машинка уже постирала бельё. Я сегодня вечером отдыхаю…

Конечно всё это не являлось причиной того, что я вдруг решил завести блог. Я до сих пор не понимаю зачем простые и непростые Айтишники создают блоги… Но, тем не менее, зашёл и создал. Оставил здесь небольшой кусок себя, который не жалко ни для кого… Думаю, со временем буду делитсья чем-то бОльшим.

alvisX.