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

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

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

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
RomanTim
Нет SpeedButton
 
     Если конкретно, то мне нужно следующее. У меня на форме 3 кнопки TSpeedButton и все они привязаны через свойство DropDownMenu к одному меню. Вопрос как узнать что нажатие на кнопку 1 вызвало появление меню, а не 2 или 3????
Пока вижу единственный выход сделать 3 компанента меню, т.е. свой для каждой из кнопок. Вопрос, в том что менюшки для всех кнопок идентичны и мне кажется что есть еще какой-то способ.
    Пробовал событие OnClick кнопки, но оно не генерица при нажатии на дополнительную кнопку которая раскрывает меню

Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 12:48 16-01-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YFred
Какая версия делфи? В D10 нет у SpeedButton свойства DropDownMenu (и вообще ничего с таким именем в модуле Buttons)
Но раз есть, попробуй у PopupMenu в OnPopup посмотреть PopupComponent - в случае ToolButton он указывает на конкретную кнопку

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 13:39 16-01-2007
YFred



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

Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 14:34 16-01-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YFred
И в ней не нашел... Если не лень - кинь кусок делфийского модуля (по идее Buttons.pas) с описанием твоего TSpeedButton, прямо таки интересно

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 14:58 16-01-2007
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2Polkan
могу кинуть метадичку по которой мы, в прошлом году, в инсте, эту тему проходили... пиши пм

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 16:12 16-01-2007
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
RomanTim
Ты прав у компанента TSpeedbutton нет такого свойства, просто я использовал компанент TsSpeedButton думал что у TSpeedbutton свойство такое тоже есть, оказалось нет. Свою задачу решил через свойство PopupComponent компанента PopupMenu.
 
У меня другая проблема нарисовалась я в обработчике события onClick компанента TPopupMenu пишу следующее:
var
   i:integer;
begin
  if TMenuItem(Sender).Name='pm1' then i:=1;
  if TMenuItem(Sender).Name='pm2' then i:=2;
end;
 
В итоге когда я выбираю подпункт например pm1, проверяю значение TMenuItem(Sender).Name оно на самом деле равно 'pm1', но значение i:=1 не пресваивается. Даже не могу понять в чем проблема.
Кстати создал новый проект и смоделировал такую же ситуацию все работает нормально, может глюк Delphi  или проблема в проекте????

Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 09:38 17-01-2007
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YFred
Уберите в опциях компилятора оптимизацию
и еще раз пройдитесь в диалоговом отладчике.
 
Не следует упоминать о глюках Delphi без серьезного предварительного разбора.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 12:46 17-01-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YFred
Может имя компонента в другом регистре? Попробуй не  
  if TMenuItem(Sender).Name='pm1' then
а  
  if Sender = pm1 then
 

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 13:20 17-01-2007
JonyBes

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Надо вычислить последнюю букву в слове, убрать ее и подставить другую.
Подскажите с чего начать?

Всего записей: 371 | Зарегистр. 29-11-2004 | Отправлено: 15:00 17-01-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YFred  
установи в менюитемах свойство Tag и пиши
 
i:=(Sender as TMenuItem).Tag;
 
JonyBes  
var slovo:string; bukva:char;
...
slovo[length(slovo)]:=bukva;

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 15:48 17-01-2007
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oan42
а зачем нужна эта оптимизация?, расскажи в двух словах или подкинь ссылку почитать

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 16:07 17-01-2007
JonyBes

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RostY
Спасибо сделал так:
S := Copy(slovo,1,Lenght(slovo)-1) + bukva;

Всего записей: 371 | Зарегистр. 29-11-2004 | Отправлено: 16:14 17-01-2007
ZalivkoDenis



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
JonyBes
А вот так, если слово в предложении (само-собой -- можно упростить . Так просто понятней ):
 
function ChangeLastChar(InStr:string; SWord:string; NewLastChar:Char):string;
var
  PosLChar:Integer;
  Part1, Part2: String;
begin
  PosLChar := Pos(AnsiLowerCase(SWord),AnsiLowerCase(InStr));
  if PosLChar=0 then begin Result:=InStr;Exit; end;
  PosLChar := PosLChar+Length(SWord)-1;
  Part1:= Copy(InStr,1,PosLChar-1);
  Part2:= Copy(InStr,PosLChar+1,Length(InStr)-PosLChar);
  Result := Part1+NewLastChar+Part2;
end;
 
procedure TForm2.btn_RunClick(Sender: TObject);
begin
  // Text = "Теория без практики мертва";
  edt_Sentence.Text:=ChangeLastChar(edt_Sentence.Text,'практики','a');
  // Text = "Теория без практикa мертва";
end;

Всего записей: 537 | Зарегистр. 06-10-2005 | Отправлено: 16:15 17-01-2007
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объявляю переменную Vars.Value['ABCD'] :=0.8;
При компилляции ошибка. Не совпадение типов interger  и  extended.  
Как правильно написать?
 

Всего записей: 331 | Зарегистр. 12-06-2001 | Отправлено: 00:19 18-01-2007
FRALX

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND
А где собственно обявление переменной ?
Что такое Vars ?

Всего записей: 110 | Зарегистр. 15-12-2005 | Отправлено: 01:38 18-01-2007
cyberlv2

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья, не подскажите-ли линк на ветку, где в шапке были выложены компоненты для Дельфи?
Интересует компонент - Браузер с поддержкой cookie.
Он стоил 190 баков.  
Когда-то натыкался на эту ветку, сейчас найти не могу.

Всего записей: 11 | Зарегистр. 10-03-2003 | Отправлено: 12:18 18-01-2007
Figaro2000

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cyberlv2
Коммерческие компоненты и утилиты для Delphi/BCB
хттп://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=32815#1

Всего записей: 245 | Зарегистр. 24-09-2005 | Отправлено: 12:36 18-01-2007
cyberlv2

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

Цитата:
Коммерческие компоненты и утилиты для Delphi/BCB  
хттп://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=32815#1

Огромное спасибо!

Всего записей: 11 | Зарегистр. 10-03-2003 | Отправлено: 12:43 18-01-2007
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andead
Оптимизация объектного кода нужна, чтобы программа была быстрее и меньше по объему.
Виды оптимизации:
  • placing variables in CPU registers;  
  • eliminating common subexpressions;
  • generating induction variables;
  • и  т.п.
     
    Отключают оптимизацию обычно в двух случаях:
  • отладка без помех для команды отладчика Evaluate/Modify (Ctrl+F4)
    (нельзя посмотреть значение локальной переменной (в т.ч. через Self),  
    когда прошли по шагам дальше, чем нужна эта переменная).
  • при использовании MemCheck рекомендуется отключать оптимизацию,  
    правда не знаю зачем. Я не заметил разницы с т.зр. выдаваемой информации.  

  • Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 16:48 18-01-2007
    YFred



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Спасибо RostY
    сделал так:

    Цитата:
    i:=(Sender as TMenuItem).Tag;


    Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 21:00 18-01-2007
       

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
    ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru