Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.04.08;
Скачать: [xml.tar.bz2];

Вниз

TabControl и 64-битная Windows   Найти похожие ветки 

 
igorium ©   (2011-12-17 19:29) [0]

Всем привет.
Создал программку, в которой есть TabControl.
В TabControl включил OwnerDraw := true и задал рисование цветом несколько вкладок.
Все работает замечательно.
Вернее я так думал, пока не дал протестировать другим людям.
Оказалось, что на 64-битных Windows название вкладок не показывается.
Т.е. выглядит точно так, когда включаешь OwnerDraw.

Проверено на Windows XP-64 и Windows 7-64.
Это можно вылечить?


 
KilkennyCat ©   (2011-12-17 19:58) [1]

да.


 
igorium ©   (2011-12-17 20:29) [2]

А как?


 
KilkennyCat ©   (2011-12-17 21:19) [3]

на данный момент неизвестно. лечить-то нечего. дать ссылку, как правильно задавать вопросы, или найдешь сам ее здесь, на начальной странице форумов?


 
igorium ©   (2011-12-17 22:52) [4]

Я не очень понял, причину такой реакции...
Что не так в вопросе?

Вот как выглядит TabControl в 64-битных Windows - http://s017.radikal.ru/i444/1112/a1/ef790c4a0c0c.jpg

Хотя все вкладки имеют названия.
И в 32-битных Windows все работает...


 
KilkennyCat ©   (2011-12-17 23:26) [5]


> Я не очень понял, причину такой реакции...
> Что не так в вопросе?

Включил овнердрау.
Лишил табконтрол штатной системы отрисовки.
Написал свою, которая не работает.

Можно ли вылечить?
Да.
Как?
Неизвестно.
Почему неизвестно?
Не предоставлена информация.
Какая информация?
Код отрисовки.

Ну не дебильно ли, а?
И какая должна быть реакция?
Вот нафиг мне фотка, как оно у тебя выглядит, я че, Чумак, по фоткам лечить?


 
igorium ©   (2011-12-18 11:14) [6]

Виноват, протормозил.
Я подумал, что раз на 32-битных Виндовс все работает, значит дело в Виндовс, а не в коде.
Тем более, что в интернете я нашел похожую жалобу.
Соответственно я ожидал услышать типа "это известная несовместимость - надо делать так и эдак".

Вот собственно код:
procedure TForm_Exif.Tab_ExifDrawTab(Control: TCustomTabControl;
 TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
 R : TRect;
begin
 if ((TabIndex = 0) or (TabIndex = 8)) then begin
  Control.Canvas.Font.Color := clBlue;
  end;
 R := Rect;
 DrawText(
   Control.Canvas.Handle,
   PChar(Tab_Exif.Tabs[TabIndex]),
   Length(Tab_Exif.Tabs[TabIndex]),
   R,
   DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;


 
KilkennyCat ©   (2011-12-18 13:00) [7]


> Я подумал, что раз на 32-битных Виндовс все работает, значит
> дело в Виндовс, а не в коде.

чтобы так же подумать мне, надо видеть код. например, твой код без проблем работает у меня (Delphi XE. Win7-64)

https://forums.embarcadero.com/thread.jspa;jsessionid=0CDEE653439F274FF4FD42AB658626CB?messageID=115730


 
sniknik ©   (2011-12-18 14:31) [8]

может дело не в разрядности, а в установленных/используемых схемах? хотя, на скриншоте вроде не видно... или он специально так обрезан для минимума инфы... ну чтобы типа не "отвлекал от проблемы".


 
Inovet ©   (2011-12-18 14:40) [9]

> [6] igorium ©   (18.12.11 11:14)
> Control.Canvas.Font.Color := clBlue;

Без особой надобности зачем задаёшь жёстко цвет, лучше пользовать относительные цвета типа clHighlight.


 
igorium ©   (2011-12-18 14:46) [10]


> KilkennyCat ©   (18.12.11 13:00) [7]
>
> > Я подумал, что раз на 32-битных Виндовс все работает,
> значит дело в Виндовс, а не в коде.
>
> чтобы так же подумать мне, надо видеть код. например, твой
> код без проблем работает у меня (Delphi XE. Win7-64)

У меня на Delphi7 и WinXP-32 тоже все работает, а на WinXP-64 и Win7-64 вылезает проблема.
Значит проблема в совместимости Delphi7 и 64-разрядной системе.
Спасибо за ссылку. Буду разбираться.
Поставлю себе заодно Win7-64 для отладки.


> sniknik ©   (18.12.11 14:31) [8]
> может дело не в разрядности, а в установленных/используемых
> схемах? хотя, на скриншоте вроде не видно... или он специально
> так обрезан для минимума инфы... ну чтобы типа не "отвлекал
> от проблемы".


Не понял, что за схемы :(
Сторонние продукты не использовал в этой программе.


 
igorium ©   (2011-12-18 14:48) [11]


> Inovet ©   (18.12.11 14:40) [9]
> Без особой надобности зачем задаёшь жёстко цвет, лучше пользовать
> относительные цвета типа clHighlight.

А что в этом плохого?
По дефалту стоит черный цвет шрифта.
Мне нужно отделить ДВЕ вкладки цветом.
Я и пишу - если номер вкладки - 1 или 9, то переопределить цвет.


 
KilkennyCat ©   (2011-12-18 15:00) [12]


>  лучше пользовать
> > относительные цвета типа clHighlight.

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


 
Inovet ©   (2011-12-18 16:36) [13]

> [12] KilkennyCat ©   (18.12.11 15:00)
> > > относительные цвета типа clHighlight.
>
> ничем не лучше. эти относительные цвета пользователю доступны
> для переназначения, в результате может образоваться кавардак
> в дизайне.

Это уже пожелания пользователя, не от тогго что он извращенец или шизофреник, а просто любитель ковырять и портить всё, но это его настройка. А если он настроить всё в голубых тонанах, ну мало ли почему, а ты ему голубым же и пишешь сверху.


 
KilkennyCat ©   (2011-12-18 18:32) [14]


>  если он настроить всё в голубых тонанах, ну мало ли почему,
>  а ты ему голубым же и пишешь сверху.
>

вот именно. поэтому хрен ему вообще.


 
QAZ   (2011-12-18 21:06) [15]

мне вот интересно,когда уже закончатся вопросы от "программистов" у которых нету актуальной винды, но есть у друзей и нихрена не работает?


 
KilkennyCat ©   (2011-12-18 23:37) [16]


> QAZ   (18.12.11 21:06) [15]

никогда (ну, пока жив форум и не наступил 2012 год, декабрь)
когда ты прекратишь надеяться на лучшее? :)


 
igorium ©   (2011-12-19 10:37) [17]


> QAZ   (18.12.11 21:06) [15]
> мне вот интересно,когда уже закончатся вопросы от "программистов"
> у которых нету актуальной винды, но есть у друзей и нихрена
> не работает?


А почему 7-ка актуальная, а XP - нет.
У меня, как и у ПОДАВЛЯЮЩЕГО количества друзей стоит именно XP.
На работе у ВСЕХ стоит XP.


 
sniknik ©   (2011-12-19 11:13) [18]

значит пиши программу для "подавляющего" числа друзей, и не пиши под ту ось которую не хочешь хотя бы для проверок у себя иметь... актуальность определяется по программе, для чего пишется.
вот смысл [15], а не выяснение, что стоит у тебя или у твоих друзей.
на это как бы всем плевать.


 
KilkennyCat ©   (2011-12-19 22:20) [19]


> На работе у ВСЕХ стоит XP.

если ВСЕ начнут какашки кушать? Присоединишься? :) Или все-таки стоит признать, что большинство ошиблось? XP более не актуально. Для программ, которые заточены под ХР есть свободно скачиваемый с микрософта виртуал мод.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
2-1324039063
ProgRAMmer Dimonych
2011-12-16 16:37
2012.04.08
WSAWaitForMultipleEvents не отпускает по FD_ACCEPT


2-1324013868
И. Павел
2011-12-16 09:37
2012.04.08
Перезапуск службы после остановки системой


15-1323421930
aka
2011-12-09 13:12
2012.04.08
Текстовый редактор на PaintBox.


15-1323346662
stas
2011-12-08 16:17
2012.04.08
Настройка роутера


15-1323284729
C++?
2011-12-07 23:05
2012.04.08
Использование статей в своих книгах





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский