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

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

Модерирует : 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 112 113 114 115 116 117 118 119 120 121 122 123 124 125

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

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 5

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).


 
Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ArtSnegirev
    Проблема в том, что экспортируются данные из Microsoft SQL Server 2005 и DBF файл уже поставляется с данными, но в Delphi при открытии этого файла строковые поля в виде иероглифов!  
    Т.е. данные в таблице есть, как их преобразовать в читабельный формат в Delphi?

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 11:31 13-04-2012
    ArtSnegirev



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    Попробуй поставить в BDE для DBASE LANGDRIVER = 'ascii' ANSI (без префикса DBASE)

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 11:33 13-04-2012
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ArtSnegirev
    Сегодня попробовал решить проблему по Вашему совету - символьные поля для таблицы ANSI стали отображаться правильно, но в системе есть много таблиц с кодировкой OEM, при их открытии проблемы с отображением те же!
    Как же всё таки при открытии таблицы провести именно трансляцию, чтобы нормально отображались русские символы?  

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 07:44 16-04-2012
    ArtSnegirev



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    если нужно только отобразить данные правильно, то попробуйте выполнять преобразование  кодировки при прорисовке грида

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 09:36 16-04-2012
    Gnom3



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день. Заранее прошу прощения за нубскую просьбу, но вот не делал никогда, и примеров не нашел.
    Нужно сделать компоненту, производную от TPageControl, которая на своих TTabSheet содержит TRichEdit с включеным свойством align := alclient;.
    То-есть, создаешь TTabSheet а там уже свой TRichEdit во весь TTabSheet. Может кто-нибудь сделать и откоментировать, пожалуйста?
     
    P.S. Заготовка:
    Подробнее...

    Всего записей: 864 | Зарегистр. 14-11-2010 | Отправлено: 13:26 16-04-2012 | Исправлено: Gnom3, 16:50 16-04-2012
    ant0ni02004

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

    Код:
     
      TTabRichEdit = class(TTabSheet)  
      private  
        RichEdit: TRichEdit;  
      public
         constructor Create(AOwner:TComponent);
      end;  
    ......
       procedure TTabRichEdit .Create(AOwner:TComponent);
       begin
           inherited Create(AOwner);
           RichEdit:=TRichEdit.Create(self.Owner);
           RichEdit.Parent:=self;
           RichEdit.Align:=alClient;
           RichEdit.Visible:=true;
       end;
    .......
    procedure TForm1.CreatePage;
    begin
       with TTabRichEdit.Create(Self) do
       begin
          PageControl:=PageControl1;
          Caption:='....';
          {итд}
       end;
    end;
     
       
     

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 18:12 16-04-2012
    Gnom3



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ant0ni02004
    Благодарю . Тоже уперся именно в то, что плясать нужно иенно от TTabSheet а не TPageControl. В том и была глобальная засада, что TPageControl компонент уже составной, и TTabSheet еще не создан. А полноценный компонент писать ради того, для чего мне нужно - не имеет смысла.

    Всего записей: 864 | Зарегистр. 14-11-2010 | Отправлено: 21:56 16-04-2012
    EugeneBoss3



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

    Цитата:
    если нужно только отобразить данные правильно, то попробуйте выполнять преобразование  кодировки при прорисовке грида

    Я и прошу подсказать, как именно это преобразование сделать!

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 02:03 17-04-2012
    ArtSnegirev



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    function ConvertAnsiToOem(const S: String): String;
    { ConvertAnsiToOem translates a string into the OEM-defined character set }
    {$IFNDEF WIN32}
    var
     Source, Dest : array[0..255] of Char;
    {$ENDIF}
    begin
    {$IFDEF WIN32}
     SetLength(Result, Length(S));
     if Length(Result) > 0 then
       AnsiToOem(PChar(S), PChar(Result));
    {$ELSE}
     if Length(Result) > 0 then
     begin
       AnsiToOem(StrPCopy(Source, S), Dest);
       Result := StrPas(Dest);
     end;
    {$ENDIF}
    end; { ConvertAnsiToOem }
     
     
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin
      (Sender as TDBGrid).Canvas.TextRect(Rect, Rect.Left + 2,
            Rect.Top + 2, ConvertAnsiToOem(self.Table1.FieldByName('newfield').AsString));
    end;

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 10:33 17-04-2012
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ArtSnegirev
    Спасибо за пример.  
    Примерно об этом я и думал, но для использования функции нужно форматы и имена  полей таблицы знать.
    И это только на отображение в гриде, а нужно перекодировать символьные данные в таблице, для последующего использования.
    А пример использования функции Translate(Src, Dest: PAnsiChar; ToOem: Boolean): Integer; virtual; случайно не подскажешь?

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 07:19 18-04-2012
    ArtSnegirev



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    Ну для перекодировки знать форматы и имена полей необязательно, т.к. можно обходить все поля и только если (Field.DataType = ftString), то выполнять перекодирование.
    А заставить работать процедуру Translate мне не удалось, да и зачем она нужна если ConvertAnsiToOem из поста выше делает то же самое без ошибок (кстати в хелпе написано, что она работает только на BDE)!?

    Всего записей: 20 | Зарегистр. 24-05-2004 | Отправлено: 09:53 18-04-2012
    salexn1



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не поделится ли кто опытом для решения следующей задачи:
    сделать в приложении настройку используемого шрифта для форм.
    Проблема в том, что при изменении шрифта с меньшего на больший Label будут "залазить" на Edit контролы.
    Решал ли кто такую задачу? Поделитесь плиз!

    Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 11:11 20-04-2012
    MrZeRo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    salexn1
    Попытаться манипулировать Align, Anchors, AutoSize, использовать TLabeledEdit, расположить элементы соответствующим удобным образом, в конце концов, написать некую свою процедуру для изменения расположения элементов с учетом потребностей (куда оно должно деваться, если слишком большое?? ) если стандартных средств недостаточно ... Универсального рецепта, наверное, не существует.

    ----------
    ... не это главное ...

    Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 16:52 20-04-2012
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    salexn1
    В дополнение к тому, что предложил MrZeRo, можно еще играться с масштабированием через ScaleBy и его близнецов. Но в этом случае возникает две проблемы, во-первых не все сторонние компоненты корректно обрабатывают изменение масштаба. Во-вторых масштабирование вообще то должно работать автоматически если у формы включен Scaled и пользователь изменил соответствующую настройку своей операционки.

    Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 18:27 20-04-2012
    ant0ni02004

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

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 21:00 20-04-2012
    vintage_1



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Парни, такой вопрос, у меня в проекте используются две формы: Form1 и Form2
    Теперь к вопросу: как сделать, чтобы Form2 была позади Form1 без мерцаний при нажатии на Form2 и чтобы она не перекрывала Form1 при клике на нее?  

    Всего записей: 213 | Зарегистр. 03-04-2011 | Отправлено: 14:17 24-04-2012
    salexn1



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vintage_1
    выставить у Form1 StayOnTop (какое-то свойство)
     
    Добавлено:
    ant0ni02004
    спасибо, глянул....
    Не совсем то, что нужно...
    Буду курить как сделать

    Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 18:04 26-04-2012
    vintage_1



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

    Всего записей: 213 | Зарегистр. 03-04-2011 | Отправлено: 14:08 27-04-2012
    Gnom3



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

    Всего записей: 864 | Зарегистр. 14-11-2010 | Отправлено: 16:40 27-04-2012 | Исправлено: Gnom3, 16:57 27-04-2012
    V1s1ter



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Gnom3
    Ищите  
    * спецификация IEC 61883 Consumer audio/video equipment (International Electrotechnical Commission)
    * спецификации AV/C (Audio/Video Compatibility)
    * спецификация HAVi CTS (Home AV Interoperability)(Command Transaction Set) http://www.havi.org

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 18:05 27-04-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 112 113 114 115 116 117 118 119 120 121 122 123 124 125

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru