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

Вниз

Кто найдёт глюк в процедуре?   Найти похожие ветки 

 
^Sanya   (2002-09-06 12:56) [0]

procedure SGDraw(SG : TStringGrid; ACol, ARow : integer; ARect : TRect);
begin
with (SG as TStringGrid), (SG as TStringGrid).Canvas do

// если попадаем в фикс. ячейку, то цвета там другие...
if ((ACol+1) > FixedCols) and ((ARow+1) > FixedRows) then
begin
Brush.Color := Colors.TableBGRNDColor;
Pen.Color := Colors.TableBRDRColor;
Rectangle(ARect.Left-1, ARect.Top-1, ARect.Right+1, ARect.Bottom+1);
TextOut(ARect.Left+2, ARect.Top+2, Cells[ACol, ARow]);
end
else
begin
Brush.Color := Colors.TableFxdBgrndColor;
Pen.Color := Colors.TableFxdBrdrColor;
Canvas.Font := Fonts.TableFxdFont;
Rectangle(ARect.Left-1, ARect.Top-1, ARect.Right+1, ARect.Bottom+1);
TextOut(ARect.Left+((ColWidths[ACol] - TextWidth(Cells[ACol, ARow]) )div 2),
ARect.Top+2, Cells[ACol, ARow]);
Canvas.Font := Fonts.TableFont;
end;

end;


При условии, что Font.TableFont и Font.TableFxdFont уже созданы от TFont ранее в другом модуле, в строке Canvas.Font := Fonts.TableFxdFont;
выдаёт Access Violation


 
Smithson   (2002-09-06 13:05) [1]

Canvas.Font.Assign(Fonts.....)
Где в описании было, что свойства Font нельзя присваивать.


 
MBo   (2002-09-06 13:10) [2]

не в тему, но все же..
(SG as TStringGrid)
ни к чему это - SG явно описан как TSTringGrid


 
^Sanya   (2002-09-06 13:23) [3]


> MBo © (06.09.02 13:10)

Грешен, забыл, хотя знал...
Привычка...


 
Smithson   (2002-09-06 13:33) [4]

Я на эти грабли наступаю раз в полгода.

Есть встречный вопрос. В Инспекторе объектов меняю у кнопки цвет шрифта и ставлю стиль Bold. Шрифт на кнопке утолщается, но ЦВЕТ НЕ МЕНЯЕТ. В чем дело?


 
Anatoly Podgoretsky   (2002-09-06 13:37) [5]

Ты лучше вообще убери with избежить многих неприятностей с неодназной интерпритацией его, особенно когда в нем более одного вложения


 
Игорь Шевченко   (2002-09-06 13:53) [6]

Smithson © (06.09.02 13:33)

Дело в том, что надпись на кнопке (TButton) рисует Windows.
Можно использовать TBitBtn - она рисуется средствами Delphi


 
^Sanya   (2002-09-06 14:00) [7]

Короче я тут выявил одну штуку.
Грубо говоря, вышло, что:
MyFont := YourFont;
и
MyFont.Assign(YourFont);

РАЗНЫЕ ВЕЩИ?!

Assign в любом случае правильно "переприсвоит" все свойства объекта, но возникает вопрос:
чем так плохо присвивание ":=" ? Оно делает нечто иное?
Судя по природе глюка, я решил, что он крепко связан с распределением динамической памяти... то есть обычное ":=" как-то коряво это делает?!

Жду объяснений опытных программистов, поскольку у меня в основном догадки...

Всем благодарен...


 
Старый Паскалист   (2002-09-06 14:19) [8]

MyFont := YourFont;
и
MyFont.Assign(YourFont);
- действительно разные вещи.

А
StringGrid.Font := YourFont;
и
StringGrid.Font.Assign(YourFont);
- одно и то же.

TControl = class(...)
...
property Font: TFont read FFont write SetFont stored IsFontStored;
...

procedure TControl.SetFont(Value: TFont);
begin
FFont.Assign(Value);
end;


 
kronprince   (2002-09-06 16:00) [9]

- начинать надо так :)
Кто найдёт глюк в процедуре? - тому ставлю два пива


 
kronprince   (2002-09-06 16:05) [10]

MyFont := YourFont;
- разным указателям присваивается ссылка на один объект

MyFont.Assign(YourFont);
- MyFont заполняется свойствами объекта YourFont



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

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

Наверх





Память: 0.47 MB
Время: 0.007 c
3-60999
saf
2002-08-27 19:23
2002.09.19
Прога с SQL-запросами


1-61077
grusta
2002-09-09 17:23
2002.09.19
Свой Bitmap в Polygon-е


8-61222
indigo
2002-05-19 22:23
2002.09.19
time


3-60990
Игорь С.
2002-08-29 11:20
2002.09.19
расширения MS SQL 7.0


3-60936
michael_b
2002-08-27 21:41
2002.09.19
Можно ли работать с Decision Cube через IBX?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский