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

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

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

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

   

Asm64D



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

Цитата:
Kardinalli

при работе с кодом нажми F12 - это вызов редактора, если не появился, то
1) Вы уверены что в программе есть форма?
2) Вы открыли файл с расширением *.dpr?
3) Вы правильно создали проект см. рисунок
4) Вы читали книги по Delphi?

Всего записей: 1312 | Зарегистр. 24-02-2008 | Отправлено: 21:20 01-04-2009
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Asm64D
Ну вы уж совсем.
Я же ясно сказал - дистрибутив оказался битым.  Что непонятного?

Всего записей: 705 | Зарегистр. 22-10-2006 | Отправлено: 22:27 01-04-2009
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TStringGrid как получить значение ячейки по которой кликнул юзер?
 
procedure TForm1.strngrd1SelectCell(Sender: TObject; ACol, ARow: Integer; var
    CanSelect: Boolean);
begin
   := (Sender as TStringGrid).Cells[ACol, ARow];
end;
так ?

Всего записей: 2941 | Зарегистр. 10-04-2003 | Отправлено: 09:49 02-04-2009 | Исправлено: svs123456789, 09:59 02-04-2009
SerGap



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго дня. Может кто подскажет как в runtime прикрутить к RibbonComboBox новый пункт меню и повесить на него какое-либо действие, т.е. чтобы при выборе данного пункта - выполнился бы нужный код ?

Всего записей: 541 | Зарегистр. 21-12-2008 | Отправлено: 10:10 02-04-2009
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в рантайм помещаю данные в TStringGrid, как масштабировать ширину столбцов, что б данные хорошо смотрелись?
 
во всяких EhLib есть параметры отечающие за автоподбор ширины столбцов  ...
 
а как подбирать размер ячеек в TStringGrid ?

Всего записей: 2941 | Зарегистр. 10-04-2003 | Отправлено: 15:33 02-04-2009 | Исправлено: svs123456789, 15:36 02-04-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SerGap
Нужно создать новый Action:

Код:
  NewActn := TAction.Create(self);
  NewActn.Name := 'Action4';
  NewActn.OnExecute := Action1Execute;
  ActionManager1.AddAction(NewActn, ActionManager1.FindItemByAction(Action1));
Здесь Action1 - один из тех, которые уже находятся в нужном списке.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 15:55 02-04-2009
SerGap



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Большущее спасибо! Работает!

Всего записей: 541 | Зарегистр. 21-12-2008 | Отправлено: 21:17 02-04-2009
ShIvADeSt



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

Цитата:
во всяких EhLib есть параметры отечающие за автоподбор ширины столбцов  ...
 
а как подбирать размер ячеек в TStringGrid ?

Скорее всего ручками, при помощи GetTextExtentPoint32 получаешь длину и высоту текста для контекста (Canvas) грида, а потом увеличиваешь ширину столбца если он недостаточно широк.

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

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:38 03-04-2009
greenpc

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

Код:
 
     with StringGrid1 do  begin
      for x := 0 to ColCount - 1 do begin
        MaxWidth := 0;
        for y := 0 to RowCount - 1 do begin
          c_width := Canvas.TextWidth(Cells[x,y]);
          if c_width  > MaxWidth then MaxWidth := c_width ;
        end;
        ColWidths[x] := MaxWidth + 2;
      end;
    end;
 

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 11:05 03-04-2009 | Исправлено: greenpc, 11:10 03-04-2009
Aleksandr_N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по Delphi 2009
 
Решил посмотреть его в работе.
В ImageList есть возможность, в отличии допустим от Delphi 7, выбрать изображения формата PNG. Но у меня не поддерживается прозрачность. Может оно так и есть, может неправильно установил, или можно что-то сделать???
 
Спасибо.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 17:34 03-04-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr_N
C ColorDepth поэкспериментируйте.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 19:20 03-04-2009
Aleksandr_N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
 
Не срабатывает. При значении cdDeviceDependent - чёрный фон, при остальных - белый (не прозрачный).

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 00:56 04-04-2009 | Исправлено: Aleksandr_N, 00:56 04-04-2009
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr_N
Есть подозрение что выбрать форма и поддержать все его свойства не одно и тоже. Скорее всего при загрузке в ImageList png конвертируется в обычный битмап и все свойства пнгшки (прозрачность и прочее) теряются. Потому как насколько я помню у ImageList можно получить элемент только как TBitmap. Как вариант - конвертни png в битмап левый верхний пиксель - цвет прозрачности.

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

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:51 04-04-2009
Aleksandr_N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Наверное они действительно поленились в ImageList сохранять оригинальные форматы, а не конвертировать всё в Bitmap. А прозрачность PNG и прозрачный фон картинки в ImageList - разные вещи. Поправка: левый НИЖНИЙ угол...

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 11:18 04-04-2009 | Исправлено: Aleksandr_N, 11:24 04-04-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr_N
Еще раз, ставите ColorDepth=cd32Bit, заполняете png-шками. Еще можете DrawingStyle сделать dsTransparent. Все, после этого должно нормально рисоваться.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 12:40 04-04-2009
Aleksandr_N

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

Цитата:
Еще раз, ставите ColorDepth=cd32Bit, заполняете png-шками. Еще можете DrawingStyle сделать dsTransparent. Все, после этого должно нормально рисоваться.

 
Так вроде-бы  получилось. Короче чем выше версия, тем больше танцев с бубном...

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 11:44 06-04-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr_N
Просто VCL с каждым разом все сложнее. Одним ведь нужна совместимость, другим - новые фишки.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 13:32 06-04-2009 | Исправлено: Frodo_Torbins, 19:34 06-04-2009
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Други, помогите решить проблемку. Заключается она в том, что не могу ввести русские буквы с клавиатуры в компонент ESBPCSEdit из набора ESBPCS в портируемом на D2009 проекте, программно - всё ок. Вводимый символ обрабатывается так:

Код:
procedure TESBCustomEdit.KeyProcess (var Key: Char);
var
     fEnterAsTab: Boolean;
     fESCAsUndo: Boolean;
begin
     if (Key = #13) then
     begin
          Key := #0;
          if fEnterAsTab then
               SendMessage (GetParentForm (Self).Handle, WM_NEXTDLGCTL, 0, 0);
     end
     else if (Key = #27) and fEscAsUndo then
     begin
          Key := #0;
          Undo;
     end
     else if (Key = #14) and AllowKbdNull and not ReadOnly then
     begin
          SetNull (True);
          if Assigned (fOnNull) then
               fOnNull (Self);
          Key := #0;
     end
     else if Key = ^A then
     begin
          SelectAll;
          Key := #0
     end
     else if fValidChar <> [] then
     begin
          {$IFDEF D12AndAbove}
          if (Key >= #32) and not CharInSet (Key, fValidChar) then // <---
          {$ELSE}
          if (Key >= #32) and not (Key in fValidChar) then
          {$ENDIF}
          begin
               Key := #0;
               // MessageBeep (0);
          end
          {$IFDEF D12AndAbove}
          else if CharInSet (Key, fValidChar) then
          {$ELSE}
          else if (Key in fValidChar) then
          {$ENDIF}
          begin
               if fNull then
               begin
                    SetNull (False);
                    Clear;
               end;
          end
     end
     else if (Key >= #32) then
     begin
          Key := #0;
          // MessageBeep (0);
     end;
end;
 

 
К примеру,  была нажата русская "э", но она не проходит отмеченное условие
        if (Key >= #32) and not CharInSet (Key, fValidChar) then // <---
и в поле edit'a естественно ничего не выводится.
Здесь  
     fValidChar: TESBCharSet; // Set of Valid Characters for Keyboard Input
type
     // Set of Characters.
     TESBCharSet = set of AnsiChar;
 
Если поменять CharInSet (Key, fValidChar) на CharInSet (AnsiChar(Key), fValidChar), то с русскими lowercase символами становится все ок, но вот с uppercase что-то не то, вместо "ЙЦУКЕНГШЩЗХЪ" выводится "ЦУШЩХЪ".

Всего записей: 3762 | Зарегистр. 19-04-2005 | Отправлено: 16:03 06-04-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
CharInSet не предназначен для неанглийских букв. Если нужна проверка, то надо так.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 19:43 06-04-2009
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Спасибо, вот не знал, что CharInSet такой избирательный

Всего записей: 3762 | Зарегистр. 19-04-2005 | Отправлено: 20:31 06-04-2009
   

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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru