Вопрос № 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
Отвечает: Архангельский Андрей Германович
Здравствуйте, Надежда Сергеевна!
1) Положите на форму компонент TImageList
- Кликните на нем правой кнопкой мыши и в появившемся меню выберите ImageList Editor
- Добавьте нужные изображения.
Все остальные компоненты используют изображения из этого списка (если Вы его укажете) по номеру.
2) С кнопками нужно ловить событие по изменению размера формы, и в нем изменять размеры и положение кнопок.
--------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Отвечает: 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.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
и меня ещё интересует еткст самой программы для загрузки этой картинки на форму! Спасибо заранее
Отвечает: 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