Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1063
от 13.02.2008, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 435, Экспертов: 61
В номере:Вопросов: 5, Ответов: 12

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 122126: Как при нажатии на первую кнопку вызвать диалог выбора цвета(с этим проблем нету), и при выборе цвета: 1. В Edit'ы вписывался этот цвет в таком формате в Edit1 значение Red, в Edit2 значение Green, в Edit3 значение Blue. 2. При нажатии на вто...
Вопрос № 122128: Шалом всем! не знаю , как на форму грузонуть картинку, чтоб на любом др компьютере можно было пользываться программой и не выдавало, что в наличие картинки нет....ну не понимаю я , что вы мне пишите , п росправки- я знаю, где она находится? объяс...
Вопрос № 122144: Помогите кто-нибудь! как загрузить картинку на ФОРМУ, чтоб ну требывалось её наличия в Bin, если программу открывать потом на др компьютере. только. пожалуйста. очень подробно объясните и понятно! у меня стоит delphi7 и меня ещё интересует еткст...
Вопрос № 122211: Здравствуйте, уважаемые эксперты! У меня есть вопрос: Как в RichEdit Всавить перед и после выделеного слова какой-то текст. Буду очень благодарен за ответ!...
Вопрос № 122221: Здравствуйте, уважаемые эксперты! У меня есть ещё 1 вопрос: Как в RichEdit курсор автоматически установить при запуске программы в 11 Строку. Заранее спасибо!...

Вопрос № 122.126
Как при нажатии на первую кнопку вызвать диалог выбора цвета(с этим проблем нету), и при выборе цвета:
1. В Edit'ы вписывался этот цвет в таком формате в Edit1 значение Red, в Edit2 значение Green, в Edit3 значение Blue.
2. При нажатии на вторую кнопку этот цвет записывался в текстовый файл.
3. При нажатии на третью кнопку цвет жагружался из файла и вводился в Edit'ы и этим цветом красилась первая кнопка.
Отправлен: 07.02.2008, 18:40
Вопрос задал: DenGame (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, DenGame!
Код в приложении.

По третьему пункту: тут не все так просто. Стандартные кнопки такого сделать не позволяют. Придется использовать сторонние компоненты.
Для этого можно использовать градиентные кнопки. Посмотрите компонент TGradient.
Также в приложенном файле набор компонентов в стиле windows xp. Кнопка, входящая в него, тоже позволяет менять цвет заливки.

А вообще советую задуматься о целесообразности использования сторонних компонентов, т.к. из-за это возникнут некоторые проблемы с переносом исходников программы: везде нужно будет устанавливать в delphi данный набор компонентов и вместе с исходниками программы носить архив с компонентами.

Удачи!

Приложение:

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.

Ответ отправил: Николай Владимирович / Н.В. (статус: Специалист)
Ответ отправлен: 07.02.2008, 19:28
Оценка за ответ: 5
Комментарий оценки:
Спасибо за помощь, правда я просил ColorDialog а не ColorBox, но нече страшного я сделал то шо мне надо. А нащёт кнопок я догадывался что они не перекрашиваются

Отвечает: Marked One
Здравствуйте, DenGame!
К сожалению цвет кнопки изменить нельзя, поэтому в приложении меняется цвет формы.

Приложение:

Ответ отправил: Marked One (статус: 4-ый класс)
Ответ отправлен: 07.02.2008, 20:02
Оценка за ответ: 5
Комментарий оценки:
Про кнопки уже знаю:(. Первый ответ был проще, но там небыло показано как использовать цвет в сохранённом файле, большое спасибо за то шо показал как это делать.

Отвечает: Selya
Здравствуйте, DenGame!
Получение значения цвета:
var
RGB: LongInt;
R, G, B: Byte;
C: TColor;
...
получили С из диалога выбора цвета
...
RGB := ColorToRGB(C);
R := GetRValue(RGB);
G := GetGValue(RGB);
B := GetBValue(RGB);

Edit1.Text := IntToStr(R);

В текстовый файл можно записать сразу значение TColor. Он запишется как Integer;
Считывается как Integer, нормально преобразуется в TColor.

Button1.Color := C;
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 08.02.2008, 11:26
Оценка за ответ: 4
Комментарий оценки:
Неплохо, может быть когда нибуть пригодится, но мне нужен был цвет в файле не как Integer, а как string. И ещё "Button1.Color := C;" У Button нет Color\'a.


Вопрос № 122.128
Шалом всем!
не знаю , как на форму грузонуть картинку, чтоб на любом др компьютере можно было пользываться программой и не выдавало, что в наличие картинки нет....ну не понимаю я , что вы мне пишите , п росправки- я знаю, где она находится? объясните подробнее, пожалуйста!!!!!!!!!
самы элементарный способ, чтоб она загрузилась и всё, вообщем. поместить её в ресурсы надо!!!!!


да и вопросик, как сделеть, чтоб три кнопки были наверху. т.е. форма у меня разворачиваается при загрузке программы на весь экран! а кнопки должны быть наверху-одна рядом сдругой на всю длину формы , т.е.
надо самую правую кнопку прилипить к верхнему углу- а вторая кнопка-чтоб между ними заняла
___________________________
l_________l________l_________l
l l
l l
l l
l l
l l

Отправлен: 07.02.2008, 18:49
Вопрос задала: Надежда Сергеевна (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Надежда Сергеевна!

1) Положите на форму компонент TImageList
- Кликните на нем правой кнопкой мыши и в появившемся меню выберите ImageList Editor
- Добавьте нужные изображения.
Все остальные компоненты используют изображения из этого списка (если Вы его укажете) по номеру.
2) С кнопками нужно ловить событие по изменению размера формы, и в нем изменять размеры и положение кнопок.
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 07.02.2008, 19:06

Отвечает: BlackRaider
Здравствуйте, Надежда Сергеевна!
Если вы грузите картинку в TImage то, в дизайн тайме ее и загрузите при этом она "зашьется" в ехе шник. если картинка грузится динамически то через ресурсы (увы тут я мало что могу посоветовать :( );

Второй вопрос:
на форму кладем панель на нее 3 кнопки.
у панели свойство Align=alTop
На событие формы onResize
пишем обработчик:

procedure TForm6.FormResize(Sender: TObject);
var rf:real;
begin
rf:=panel1.Width/3;
bitbtn1.Left:=0;
bitbtn1.width:=round(rf);
bitbtn2.Left:=bitbtn1.Left+bitbtn1.Width;
bitbtn2.width:=round(rf);
bitbtn3.Left:=bitbtn2.Left+bitbtn2.Width;
bitbtn3.width:=round(rf);
end;
Ответ отправил: BlackRaider (статус: 3-ий класс)
Ответ отправлен: 07.02.2008, 19:08

Отвечает: Selya
Здравствуйте, Надежда Сергеевна!
1. Чтобы поместить картинку в ресурс программы надо:
а. Допустим, у вас картинка mypicture1.bmp лежит в папке IMG
б. Создаём текстовый файл, но с расширением .rc : myres.rc такого содержания:
MYPIC1 BITMAP IMGmypicture1.bmp
где
MYPIC1 - имя будущего ресурса, по которому мы будем загружать его в программе
BITMAP - тип ресурса
IMGmypicture1.bmp - относительный путь до файла с картинкой
в. Пишем в командной строке (например, в TotalCommander'е)
brcc32 myres.rc
Будет создан файл myres.RES
г. Всё, ресурс создан, подключаем его в проект Delphi:

implementation

{$R *.dfm}
{$R myres.res}

д. Ресурс подключен. Загрузить картинку из ресурса и нарисовать её можно разными способами. Например:
var
Bmp: TBitmap;

procedure TFrmInput.FormCreate(Sender: TObject);
begin
Bmp := TBitmap.Create;
Bmp.Handle := LoadBitmap(HInstance, 'MYPIC1');
end;

procedure TFrmInput.FormDestroy(Sender: TObject);
begin
Bmp.Free;
end;

procedure TFrmInput.RestoreImage;
begin
Image1.Canvas.Draw(0, 0, Bmp);
end;

Конечно в данном случае проще было бы загрузить одну картинку в TImage через инспектор объектов, свойство Picture. Но если картинок несколько и они подгружаются в зависимости от ситуации, то конечно лучше через ресурсы, как в примере.
2. В вашем случае у кнопок есть свойство Anchors. Читайте справку. Выставляйте его и кнопки будут "приклеены" к одной из границ формы. Или на событии формы OnResize вычислять размер и положение каждой кнопки в зависимости от размера формы:
Button1.Width := Form1.Width div 3;
Button2.Left := Button1.Width + 10;
Button2.Width := Form1.Width div 3;

и т.д.
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 08.02.2008, 11:18


Вопрос № 122.144
Помогите кто-нибудь! как загрузить картинку на ФОРМУ, чтоб ну требывалось её наличия в Bin, если программу открывать потом на др компьютере. только. пожалуйста. очень подробно объясните и понятно! у меня стоит delphi7
и меня ещё интересует еткст самой программы для загрузки этой картинки на форму! Спасибо заранее
Отправлен: 07.02.2008, 20:23
Вопрос задала: Надежда Сергеевна (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: BlackRaider
Здравствуйте, Надежда Сергеевна!
Самый простой вариант!
КИДАЕМ НА ФОРМУ компонент. TImage в нем жмем на свойство Picture и выбираем картинку! Компилируем программу. все больше ни чего делать и не надо!
Можете проверить по размеру exe файла, он увеличится примрно на размер картинки.
Ответ отправил: BlackRaider (статус: 3-ий класс)
Ответ отправлен: 07.02.2008, 20:31
Оценка за ответ: 3
Комментарий оценки:
ёпрст, мне на форму картинка грузиться должна, или как вам пороще- картинка дожна быть не на image , а на форме!!!!!!!!!!!!!!!!

Отвечает: UnReal
Здравствуйте, Надежда Сергеевна!
Не знаю, насколько точно понял Вашу идею. Можно разместить на форме TImage, загрузить изображение (как Вам подсказали выше), сделать компонент невидимым и в OnPaint добавить следующее:

procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Canvas.Draw(0,0,Image1.Picture.Graphic);
end;
---------
Cogito, ergo sum (c) R. Descartes (1596-1650)
Ответ отправил: UnReal (статус: 3-ий класс)
Ответ отправлен: 08.02.2008, 03:45

Отвечает: Genia007
Здравствуйте, Надежда Сергеевна!
Попробуйте вот этот код, он должен вам подойти, только картинка должна быть bmp, либо её нужно переконвертировать вbmp:
procedure TForm1.Button9Click(Sender: TObject);
var bitmap:TBitmap;
begin
bitmap:=Tbitmap.Create;
bitmap.LoadFromFile('E:Documents and SettingsЖеняРабочий столНовая папка (5)adkitty3.bmp');
form1.Canvas.Draw(0,0,bitmap);\ 0,0, координаты вывода верхнего левого угла картинки
bitmap.Free;
end;
Ответ отправил: Genia007 (статус: 6-ой класс)
Ответ отправлен: 08.02.2008, 12:01


Вопрос № 122.211
Здравствуйте, уважаемые эксперты! У меня есть вопрос: Как в RichEdit Всавить перед и после выделеного слова какой-то текст. Буду очень благодарен за ответ!
Отправлен: 08.02.2008, 11:48
Вопрос задал: OlegG. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Drbear
Здравствуйте, OlegG.!

Можно использовать такой вариант (в приложении). Текст для вставки берется из
Edit1. Запоминаем текущую позицию курсора и выделения. Вставляем текст. Восстанавливаем выделение.

Приложение:

Ответ отправил: Drbear (статус: 6-ой класс)
Ответ отправлен: 08.02.2008, 12:16
Оценка за ответ: 5
Комментарий оценки:
спасибо

Отвечает: Selya
Здравствуйте, OlegG.!
Если слово выделено, но позиция начала его выделения:
RichEdit1.SelStart
Конец его выделения:
RichEdit1.SelStart + Length()

Приложение:

Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 08.02.2008, 12:47


Вопрос № 122.221
Здравствуйте, уважаемые эксперты! У меня есть ещё 1 вопрос: Как в RichEdit курсор автоматически установить при запуске программы в 11 Строку.
Заранее спасибо!
Отправлен: 08.02.2008, 13:53
Вопрос задал: OlegG. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Selya
Здравствуйте, OlegG.!
Попробуйте так:
var
PosReturn: Integer;
begin
PosReturn := Pos(RichEdit1.Lines.Text, RichEdit1.Lines[11]);
RichEdit.SelStart := PosReturn;
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 08.02.2008, 14:03
Оценка за ответ: 4


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное