Вопрос № 19182: Здравствуйте уважаемые эксперты.
Как проверить скопировано что нибудь в буфер обмена или нет....Вопрос № 19185: Здравствуйте, уважаемые программисты. У меня к вам большая просьба, не могли бы вы посказать, кто мне может помочь с написанием программ в делфи7?
У меня началась сессия и каждый день экзамены. Скоро дойдёт и до делфи, а у меня не готова контроль...Вопрос № 19216: Здравствуйте уважаемые эксперты.
У меня следующие вопросы:
1. Как работать с различными типами шрифтов в компоненте TImage?
2. Как определить высоту и ширину символа в пикселах по названию и размеру шрифта?
3. Существуют файлы шрифтов...
Вопрос № 19182
Здравствуйте уважаемые эксперты.
Как проверить скопировано что нибудь в буфер обмена или нет.
Отправлен: 03.04.2005, 19:32
Вопрос задал: Rider (статус: 1-ый класс)
Всего ответов отправлено: 3
Отвечает: Malish
Здравствуйте, Rider!
// Вызывается при любом изменении содержимого буфера обмена
message.Result := SendMessage(WM_DRAWCLIPBOARD, FNextViewerHandle, 0, 0);
Ответ отправил: Malish (статус: 7-ой класс)
Отправлен: 03.04.2005, 20:01
Отвечает: sir henry
Здравствуйте, Rider!
Ну например можно использовать функцию HasFormat:
IF TClipBoard.HasFormat(CF_TEXT) Then
{В клипборде содержиться текст}
там еще есть несколько форматов. Посмотрите в справочнике, нужно ли Вам реализовывать их проверку, может быть хватит и одного текста.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 04.04.2005, 09:45
Отвечает: Bob Johnson
Здравствуйте, Rider! см. класс TClipboard и методы Open и HasFormat, свойства Formats и FormatCount.
* EMan2.0: ---===*** Debug mode ***===---
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 05.04.2005, 20:56
Вопрос № 19185
Здравствуйте, уважаемые программисты. У меня к вам большая просьба, не могли бы вы посказать, кто мне может помочь с написанием программ в делфи7?
У меня началась сессия и каждый день экзамены. Скоро дойдёт и до делфи, а у меня не готова контрольная. Давалось время на самоподготовку, но оно прошло у станка на заводе. Я просто не смог сосрелоточиться на познаниях делфи.
А вопросы такие, я думаю, что они семечки для вас, а для меня начало начал:
Создание таблиц, организация связи между ними. Я их связал, вроде как, а организовать поиск у меня не получается.
Далее предлогается создать таблицу с полями: ФИО, адрес, Телефон. По нажатию кнопки организовать поиск по полю ФИО.
Разжуйте мне пожалуйста.
Создал таймер, но немогу понять, куда вписывать строки, запускающие медиапроигрыватель поистечении заданного интервала для воспроизведения звукового сигнала.
Ещё такое, нужна подробная расписка программы:
Создайте меню со следующими пунктами:"Добавить запись","Выход". Создайте ещё одну форму, которая будет проявляться при выборе пункта меню"Добавить запись". На второй форме разместите пять компонентов Edit и одну кнопку Button ("Добавить"). Каждый компонент Edit соответсвует определённому полю таблици. Для того, чтобы добавить запись в таблицу, необходимо выбрать соответствующий пункт меню, появится форма. Внести значение полей и нажать кнопку "Добавить". Для
обработки этой кнопки используйте следующий код:
Table1.Insert;
Table1.FieldByName('Name').AsString:=Edit1.Text;
Table1.FieldByName('Capital').AsString:=Edit2.Text;
Table1.FieldByName('Continent').AsString:=Edit3.Text;
Table1.FieldByName('Area').AsString:=Edit4.Text;
Table1.FieldByName('Population').AsSting:=Edit5.Text;
Table1.Post;
Далее следует добавить в меню пункты "Удалить запись", "Редактировать запись" и написать соответствующий код.
И последнее:
Создать таблицу:
FieldName Type Size Key
Num + *
Otdel A 15
Fam A 20
Nam A 20
Par A 20
Year_R S
И задать следующие индексы:
Имя индекса Поля
Fio Fam,nam,par
Depfio Dep,fam,nam,par
Year Year_R
))))=>Организовать доступными только те записи, фамилия которых начинается на буквы "А", "Б", "В", "Г".
))))=>Отобразить только те записи, в которых год рождения лежит в пределах 1970-1980, включая годы 1970 и 1980.
))))=>Отобразить только те записи, в которых год рождения лежит в пределах 1970-1980. не включая годы 1970 и 1980.
))))=>Отобразить всех сотрудников, фамилии которых начинаются на "А","Д" и которые работают в цехе 1.
За предоставленную информацию и готовые ответы по вашему желанию вышлю деньги почтовым переводом.
С уважением, Сергей.
Отправлен: 03.04.2005, 22:06
Вопрос задал: vertobas (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Bochvarov NikB
Здравствуйте, vertobas!
Я посьилаю тебе код создания таблици.
Для фильтрации можно пользоват проперти tTable.Filter (tQuery.Filter) примерно так:
tTable.Filter:='(Year_R>=1970) and (Year_R<=1980)';
tTable.Filtered:=true;
Я хочу помоч тебе вполне, но мне лучше посоветовать тебе найти подругу, знающая Делфи.
Желаю удачи!
Приложение:
Ответ отправил: Bochvarov NikB (статус: 2-ой класс)
Отправлен: 03.04.2005, 23:01
Отвечает: sir henry
Здравствуйте, vertobas!
Ну просто не может быть, чтобы в Вашем многоуважаемом учебном заведении не было никого, кто бы занимался написанием всевозможных курсовиков и дипломных проектов. Причом именно за деньги, как Вы и хотели. :) Может быть Вы подумали, что здесь будет дешевле? Вполне возможно что и будет, только для этого надо оставить эл. адрес и общаться уже тет на тет. :))
Что можно - отвечаю бесплатно, только если Вы предпочитаете станок самообразованию, то ответы будут малопонятны. :))
Не подумайте, что я просто так брюзжу, сам одновременнно и учился и работал, и хорошо знаю, что это такое. :)
-------------------------------------------------------
Поиск по любому полю можно организовать в двух видах:
1. Поиск по полю с индексом - это намного быстрее, чем без индекса.
Реализует его функци FindKey() - возвращает True, если запись по ключу найдена, FindHearest() - перемещает курсор на запись, которая наиболее похожа на искомое Вами значение, Есть и еще несколько штук, но эти наиболее близкие по смыслу.
2. Без индексов. Работает медленнее, но ищет в полях, где индксов нет (если поля с индексами, то тоже ищет). Тут есть две функции Locate() - возвращает True, если запись найдена и Lookup() - возвращает само значение поля. Здесь нужно применять ту функцию, которая подходит по смыслу поиска. Для безиндексного поиска других функций нет.
Еще есть запросы. Они больше подходят для групового отбора данных по какому-либо критерию и тоже подходят под понятие "поиск". Например: SELECT фио FROM Table WHERE фио LIKE 'Иванов%'. В этом запросе будут все записи, которые начинаются с "Иванов".
----------------------------------
У таймера есть свойство Interval, в котором вы задаете через какое время он будет сигналить.
Естественно, чтобы запустить таймер ну жно написать TTimer.Enabled:=True. Все события сигнализации записываются в событие OnTimer, например:
TMediaPlayer.Play;
по этой команде Ваш медиаплейер начнет воспроизводить музыку.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 04.04.2005, 10:18
Вопрос № 19216
Здравствуйте уважаемые эксперты.
У меня следующие вопросы:
1. Как работать с различными типами шрифтов в компоненте TImage?
2. Как определить высоту и ширину символа в пикселах по названию и размеру шрифта?
3. Существуют файлы шрифтов, где содежится вся информация о шрифтах. Хотелось бы узнать, что это за файлы, и если можно, то их формат и как с ними работать. Примеры программ, работающих с ними, тоже очень нужны.
4. Можно ли каким-то образом в поле Image отобразить графическую информацию, сохраненную в формате VML, SVG (XML)?
Отправлен: 04.04.2005, 10:46
Вопрос задал: toadd (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: sir henry
Здравствуйте, toadd!
1. TImage.Canvas.Font:= {Ваш любимый шрифт};
4. Либо преобразовав ее в известный TImag'у формат (типа BMP, JPG) или найти компонент, или использовать OLE Automation (т.е. этот файл будет просматриваться не TImage, а той программой, где он создавался).
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 04.04.2005, 13:25
Отвечает: X
Здравствуйте, toadd!
1)Шрифт устанавливается в Image1.Canvas.Font
2)Высота символа установленного шрифта Image1.Canvas.Font.Height
Ширина зависит от символа
3)Фаилы шрифтов находятся в папке Windowsfonts, формат их я не знаю, специальных файлов шрифтов для Delphi вродебы нет.
4)Стандартно эти форматы в Iamge не поддерживаются.
Ответ отправил: X (статус: 1-ый класс)
Отправлен: 04.04.2005, 13:28
Отвечает: CJ
Здравствуйте, toadd!
IMHO если я не ошибаюсь, то TImage предназначен для просмотра графики.
Ответ отправил: CJ (статус: Студент)
Отправлен: 04.04.2005, 16:04 Оценка за ответ: 1 Комментарий оценки: Ну и что? Писать-то там можно...
Отвечает: Bob Johnson
Здравствуйте, toadd! На вопрос 1, думаю, тебе дали неплохие ответы 2. Ширина разных символов может быть разная (если это не моношрифт, как, например, courier new). Чтобы ее определить можно использовать API функцию GetCharABCWidths, которая возвращает составляющие (А, В и С) ширины заданного множества символов. Еще есть функция DrawText с параметром DT_CALCRECT, которая вообще может высчитать тебе размер прямоугольника, необходимого для
вывода заданной строки текста. В дельфи у tcanvas также есть методы TextExtent, TextHeight и TextWidth, но API дает гораздо больше свободы ) 4. если ты напишешь процедуру (или используешь готовую), которая этот формат будет понимать. xml, например, это вообще формат с произвольными тегами.
* EMan2.0: ---===*** Debug mode ***===---
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 05.04.2005, 20:52 Оценка за ответ: 4