Здесь будут собиратся маленькие штуки, которые в голове держать не хочется, гуглить долго, а под рукой иметь надо.
Обработка нажатия сочетаний клавиш.
if((Key=='T')&&(Shift==TShiftState() << ssCtrl))
{Набор действий}
Остальное по справке. Работает везде, где передается Key.
Если нужно отлавливать все нажатия клавиш через onKeyDown формы Form1, то надо сделать следущее в событии onCreate у формы:
Form1->KeyPreview = true;
Экспорт данных из ADOQuery
Предполагается, что запрос уже связан с ADOConnection, и ошибок в SQL запросе нет. Очень удобно для переноса данных из любой БД в любую. Импорт файла с разделителем это классика;)
char separator=','; ///разделитель может быть любой
try //В данном случае поля будут разделятся запятой
{ //Выглядит это так - Иванов,Иван,Иванович
ADOQuery1->Active = true; //Строки же разделяются символом новой строки 0х0А
while(!ADOQuery1->Eof)
{
for(int i=0;iFieldCount;i++)
{
fprintf(f,"%s",ADOQuery1->Fields->Fields[i]->AsString);
if((i+1)>=ADOQuery1->FieldCount)
fputc(0x0A,f) //строки желательно разделять символом конца строки
else
fputc(separator,f);
}
ADOQuery1->Next(); //переход к следующей записи
}
}
__finally
{
ADOQuery1->Active = false;
}
Убрать или добавить BorderIcons прямо в программе
Случается так, что надо спрятать от пользователя кнопку максимизации или вовсе убрать панель с этими кнопками. Вообще в Object Inspector(Инспекторе объектов) можно выключить их, но если надо динамически убрать, то тут надо подумать как это сделать. Первое, что приходит в голову, не работает, поэтому воспользуемся хелпом и подумаем второй раз. Убрать все кнопки BorderIcons можно так(запиши наш код там где ты хочешь, чтобы это происходило, например, по нажатию Button1):
TBorderIcons temp = BorderIcons; //массив в котором находятся наши кнопки
temp >> biSystemMenu; //убираем из нашего массива все кнопки
Form1->BorderIcons = temp; //шлеп и готово
Еще пример. Нужно оставить только крестик, убрав все остальные кнопки:
TBorderIcons temp = BorderIcons; //массив в котором находятся наши кнопки
temp << biSystemMenu; //записываем в массив все системные кнопки
temp >> biMaximize; //убираем из него максимизацию
temp >> biMinimize; //убираем сворачивание
Form1->BorderIcons = temp; //шлеп и готово
И третий пример. Нужно оставить крестик и сворачивание. Уберем максимизацию. Но следует помнить, что в этом случае кнопка максимизации не пропадет, а станет недоступной, типа серым закрасится:
TBorderIcons temp = BorderIcons; //массив в котором находятся наши кнопки
temp << biSystemMenu; //записываем в массив все системные кнопки
temp >> biMaximize; //убираем из него максимизацию
Form1->BorderIcons = temp; //шлеп и готово
И не говори, что это сложно. Это просто. Читай хелп:)
Ссылки:
К содержанию