Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tema
Тогда делай горячку, на запоминание хэндла активного окна, а полсе нажатия на кнопку вновь делай его активным и потом спустя секунду посылай текст

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:47 23-11-2004
Tema



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хмм.. Интересное предложение. Попробую сейчас... Расскажу. Всё сделал Всем спасибо.

Всего записей: 125 | Зарегистр. 10-11-2003 | Отправлено: 15:34 23-11-2004 | Исправлено: Tema, 02:24 11-01-2005
DGRADE



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Такой вот вопрос. Столкнулся с проблемой в компоненте Memo. Допустим у меня есть текстовый файл, в нем 3 строчки произвольной информации. Открываю файл, и хочу информацию отобразить на компоненте мемо. Проблема получилось такая, с помощью процедуры Read()я считываю первую строку, помещаю в инфу в строковую переменную, и помещаю из переменной в Memo1.Text(). затем, когда считывается следущая строка процедурой Readln, и помещаю в следущую строковую переменную, по идее она должна считать следущую строчку из файла. Затем я опять помещаю инфу из переменной в мемо.текст. Конечно, я не ожидаю, что он перейдет на новую строчку( хотелось бы узнать как это сделать), но уж то, что текст в компоненте мемо станет пуст я точно не ожидал.
Возможно написал слишком запутанно, я в этом деле еще начинающий.
Вот часть кода.
 
procedure TForm1.Button2Click(Sender: TObject);
var Buff1: String;
var I: integer;
begin
I:=0;
AssignFile(SomeFile,'c:\bd.txt') ;
Reset(SomeFile)   ;
while I < 5   do
begin
Readln(SomeFile, Buff1);
Memo1.:=Buff1;
I:=I+1;
end;
end;
PS Вариант уже слегка модифицирован циклом. Но результат тот же...

Всего записей: 148 | Зарегистр. 27-12-2004 | Отправлено: 23:44 10-01-2005
Dimonka



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DGRADE
Вся твоя программка вместится в одну строчку и без ошибок
 
Memo1.Lines.LoadFromFile(SomeFile);

Всего записей: 398 | Зарегистр. 03-01-2002 | Отправлено: 23:54 10-01-2005
DGRADE



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
[Error] Unit1.pas(46): Incompatible types: 'String' and 'Text'
Вот, что выдает при попытки скомпилировать такую строчку.

Всего записей: 148 | Зарегистр. 27-12-2004 | Отправлено: 00:05 11-01-2005
Z MeZe



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DGRADE

Цитата:
[Error] Unit1.pas(46): Incompatible types: 'String' and 'Text'  
Вот, что выдает при попытки скомпилировать такую строчку.

Ну, ессессно.
Dimonka имел в виду (как я понимаю) путь к самому файлу. Т.е. (из твоего прошлого случая):
Memo1.Lines.LoadFromFile('c:\bd.txt');
А ошибка правильная. Ты же вместо типа string, подсовывал в LoadFromFile переменную типа TextFile или ему подобные.
А так Dimonka прав - все твое вышеописанное укладывается в одну строку:
Memo1.Lines.LoadFromFile(путь к файлу);

Всего записей: 455 | Зарегистр. 09-02-2004 | Отправлено: 00:18 11-01-2005
Tema



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Memo1.Lines.LoadFromFile(путь к файлу);

я бы сказал имя файла с путём или без(зависит от того, где файл лежит)
Но ты я думаю уже понял..
 
2 DGRADE:
В принципе, если тебе приспичило делать так, да и на будущее:
 
I:=0;  
AssignFile(SomeFile,'c:\bd.txt') ;  
Reset(SomeFile)   ;  
Memo1.Lines.Clear; //Очистить мемо
while I < 5   do  
begin  
Readln(SomeFile, Buff1);  
Memo1.Lines.Append(Buff1); //добавить строку
I:=I+1;  
end;  
end;

Всего записей: 125 | Зарегистр. 10-11-2003 | Отправлено: 02:24 11-01-2005
DGRADE



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот спасибо, просто я в основном буду не с текстовыми файлами работать.
ЗЫ А Аппенд это переход на новую строку?

Всего записей: 148 | Зарегистр. 27-12-2004 | Отправлено: 21:56 11-01-2005
Z MeZe



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DGRADE

Цитата:
ЗЫ А Аппенд это переход на новую строку?

...  ->
Цитата:
Memo1.Lines.Append(Buff1); //добавить строку

Вроде как Tema доступно описал.
 
по хелпам бы полазал:

Цитата:
 
procedure Append(const S: string);
Append is the same as the Add method, except that it does not return a value. Use Append when there is no need to know the index of the string after it has been added, or with descendants of TStrings for which the index returned is not meaningful.  
For example, the TStrings descendant used by memo objects uses an index to determine where to insert a string, but the inserted string does not necessarily end up as a single string in the list...
 

Всего записей: 455 | Зарегистр. 09-02-2004 | Отправлено: 00:40 12-01-2005
Tema



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вот спасибо, просто я в основном буду не с текстовыми файлами работать.

)))))))))))))
Ну и что, что не с текстовыми?
Если у тя файл называется, например, myfile.uyh, то так и пиши:

Код:
Memo1.Lines.LoadFromFile('myfile.uyh');

или полный путь, если файл не в директории программы:

Код:
Memo1.Lines.LoadFromFile('C:\ANYPAPKA\myfile.uyh');

))))
Процедура Append для других целей вобще-то! Напиример, чтобы лог программы писать и т.п.
И, кстати, верно подмечено Z MeZe, юзай хелп...
Когда тебе так всё объяснили, ты, чаще всего, будешь слышать на новые вопросы по этой же теме буквы RTFM...
Купи Архангельского, если действительно хочешь научиться.

Всего записей: 125 | Зарегистр. 10-11-2003 | Отправлено: 10:05 12-01-2005 | Исправлено: Tema, 10:06 12-01-2005
DGRADE



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо за ответы и советы. Я на Дельфи долго не задержусь, просто было задание написать пару программок, а так я на си++ учусь программировать. Насчет документаций и книг, тут где я живу их не купить. А вобщем то в хелпах, во всяком случае родных не всегда есть то, что надо, или во всякмо случае описывается плохо и не наглядно.
 
Кстати насчет не текстовых, я не много не понял. То есть если у меня файл абсолютно другого формата, то указывать то же как текстовый? Или я чего то сам не понимаю...
Ладно больше офтопить не буду, все, что надо было узнал.

Всего записей: 148 | Зарегистр. 27-12-2004 | Отправлено: 18:40 12-01-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

Ошибаешься, там есть многое из того, что надо и причем достаточно понятно. Просто прежде чем читать хелпы, надо просто немного изучить азы программирования.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:12 13-01-2005
Rew



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня вопросики:  
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", то выходит из программы, а не из мессаги.)

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
>Ну тут продвинутые порграммисты поймут мой вопрос.  
>(Поясню. При нажатии на 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 - точно не помню, но суть такова
 
 

Всего записей: 308 | Зарегистр. 02-09-2004 | Отправлено: 22:54 23-01-2005
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
решил здесь спросить, а то что-то нигде и никак...
 
сам я в api и vcl не очень-то, так что помогайте...
 
1)
 
какими компами можно (лучше всего) сделать _хидеры_ к сайд-бар панелям типа вот таких:
 
садебар по Ф9 в мозилле
 
   
 
 
садебар по Ф4 в тундербеде
 
   
 
т.е. то, где написано sidebar и addressbook, с сlose/min буттонами
?
 
сорсы к мозилле не предлагать (гы), у них на собственных вингаджетах все сделано,
уже посмотрел...  
 
2)
такой вот вопрос
 
хочу использовать свою цветовую схему в арр на Д7...
не хочу скинов и прочих наворотов, просто цвет и ничего более...
но так, чтобы иметь возможность менять цвет _всего_ даже у простого бевела...
 
что присоветует уважаемое сообщество?
 
3)
как вот такую панельку (в самих дельфях такая тоже есть) сделать?
 
   
 
желательно самыми минимальными средствами, без использования библиотек монстров типа ДевЭкспресса...
 
 
спасибо...

Всего записей: 25646 | Зарегистр. 06-12-2002 | Отправлено: 23:47 23-01-2005 | Исправлено: akaGM, 23:49 23-01-2005
Rew



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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 пока нечего не выходит.

Всего записей: 823 | Зарегистр. 12-05-2004 | Отправлено: 00:42 24-01-2005
Tema



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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;  

 
2. Правильно тебе YurikGL сказал! RTFM! man CanClose!

Код:
 
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
 
begin
  if MessageDlg('Close the form?', mtConfirmation,
    [mbOk, mbCancel], 0) = mrCancel then
     CanClose := False;
end;
 

Rew, очень рекомендую эту ссылку: http://www.rsdn.ru/Info/Howtoask.xml
 
2 akaGM
Посмотри компоненты CoolBar, ControlBar
А для окошка - это драг энд дроп вроде. Очень похоже по крайней мере.
 
 
Добавлено:

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

Не понимаю в чём сложность....
Храни все цвета в каком нибудь файле. И при запуске программы читай их оттуда. А для редактирования сделай доп. формочку.

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
>  if MessageDlg('Close the form?', mtConfirmation,  
>    [mbOk, mbCancel], 0) = mrCancel then  
>     CanClose := False;  
 
тогда уж
CanClose := not (MessageDlg('Close the form?', mtConfirmation,     [mbOk, mbCancel], 0) = mrCancel)

Всего записей: 308 | Зарегистр. 02-09-2004 | Отправлено: 08:54 24-01-2005
Rew



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
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.


Всего записей: 823 | Зарегистр. 12-05-2004 | Отправлено: 15:14 24-01-2005
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tema

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

Цитата:
 

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

 
Не понимаю в чём сложность....
 

или я ничего не понимаю или я плохо спросил или одно из двух...
 
чтобы поменять, например, цвет каптиона основной формы, я должен прибегнуть к разного рода ухищрениям типа перехвата отрисовки окна и тд
тоже самое касается и всех остальных контролов, цвета кот. вообще-то задаются системной виндовской палитрой...
ведь, например, clBtnFace -- это ссылка на цвет системной палитры, а не сам цвет...
 
так вот вопрос:
как (самым простым способом) рисовать форму/контролы _своими_ цветами?
 
или может быть так:
как поменять системную палитру _только_ для моего окна?
 
теперь вроде понятнее изложил...

Всего записей: 25646 | Зарегистр. 06-12-2002 | Отправлено: 16:54 24-01-2005
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru