Вопрос № 47058: Здравствуйте, эксперты!
Подскажите, п-та, как организовать программно выделение строк в DBgrid....Вопрос № 47063:
Добрый вечер, уважаемые! Скажите, пожалуйста, можно ли у стандартного Виндового Блокнота спрятать курсор, чтобы нельзя было
редактировать текст?...Вопрос № 47069: Например у меня имеется на форме edit1
и listbox1 с базой слов. вопрос- Как сделать, чтобы найти из listbox нужное слово т.е при написании 1 буквы выводится первая
буква по алфавиту, 2-я буква - поиск слова по 2 буквам,3-я буква - поиск слова по трем...Вопрос
№ 47112: Здравствуйте Эксперты! У меня к вам такой вопрос: Каким образом можно сделать форму не стандартной (например,
круглой или овальной ). Пришлите пожалуйста пример или напишите адрес откуда можно скачать литературу....Вопрос № 47113: Уважаемые эксперты, я понимаю что вопрос несложный... в о
бщем нужно сделать чтобы раскрывающиеся окна не вылазили за границы главного окна. Т.е сначала я свойства стиля формы оставляю
обычными, а при открытии делаю окна дочерними модальными... но как...Вопрос № 47140:
Здравствуйте Уважаемые Эксперты!
Какой код у клавиш Вверх,Вниз,Влево,Вправо?(у Enter - #13,у а- #192...)...
Вопрос № 47.058
Здравствуйте, эксперты!
Подскажите, п-та, как организовать программно выделение строк в DBgrid.
Отправлен: 22.06.2006, 14:31
Вопрос задал: Ramil (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, Ramil!
Смотрите пример:
procedure TFormDB.Button1Click(Sender: TObject);
var i:integer;
begin
DBGrid1.Options:=DBGrid1.Options+[dgRowSelect,dgMultiSelect];
for i:=2 to 5 do
begin
Tb_elektr.RecNo:=i;
DBGrid1.SelectedRows.CurrentRowSelected:=true;
end;
end;
Где Tb_elektr - имя Вашей базы.
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии
с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус:
Студент)
Ответ отправлен: 22.06.2006, 14:53
Отвечает: Shady
Здравствуйте, Ramil!
Вот пример.
http://progers.net.ru/pages/451.html
Приложение:
Ответ отправил: Shady (статус: 4-ый
класс)
Ответ отправлен: 22.06.2006, 16:15
Вопрос
№ 47.063
Добрый вечер, уважаемые! Скажите, пожалуйста, можно ли у стандартного Виндового Блокнота спрятать курсор, чтобы нельзя было
редактировать текст?
Не проще ли написать, раз вы программист, подобие блокнота с необходимыми Вам функциями. В Delphi есть стандартные приложения
в примерах, где есть подобные готовые разработки, Вам останется подредактировать свойство readonly.
Ответ отправил: Shady (статус: 4-ый
класс)
Ответ отправлен: 22.06.2006, 16:18
Для примера взял Trichedit
Как я понимаю, Вы пытались сделать что-то типа того, что в приложении. Но просто каретка будет появляться при активировании
елемента редактирования, клике мышкой, изменении и т.д. То есть, надо отлавливать все эти действия и прописывать везде hidecaret(richedit1.Handle);
Приложение:
Ответ отправил: Serg_6667 (статус:
3-ий класс)
Ответ отправлен: 23.06.2006, 10:42
Вопрос
№ 47.069
Например у меня имеется на форме edit1 и listbox1 с базой слов. вопрос- Как сделать, чтобы найти из listbox нужное слово
т.е при написании 1 буквы выводится первая буква по алфавиту, 2-я буква - поиск слова по 2 буквам,3-я буква - поиск слова
по трем буквам и так далее. Спасибо!
Отправлен: 22.06.2006, 16:25
Вопрос задал: Ghora (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Shady
Здравствуйте, Ghora!
Все что вам нужно - в событии OnChnage компонента Edit1 написать вот такую строку:
ListBox1.Perform(LB_SELECTSTRING,-1,longint(Pchar(Edit1.text)));
И все.
Ответ отправил: Shady (статус: 4-ый
класс)
Ответ отправлен: 22.06.2006, 16:42
Вопрос
№ 47.112
Здравствуйте Эксперты! У меня к вам такой вопрос: Каким образом можно сделать форму не стандартной (например, круглой или
овальной ). Пришлите пожалуйста пример или напишите адрес откуда можно скачать литературу.
Отправлен: 23.06.2006, 10:09
Вопрос задал: Ram (статус: Посетитель)
Всего ответов: 6 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ерёмин Андрей
Здравствуйте, Ram!
Проще всего использовать готовый компонент - Shaped Form например.
Просто задаёте чёрно-белую картинку-шаблон и форма готова!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Для того, чтобы придать другую форму можно использовать регионы. В приложении пример.
Чтобы создать форму, допустим, многоугольную, можна использовать
CreatePolygonRgn
Приложение:
Ответ отправил: Serg_6667 (статус:
3-ий класс)
Ответ отправлен: 23.06.2006, 10:27 Оценка за ответ: 5
Отвечает: LanK
Здравствуйте, Ram!
Я лично не использую сторонние компоненты, хотя, вариант от Ерёмин Андрей видимо самый простой.
А на самом деле всё можно и не сложно сделать руками - если Вам например овальная форма нужна - прочитайте готовый код например
здесь:
P.S. если хотите у меня есть готовый проект маленький пример еще для Дельфи3 :) работает и на 7ке. Пишите в личную почту.
--------- Пусть все будет хорошо! Давайте жить дружно! :) И будет жить еще лучше!
Ответ отправил: LanK (статус: Студент)
Ответ отправлен: 23.06.2006, 10:39 Оценка за ответ: 3
Отвечает: Gh0stik
Здравствуйте, Ram!
Изменить вид формы можно при использовании регионов.
Вот привожу Вам пример по работы с регионами:
procedure TForm1.Button5Click(Sender: TObject);
var FormRgn: HRGN;
P:array[0..7] of TPoint;
w,k:integer;
begin
Form1.Height:=500; Form1.Width:=500;
w:=form1.Width;
k:=w div 3;
P[0]:=Point(k,0); P[1]:=Point(w-k,0);//заполняем массив точек
P[2]:=Point(w,k); P[3]:=Point(w,w-k);
P[4]:=Point(w-k,w); P[5]:=Point(k,w);
P[6]:=Point(0,w-k); P[7]:=Point(0,k);
FormRgn:=CreatePolygonRgn(P,8,ALTERNATE);//создаем регион на основе массива точек.
SetWindowRgn(form1.Handle, FormRgn, true);
end;
В итоге у Вас должно получиться 8-угольное окно!!!
Еще можете почитать по следующим ссылкам:
http://delphiworld.narod.ru/base/chg_form_rgn.html
http://delphiworld.narod.ru/base/create_controls_with_any_shape.html
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии
с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус:
Студент)
Ответ отправлен: 23.06.2006, 11:03 Оценка за ответ: 5
Ответ отправил: Shady (статус: 4-ый
класс)
Ответ отправлен: 23.06.2006, 17:23 Оценка за ответ: 5 Комментарий
оценки: Благодарю. Красиво!
Отвечает: Виктор Пырлик
Здравствуйте, Ram!
Если вопрос только получить такую форму – используйте компоненты сторонних разработчиков, я ими не пользуюсь, поэтому не
могу дать ссылки. А ВТО если хочется самому сделать, тогда, всё очень просто: Любые операции с окнами (формами) основаны
на функциях АПИ Windows.
Простая и понятная книга в этом плане: Win32 API Р.Д. Верма, www.programme.ru
К таким функциям относятся например, функции работы с областями: CreateRectRgnInderect(RECT*)
CreateEllipticRgn
И другие, как правило имеющие в названии *Rgn*
Функции работы по отсечению: *Clip*
Под рукой нет на паскале, привожу на C++:
На выходе получаем прямоугольную форму с двумя дырками (флаг отсичения RGN_XOR).
Для перевода на паскаль ндо заменить равенство на := и переменные можно передать напрямую ну, или по @. И всё.
Приложение:
--------- Не результат важен, процесс есть двигатель всего!
Ответ отправил: Виктор Пырлик (статус:
1-ый класс)
Ответ отправлен: 23.06.2006, 20:46 Оценка за ответ: 5
Вопрос
№ 47.113
Уважаемые эксперты, я понимаю что вопрос несложный... в общем нужно сделать чтобы раскрывающиеся окна не вылазили за границы
главного окна. Т.е сначала я свойства стиля формы оставляю обычными, а при открытии делаю окна дочерними модальными... но
как из закрыть потом, вернув им свойства form.style="normal;?" очень нужно, подскажите пожалуйста
Отвечает: Shcherbakov Anton
Здравствуйте, Сапожников Владимир Алексеевич!
если вас устроит.. то делайте mdi приложени и у вас дочернии окна нигодна не вылезут за пределы главного окна.
Ответ отправил: Shcherbakov Anton
(статус: 2-ой класс)
Ответ отправлен: 23.06.2006, 10:21 Оценка за ответ: 1 Комментарий оценки: Я
знаю что нужно делать mdi, просто ты наверное видел что mdi-формы всегда открыты, а нужно чтобы были закрыты, а свойство
дочернего окна появлялось при открытии
Отвечает: Татьяна
Здравствуйте, Сапожников Владимир Алексеевич!
Как вариант (конечно, если данная форма вам больше не нужна), в событии onClose дочерней формы пропишите
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
--------- Возможно все. И ничего возможно тоже.
Ответ отправила: Татьяна (статус:
Студент)
Ответ отправлен: 23.06.2006, 16:48
Отвечает: Виктор Пырлик
Здравствуйте, Сапожников Владимир Алексеевич!
Можно подробнее. А то слишком простой вопрос, даже и не понятно, какой нужен ответ...
Модальным окно Вы можите сделать толко при вызове его ShowModal, во всех остальных случаях, окно может быть или fsStayOnTop
- всегда на верху, или fsMDIChild - дочернее окно MDI приложения (MS Office например) или fsNormal, или fsMDIForm - хазяин
MDI. Что Вы имели ввиду?
Есл хотите программно закрыть модальное окно, тогда: как минимум, надо или воспользоваться одной из функций таимера - рекция
по событию, или определить новый поток и из него уже закрыть модальное окно (любым Вам известным способом) - реакция по условию.
Если надо чтобы дочернее оконо не перекрывало главное, то, во первых: установите свойство дочернего окна Posion = poDesktopCenter
(например), во вторых, запретите пользователю раскрывать его полностью: BorderIcons [biMaximize = false], в третих: или получите
размер главной формы перед запусом модальной и уменьшите на сколько считаете нужным, или, что практичнее, проектируйте интерфейс
с учетом требований.
--------- Не результат важен, процесс есть двигатель всего!
Ответ отправил: Виктор Пырлик (статус:
1-ый класс)
Ответ отправлен: 23.06.2006, 21:03
Вопрос
№ 47.140
Здравствуйте Уважаемые Эксперты!
Какой код у клавиш Вверх,Вниз,Влево,Вправо?(у Enter - #13,у а- #192...)
Отвечает: Gh0stik
Здравствуйте, Исаков Евгений Владимирович!
Вместо кодов проще воспользоваться константами, которые описаны в Delphi:
.....
VK_HOME Home key
VK_LEFT Left Arrow key//Влево
VK_UP Up Arrow key// Вверх
VK_RIGHT Right Arrow key//Вправо
VK_DOWN Down Arrow key//Вниз
VK_SELECT Select key
VK_PRINT Print key (keyboard-specific)
VK_EXECUTE Execute key
VK_SNAPSHOT Print Screen key
VK_INSERT Insert key
......
А найти их код можно воспользовавшись командой ORD()
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии
с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус:
Студент)
Ответ отправлен: 23.06.2006, 14:39 Оценка за ответ: 5 Комментарий
оценки:
Отвечает: Ерёмин Андрей
Здравствуйте, Исаков Евгений Владимирович!
Gh0stik правильно намекнул. Именованными константами удобнее пользоваться. Ну а чтобы ответить полностью на ваш вопрос, привожу
сами коды:
[LEFT] - #25; [UP] - #26; [RIGHT] - #27; [DOWN] - #28.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Shady
Здравствуйте, Исаков Евгений Владимирович!
Коды клавиш в приложении.
Приложение:
Ответ отправил: Shady (статус: 4-ый
класс)
Ответ отправлен: 23.06.2006, 17:13 Оценка за ответ: 5
Отвечает: Решетник Д
Здравствуйте, Исаков Евгений Владимирович!
вот маленькая программка на Паскале для вывода кодов клавиш (большинства)...
можете ее видоизменить под Делфи..
Приложение:
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус:
9-ый класс)
Ответ отправлен: 23.06.2006, 20:20 Оценка за ответ: 3