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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 103 104 105 106 107 108 109 110 111

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Delphi 2009 и выше - по остальным версиям есть соответствующая тема.
Вопросы вареза здесь не обсуждаются !!!
См. также:
Известные важные баги Delphi 2010:

Описание________________________________________________ Исправлено Решение/Альтернатива_____________________
  1. Внимание !  Деинсталляция D2010 нарушает работу D2007 и D2009 !  
При деинсталляции удаляются CC3280MT.DLL и CC3290MT.DLL из Windows\System32,   необходимые для работы D2007 и D2009 соответственно.
Сделайте резервные копии
  2. Code Formatter не работает, если не инсталлирован пакет моделирования.   В нем также присутствует множество багов. Используйте с осторожностью.   1.   JEDI CodeFormat 2.44 SVN Snapshot (~750Kb)   Требуются JCL и JVCL  
2.GExperts with Formatter
  3. Не работает F1 в Object Inspector Update 2   IDEFixPack 2.9 от Andreas Hausladen
(dev. snapshots)
  4. Если IDE начинает падать с сообщением "Out of resources", возможно, что поврежден .res файл проекта. Удалить его, запустить IDE, открыть проект - новый .res файл будет создан автоматически.
  5. В редакторе не работает Class Completion, если в декларируемом классе есть поля с шаблонами. Перед декларированием поля добавить public или private и т.д.
  6. TTrayIcon.ShowBalloonHint() не работает на ОС ниже Vista [QC 77561] Update 2 * Установить Update 2   * ИЛИ почитать о причинах и решении проблемы на форуме embarcadero и в QC   * ИЛИ воспользоваться альтернативой, например Cooltray 4.4.0
  ...      


Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:28 26-08-2009 | Исправлено: data man, 18:27 06-08-2010
neznayka3

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
на всех диалоговых формах по 2 кнопки - "Сохранить" и "Отменить". народ хочет при добавлении  заказа сразу его распечатать. сейчас им надо сначала жать на "Сохранить" - при этом форма закроется, и только потом распечатать. если при печати сделаю сохранение данных, то смысл в кнопках "Сохранить" и "Отменить" теряется. как быть?  
 
можно сделать кнопку  "Сохранить" без закрытия формы, а  "Отменить" сменить на "Закрыть". можно как в 1С навешать кучу кнопок.  
 
Добавлено:
пока добавил
Код:
    if Application.MessageBox
      ('Перед печатью данные необходимо сохранить. Продолжить?', 'Печать',
      MB_ICONQUESTION + MB_YESNO) = IDYES then

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 08:52 27-08-2012
eddoc



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
neznayka3
можно добавить кнопку "печать", либо изменить текст запроса типа "Распечатать?" и оставить 2 кнопки "Да" и "Нет". Ведь по логике данные все равно должны сохраняться

Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 12:08 27-08-2012
Bonivur



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Где можно почитать на русском основы работы в FireMonkey? Например, интересую такие вопросы как - какие файлы нужны на компьютере конечного пользователя для запуска программы написанной с использованием FireMonkey, системные требования... Вобщем, любая полезная информация по данной библиотеке и принципы работы с ней.

----------
Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 22:07 01-09-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bonivur
По www.delphifeeds.ru поиском пройдитесь. Там было несколько серий от русскоязычных блогеров.
Правда сейчас уже читая такие статьи нужно оглядываться на XE3 с ее FireMonkey2.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 23:33 01-09-2012 | Исправлено: Frodo_Torbins, 23:37 01-09-2012
Bonivur



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

Цитата:
Правда сейчас уже читая такие статьи нужно оглядываться на XE3 с ее FireMonkey2

Вторая обезяна на подходе? )) Может так подождать ХЕ3 и уж покопаться тогда основательней... а то много отзывов что сыро всё весьма. Спасибо за ссылку!

----------
Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 00:16 02-09-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bonivur
Я думаю, что многие вещи останутся без особых внешних изменений, хотя внутри могут поменяться очень сильно. Особенно стоит обратить внимание на посты Всеволода Леонова. Как работник Эмбаркадеро, он наверняка заранее знал, что будет переделано, а что останется таким же, и темы для постов подбирал соответственно.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 00:47 02-09-2012 | Исправлено: Frodo_Torbins, 16:48 02-09-2012
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eddoc
 
Я писал когда-то небольшой модуль на тему красивых ресурсов. Для одной из предыдущих версий Дельфей. В последней, наверное, уже не надо так ухищряться.
 

Код:
//  Summary:
//    Модуль класса, расширяющего стандартный TImageList для корректной работы с
//    PNG-изображениями.
//  Copyright:
//    © 2011 R. O.
//  Version:
//    0.1
//  Remarks:
//    Расширение корректно работает только в Windows XP и более поздних версиях.
 
