Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi

Автор: DGRADE
Дата сообщения: 12.01.2005 17:40
Спасибо за ответы и советы. Я на Дельфи долго не задержусь, просто было задание написать пару программок, а так я на си++ учусь программировать. Насчет документаций и книг, тут где я живу их не купить. А вобщем то в хелпах, во всяком случае родных не всегда есть то, что надо, или во всякмо случае описывается плохо и не наглядно.

Кстати насчет не текстовых, я не много не понял. То есть если у меня файл абсолютно другого формата, то указывать то же как текстовый? Или я чего то сам не понимаю...
Ладно больше офтопить не буду, все, что надо было узнал.
Автор: ShIvADeSt
Дата сообщения: 13.01.2005 02:12

Цитата:
А вобщем то в хелпах, во всяком случае родных не всегда есть то, что надо, или во всякмо случае описывается плохо и не наглядно.

Ошибаешься, там есть многое из того, что надо и причем достаточно понятно. Просто прежде чем читать хелпы, надо просто немного изучить азы программирования.
Автор: Rew
Дата сообщения: 23.01.2005 20:41
У меня вопросики:
1.

Цитата:
procedure TForm5.Button3Click(Sender: TObject);
begin
if RadioButton1.Checked then
RadioButton1.Caption:='Да';
RadioButton2.Caption := 'Нет';
if RadioButton2.Checked then
RadioButton1.Caption:='Конечно ';
RadioButton2.Caption := 'Разумеется';

end;


Ну тут продвинутые порграммисты поймут мой вопрос.
(Поясню. При нажатии на Button3, то всё время в Caption ставятся "Конечно" и "Разумеется")

2.

Цитата:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
messageDLG ('Вы действительно хотите выйти'', mtConfirmation, [mbYes, mbNo] , 0 );
end;

end.

Хочу, чтобы при нажатии на кнопку "No" из программы не выходил, а только уничтожал саму мессагу. (По умолчанию если нажать на кнопки "Yes" и "No", то выходит из программы, а не из мессаги.)
Автор: YurikGL
Дата сообщения: 23.01.2005 21:54
>Ну тут продвинутые порграммисты поймут мой вопрос.
>(Поясню. При нажатии на Button3, то всё время в Caption ставятся "Конечно"
>и "Разумеется")

В чем вопрос то? Может нужно

if RadioButton1.Checked then RadioButton1.Caption:='Да'
else RadioButton2.Caption := 'Нет';
if RadioButton2.Checked then RadioButton1.Caption:='Конечно '
else RadioButton2.Caption := 'Разумеется';



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
messageDLG ('Вы действительно хотите выйти'', mtConfirmation, [mbYes, mbNo] , 0 );
end;

Во первых, отрабатывать OnColseQuery (или что-то в этом роде)
Во вторых в этом событии
canClose:=(messageDLG ('Вы действительно хотите выйти'', mtConfirmation, [mbYes, mbNo] , 0 )=mrYes);
а может и=mrNo - точно не помню, но суть такова


Автор: akaGM
Дата сообщения: 23.01.2005 22:47
решил здесь спросить, а то что-то нигде и никак...

сам я в api и vcl не очень-то, так что помогайте...

1)

какими компами можно (лучше всего) сделать _хидеры_ к сайд-бар панелям типа вот таких:

садебар по Ф9 в мозилле




садебар по Ф4 в тундербеде



т.е. то, где написано sidebar и addressbook, с сlose/min буттонами
?

сорсы к мозилле не предлагать (гы), у них на собственных вингаджетах все сделано,
уже посмотрел...

2)
такой вот вопрос

хочу использовать свою цветовую схему в арр на Д7...
не хочу скинов и прочих наворотов, просто цвет и ничего более...
но так, чтобы иметь возможность менять цвет _всего_ даже у простого бевела...

что присоветует уважаемое сообщество?

3)
как вот такую панельку (в самих дельфях такая тоже есть) сделать?



желательно самыми минимальными средствами, без использования библиотек монстров типа ДевЭкспресса...


спасибо...
Автор: Rew
Дата сообщения: 23.01.2005 23:42
YurikGL


Цитата:
procedure TForm1.Button2Click(Sender: TObject);
begin
if RadioButton1.Checked then RadioButton1.Caption:='Да'
else RadioButton2.Caption := 'Нет';
if RadioButton2.Checked then RadioButton1.Caption:='Конечно'
else RadioButton2.Caption := 'Разумеется';
end;

end.

Если ставлю галочку на RadioButton1. и нажимаю на Button3 то в RadioButton1.Caption:='Да'
а в RadioButton2.Caption:= "Разумеется"
А если поставить галочку на RadioButton2. и нажать на Button3, no в RadioButton1.Caption:= 'Конечно'
а в RadioButton2.Caption := 'Нет'

Мне надо:
1.Когда я ставлю галочку на RadioButton1 и нажимаю Button3, то RadioButton1.Caption:='Да' а в RadioButton2.Caption:= 'Нет'
2. Когда я ставлю галочку на RadioButton2 и нажимаю Button3, то RadioButton1.Caption:='Конечно' а в RadioButton2.Caption:= 'Разумеется'

А с message пока нечего не выходит.
Автор: Tema
Дата сообщения: 24.01.2005 03:50
2 Rew


Так:

Код: procedure TForm5.Button3Click(Sender: TObject);
begin
if RadioButton1.Checked then
begin
RadioButton1.Caption:='Да';
RadioButton2.Caption := 'Нет';
end;
if RadioButton2.Checked then
begin
RadioButton1.Caption:='Конечно ';
RadioButton2.Caption := 'Разумеется';
end;

end;
Автор: YurikGL
Дата сообщения: 24.01.2005 07:54
> if MessageDlg('Close the form?', mtConfirmation,
> [mbOk, mbCancel], 0) = mrCancel then
> CanClose := False;

тогда уж
CanClose := not (MessageDlg('Close the form?', mtConfirmation, [mbOk, mbCancel], 0) = mrCancel)
Автор: Rew
Дата сообщения: 24.01.2005 14:14

Цитата:
Tema
procedure TForm1.Button1Click(Sender: TObject);
begin

if RadioButton1.Checked then
begin
RadioButton1.Caption := 'Да';
RadioButton2.Caption := 'Нет';

if RadioButton2.Checked then
begin
RadioButton1.Caption := 'Конечно';
RadioButton2.Caption := 'Разумеется';

end;

end.


Ошибка. Курсор устанавливается в конце - end. (После точки)

2. Tema
YurikGL
Первывй и второй вариант отлично работают. Спасибо.

Добавлено:
Спасибо. Уже не надо. Вот так надо было:

Цитата:
procedure TForm1.Button1Click(Sender: TObject);
begin

if RadioButton1.Checked then
begin
RadioButton1.Caption := 'Да';
RadioButton2.Caption := 'Нет';
end;
if RadioButton2.Checked then
begin
RadioButton1.Caption := 'Конечно';
RadioButton2.Caption := 'Разумеется';
end;

end;

end.

Автор: akaGM
Дата сообщения: 24.01.2005 15:54
Tema

Цитата:
Посмотри компоненты CoolBar, ControlBar
А для окошка - это драг энд дроп вроде. Очень похоже по крайней мере.


можно чуть подробнее? кто и на что похож? чем они мне помогут?


Цитата:


Цитата: хочу использовать свою цветовую схему в арр на Д7...


Не понимаю в чём сложность....
Автор: Tema
Дата сообщения: 24.01.2005 16:07
Rew

Цитата:
Ошибка. Курсор устанавливается в конце - end. (После точки)

Ты не правильно переписал мой код: Забыл ещё один end. Посмотри внимательно.
Автор: YurikGL
Дата сообщения: 24.01.2005 16:24
>ведь, например, clBtnFace -- это ссылка на цвет системной палитры, а не сам цвет...

Там, где ты задаешь clBtnFace что тебе мешает clBlack задать?
Автор: akaGM
Дата сообщения: 24.01.2005 16:31
там где я сам задаю цвет у меня вопросов не возникает...
что вы придираетесь? я непонятно спрашиваю?

замени цвет заголовка окна штатными средствами...
Автор: Tema
Дата сообщения: 24.01.2005 16:42
akaGM

Цитата:
или может быть так:
как поменять системную палитру _только_ для моего окна?

Теперь понятен вопрос... Хммм..
С ходу в голову ничего не приходит... Можно покопаться в хелпе. Думаю там можно найти про это.
Но если это всё-таки затруднительно, то можно и извратиться. Просто рисовать свою форму:
Делаешь BorderStyle=None
И рисуешь на ней с помощью Shape заголовок формы с кнопками закрыть, развернуть и т.д. Вот и всё
Автор: YurikGL
Дата сообщения: 24.01.2005 16:42
>замени цвет заголовка окна штатными средствами...

Извиняюсь, не правильно понял вопрос.

Насколько я знаю, прорисовкой заголовка окна занимается сам виндовс т.к. если запустить текстовое приложение, то у него заголовок тоже будет. Штатные средства вряд ли есть.
Только если сделать borderstyle в none а заголовок какой-нибудь панелькой изобразить.
Автор: Tema
Дата сообщения: 24.01.2005 16:44
ЗЫ
akaGM
насчёт вопросов рекомендую ту же ссылку, что и Rew:
http://www.rsdn.ru/Info/Howtoask.xml
А то я реально сразу не воткнул о чём ты


Добавлено:
YurikGL
Гыгыгы... Одинаковые мысли бывают у дураков и влюблённых! Ты кто из них?
))))))))))))))))
Автор: akaGM
Дата сообщения: 24.01.2005 16:48
это только форма...
а вот бевелед контрол как?

ладно...
пошел дальше расцвечивать с помощью БуизнессФормы & ThemeEngine...
Автор: Tema
Дата сообщения: 24.01.2005 16:54
akaGM

Цитата:
а вот бевелед контрол как?

Нарисуй свой с помощью Shape. Слушай, пиши нормальные названия! Я чуть не пёрнул, когда увидел название
Цитата:
бевелед контрол
Думал, что совсем Дельфи забыл! Тебе понравится, если мы будем тебе отвечать:
Возми форм, измени бордер на ноне и потом шейпом изобрази батоны стандартные и у шейпов можешь указывать любые колоры.
Автор: akaGM
Дата сообщения: 24.01.2005 16:59
виноват, исправлюсь...

хотя то, что ты сказал -- все понятно... а заодно и смешно...

// БуизнессФорм == BusinessSkinForm
Автор: Tema
Дата сообщения: 24.01.2005 17:09
akaGM
Может и смешно, но расшифровывать лень.
Здесь ведь подразумевается быстрый ответ, если он сразу известен, а когда тратишь время на попытки воткнуть о чём сказал собеседник это огорчает.
Автор: Rew
Дата сообщения: 24.01.2005 17:35
Tema

Цитата:
Ты не правильно переписал мой код: Забыл ещё один end. Посмотри внимательно.

А мне кажется, ты только что отредактировал своё сообщение и добавил end;
Я твой текст копировал и вставлял в Delphi. Была ошибка.
Автор: Tema
Дата сообщения: 24.01.2005 17:50
Rew

Цитата:
А мне кажется, ты только что отредактировал своё сообщение и добавил end;
Я твой текст копировал и вставлял в Delphi. Была ошибка.

Ну ты и наглец!


Цитата:
Всего записей: 44 | Зарегистр. 10-11-2003 | Отправлено: 03:50 24-01-2005

Где же здесь слово "Исправлено: ..."?

Вот так выглядит, когда редактировалось:


Цитата:
Всего записей: 370 | Зарегистр. 12-05-2004 | Отправлено: 20:41 23-01-2005 | Исправлено: Rew, 20:42 23-01-2005


Ты хоть разберись сначала, а потом уже возникай! Свою собственную невнимательность на других не перекладывай!
Автор: Rew
Дата сообщения: 24.01.2005 17:59
Tema
Ладно, ты не кипятись! Спасибо за помощь!

Добавлено:
Tema, YurikGL and All

Цитата:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin
if MessageDlg('Close the form?', mtConfirmation,
[mbOk, mbCancel], 0) = mrCancel then
CanClose := False;
end;

и

Цитата:
CanClose := not (MessageDlg('Close the form?', mtConfirmation, [mbOk, mbCancel], 0) = mrCancel)

Это для события FormCloseQuery. А вот как будет для Button1? Нет же такого:
ButtonCloseQuery
Ну думаю понятен мой вопрос.
Автор: Tema
Дата сообщения: 24.01.2005 19:53
Rew
RTFM
Автор: Rew
Дата сообщения: 24.01.2005 20:24
Tema

Цитата:
RTFM

А что это?
Автор: akaGM
Дата сообщения: 24.01.2005 20:38
гы

Rew and Tema are Full Members
или Friends?

вообще-то
"Читай зе Траханный Мануал"
"документацию читай" в общем...

не пинайте за флуд...
Автор: ShIvADeSt
Дата сообщения: 25.01.2005 02:09
Rew
Tema
Народ во первых поменьше выражения типа
Цитата:
Я чуть не пёрнул, когда увидел название
в крайнем случае подобное в ПМ. Далее по теме, чтобы изменить цвет заголовка формы можно использовать RxGradientCaption из библиотеки RXLib поиск в гугле по названию.

Цитата:
А вот как будет для Button1? Нет же такого:
ButtonCloseQuery

Вопрос мягко говоря происходит от незнания предмета. Обработка события OnClick для данной кнопки там пишет

Цитата:
begin
if MessageDlg('Close the form?', mtConfirmation,
[mbOk, mbCancel], 0) = mrOK then
Form1.Close else Exit;
end;

И все. Просто нафига кнопке событие OnCloseQuery, много ли извращенцев, которые будут делать Close самой кнопке.
Автор: Rew
Дата сообщения: 25.01.2005 09:35
ShIvADeSt

Цитата:
begin
if MessageDlg('Close the form?', mtConfirmation,
[mbOk, mbCancel], 0) = mrOK then
Form1.Close else Exit;
end;

Благадарю. Работает. Можно ещё вопросики? (А то вообще не спрашивают тут.)
1. Есть Form1 и Form2. На Form1 есть кнопка Закрыть, а Form2 пустая.
Как мне сделать, когда я нажму на кнопку "Закрыть", то Form1 удаляется (исчезает из памяти) и появляется Form2.
Вот как я порбовал:


Цитата:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Close;
Form2.Show;

end;

end.

Работает. Нажимаю На кнопку и Form закрывается а вторая форма не появляется и заканчивается процесс.

Вот так Появляется форма вторая, но из памяти не выходит.


Цитата:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Free;
Form2.Show;

end;

end.


2. Что вы мне посоветуете? Если у меня есть RadioButton1 и RadioButton2 и при нажатии на кнопку меняется.
Например Если checked RAdioButton1 тогда
Появляется новая форма и на той форме меняется текст в RadioButton1 и в RadioButton2. Потому что мне где-то пять раз надо менять текст.
Типа мне создать пять форм?
Автор: YurikGL
Дата сообщения: 25.01.2005 09:59
>Как мне сделать, когда я нажму на кнопку "Закрыть",
>то Form1 удаляется (исчезает из памяти) и появляется Form2.

Для этого необходимо иметь еще и Form3 которую назначить главной формой.

Когда ты закрываешь главную форму завершается все приложение. Сейчас у тебя главная форма - Form1
Автор: Tropin
Дата сообщения: 25.01.2005 10:29

Цитата:
1. Есть Form1 и Form2

не так все просто....
Form1 - главная форма и неразрывно связана с главным процессом... поэтому нужно делать отдельную (невидимую) главную форму, а Form1 и Form2 генерировать в программе...


Добавлено:
YurikGL пардон, не смотрю.. ;)


Цитата:
2. Что вы мне посоветуете?

Посоветую поподробней (попонятней :) объяснить что именно надо....
А впринципе можно создать 5 форм, можно создать и одну.... тут вопрос в оптимальности будет...

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Вероятность одинакового CRC32


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.