unit PImageList;
 
interface
 
uses
  Classes, SysUtils, Windows, Graphics, Controls, ImgList, CommCtrl, PngImage;
 
type
  TPImageList = class(TImageList)
    function AddPngFromResByID(ResID: integer): integer;
    function AddPngFromFile(const FilePath: string): integer;
    function AddPng(Png: TPngImage): integer;
  public
    constructor Create(AOwner: TComponent); override;
    constructor CreateCopy(AOwner: TComponent; ASource: TImageList);
  protected
    procedure DoDraw(Index: integer; Canvas: TCanvas; X, Y: integer;
      Style: cardinal; Enabled: boolean = true); override;
  end;
 
implementation
 
constructor TPImageList.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;
 
// Summary:
//    Конструктор копирования
constructor TPImageList.CreateCopy(AOwner: TComponent; ASource: TImageList);
begin
  inherited Create(AOwner);
  AllocBy := ASource.AllocBy;
  BkColor := ASource.BkColor;
  BlendColor := ASource.BlendColor;
  ColorDepth := ASource.ColorDepth;
  DrawingStyle := ASource.DrawingStyle;
  Height := ASource.Height;
  ImageType := ASource.ImageType;
  Masked := ASource.Masked;
  ShareImages := ASource.ShareImages;
  Width := ASource.Width;
  Tag := ASource.Tag;
  AddImages(ASource);
end;
 
//  Summary:
//    Перегруженная процедура, расширяющая базовую для корректной прорисовки
//    неактивных изображений.
procedure TPImageList.DoDraw(Index: integer; Canvas: TCanvas; X, Y: integer;
  Style: cardinal; Enabled: boolean);
var
  Options: TImageListDrawParams;
 
  function GetRGBColor(Value: TColor): cardinal;
  begin
    Result := ColorToRGB(Value);
    case Result of
      clNone:
        Result := CLR_NONE;
      clDefault:
        Result := CLR_DEFAULT;
    end;
  end;
 
begin
  if Enabled or (ColorDepth <> cd32Bit) then
    inherited
  else if HandleAllocated then
  begin
    FillChar(Options, SizeOf(Options), 0);
    Options.cbSize := SizeOf(Options);
    Options.himl := Self.Handle;
    Options.i := Index;
    Options.hdcDst := Canvas.Handle;
    Options.X := X;
    Options.Y := Y;
    Options.cx := 0;
    Options.cy := 0;
    Options.xBitmap := 0;
    Options.yBitmap := 0;
    Options.rgbBk := GetRGBColor(BkColor);
    Options.rgbFg := GetRGBColor(BlendColor);
    Options.fStyle := Style;
    Options.fState := ILS_SATURATE; // Grayscale for 32bit images
 
    ImageList_DrawIndirect(@Options);
  end;
end;
 
//  Summary:
//    Функция добавления изображения в формате PNG из ресурсов.
//  Params:
//    ResID - индекс изображения в ресурсах.
//  Returns:
//    Индекс первого нового изображения в случае успеха или -1 в случае провала.
function TPImageList.AddPngFromResByID(ResID: integer): integer;
var
  Png: TPngImage;
  ResStream: TStream;
  Bitmap: TBitmap;
begin
  ResStream := TResourceStream.CreateFromID(HInstance, ResID, RT_RCDATA);
  try
    Png := TPngImage.Create;
    try
      Png.LoadFromStream(ResStream);
      Bitmap := TBitmap.Create;
      try
        Bitmap.Assign(Png);
        Result := Add(Bitmap, nil);
      finally
        FreeAndNil(Bitmap);
      end;
    finally
      FreeAndNil(Png);
    end;
  finally
    FreeAndNil(ResStream);
  end;
end;
 
//  Summary:
//    Функция добавления изображения в формате PNG из файла.
//  Params:
//    FilePath - путь к файлу.
//  Returns:
//    Индекс первого нового изображения в случае успеха или -1 в случае провала.
function TPImageList.AddPngFromFile(const FilePath: string): integer;
var
  Png: TPngImage;
  Bitmap: TBitmap;
begin
  Png := TPngImage.Create;
  try
    Png.LoadFromFile(FilePath);
    Bitmap := TBitmap.Create;
    try
      Bitmap.Assign(Png);
      Result := Add(Bitmap, nil);
    finally
      FreeAndNil(Bitmap);
    end;
  finally
    FreeAndNil(Png);
  end;
end;
 
//  Summary:
//    Функция добавления изображения в формате PNG.
//  Params:
//    Png - изображение.
//  Returns:
//    Индекс первого нового изображения в случае успеха или -1 в случае провала.
function TPImageList.AddPng(Png: TPngImage): integer;
var
  Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    Bitmap.Assign(Png);
    Result := Add(Bitmap, nil);
  finally
    FreeAndNil(Bitmap);
  end;
end;
 
end.
 

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 16:16 02-09-2012
eddoc



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rrromano
Спасибо. Правда, для PNG изображений я пользую готовый PNGImage. Просто, в моем случае нужно нужно было в цикле перебрать картинки, а как их достать из PNGImageList я что-то не придумал (доки для этого компонента тоже не нашел) вот сохранить прозрачность фона при извлечении их из ImgList'а у мея пока не получилось
 
Добавлено: надо же, а ларчик просто открывался

Код:
PNGImgLst1.GetIcon(n,img1.Picture.Icon);

Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 00:23 03-09-2012 | Исправлено: eddoc, 12:09 03-09-2012
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eddoc
Вот и хорошо, что все получилось ).
Я скоро над новым проектом трудиться буду - вот и посмотрю, как все под ХЕ2 обстоит ).

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 15:19 03-09-2012
eddoc



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Win7 x64: чЮдеса в решете
 
В коде читаю ключик из реестра, помещаю его в эдит - все прекрасно отображается.
 
Теперь ищу смотрелкой реестр - фиг!!!!  

 
Шукаю поиском, вон где ключ оказывается

Цитата:
KEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Firebird Project\Firebird Server\Instances

 
Кто-то может прояснить ситуацию?
 

Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 23:50 04-09-2012 | Исправлено: eddoc, 23:56 04-09-2012
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eddoc
А здесь и так всё ясно и известно: х86 приложения на х64 винде работают через WoW (Windows on Windows) прослойку. Имхо, ничего серьёзного. Управляется ключами KEY_WOW64_32KEY и KEY_WOW64_64KEY. Например, KEY_ALL_ACCESS or KEY_WOW64_64KEY.
 
Подробнее здесь, если есть сомнения: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724878(v=vs.85).aspx

Всего записей: 766 | Зарегистр. 18-05-2009 | Отправлено: 10:40 05-09-2012 | Исправлено: Eternal_Shield, 10:41 05-09-2012
eddoc



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

Цитата:
WoW (Windows on Windows)

"Так вот ты какой, северный олень!" (с)
 
 А я все время читаю эту аббревиатуру как "Вау!!!"   Спасибо за информацию.

Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 19:47 05-09-2012
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-то уже разбирался с delphi xe2 vcl styles?  
Я заметил интересную особенность. Когда их использовать, то изменение некоторых свойств компонентов (например memo1.color:=clLime; или label1.font.color:=clBlue;) не влияет на отображение компонент. Полагаю что цвета заданные в стиле имею больший приоритет чем те, что в свойствах компонент. Не подскажите как изменять цвета отдельных компонент в ран тайм режиме при использовании vcl styles?

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 21:11 05-09-2012
Bonivur



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кто-нибудь, объясните разницу между TRegistryIniFile и TRegIniFile . Когда какой из этих классов использовать?

----------
Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 22:22 06-09-2012
eddoc



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bonivur
Ну есть же справка и гугл
 
TRegIniFile vs TRegistryIniFile
 
 
Согласно мануалу один из них применяется  в Windows 95/NT, другой - в старших OC

Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 10:38 07-09-2012 | Исправлено: eddoc, 10:41 07-09-2012
Bonivur



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
eddoc, понятно. Значит используем только TRegistryIniFile.  


----------
Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 11:48 07-09-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jFobos
Нужно отключать скинирование. Но сделать это можно только для всего класса, а не для отдельного объекта. Примерчик: http://theroadtodelphi.wordpress.com/2012/02/06/changing-the-color-of-edit-controls-with-vcl-styles-enabled/ и в нагрузку: http://code.google.com/p/vcl-styles-utils/

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 14:42 07-09-2012
neznayka3

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

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 10:32 10-09-2012
XPerformer



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

Цитата:
на db-контролах висят обработчики OnChange и тд. при открытия дата-сета, они все начинают срабатывать. что не нужно. пока обхожусь флагами, а как правильно?

Не знаю как правильно,потому что не понимаю, почему они не должны срабатывать при открытии датасета. Вообще говоря, сама ситуация из разряда - "тут играть, тут не играть, тут рыбу заворачивали".
Но если на то есть причины - вешайте обработчики в рантайме в тот момент, когда они становятся нужны.

Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 11:05 10-09-2012 | Исправлено: XPerformer, 11:06 10-09-2012
neznayka3

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

Цитата:
Не знаю как правильно,потому что не понимаю, почему они не должны срабатывать при открытии датасета.

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

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 11:24 10-09-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 103 104 105 106 107 108 109 110 111

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru