Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мышь 
V
    Опции темы
Yanis
Дата 14.7.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(alexeis1 @  14.7.2006,  13:54 Найти цитируемый пост)
это называется строгая проверка типов, формально Longint и Cardinal разные типы, реально на 100% тоже самое!

Конечно, если не считать, что один тип знаковый, а другой беззнаковый, то всё верно - они одинаковые. Стало быть и многие другие типы - одинаковые smile

Добавлено @ 13:31 
 smile
Извиняюсь за небольшой оффтопик. 

Это сообщение отредактировал(а) Yanis - 14.7.2006, 13:31


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
svarogik
Дата 14.7.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



нет меня интересует непонятная ошибка, когда я прописал процедуру до имплементэйшн там ступорится прога 
PM MAIL   Вверх
svarogik
Дата 14.7.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



короче так сделал и все, программа запускается, только что делает не понятно
Код

procedure TEditor.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
 Col, Row : longint;
begin
 drawgrid1.MouseToCell(X, Y, Col, Row);

end;

end.
 
PM MAIL   Вверх
Alexeis
Дата 14.7.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Извините тут уже я заглючил smile 
Код

procedure TForm1.drwgrd1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
 Col, Row : Longint;
begin
 drwgrd1.MouseToCell(X, Y, Col, Row);
end;


а вот это 
Цитата(alexeis1 @  14.7.2006,  12:40 Найти цитируемый пост)
procedure MouseToCell(X, Y: Integer; var ACol, ARow: Longint);

я просто показал какие параметры она принимает - этого не нужно было никуда писать

Добавлено @ 14:12 
Цитата(svarogik @  14.7.2006,  14:04 Найти цитируемый пост)
только что делает не понятно

Ниченого не делает просто мы получили номер ячейки по которой кликнули.
Цитата(Yanis @  14.7.2006,  13:28 Найти цитируемый пост)
Конечно, если не считать, что один тип знаковый, 

да согласен не совсем верно (хотя и размер одинаковый) 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
svarogik
Дата 14.7.2006, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



спасибо очень продвинули конечно, а можно теперь узнать как цвет выбранной ячейки сменить 
PM MAIL   Вверх
Alexeis
Дата 14.7.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Это совсем просто

Код

procedure TForm1.drwgrd1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Col, Row : Longint;
  r : Trect;
begin
 drwgrd1.MouseToCell(X, Y, Col, Row);
 r := drwgrd1.CellRect(Col, Row);
 drwgrd1.Canvas.brush.color := clGreen;
 drwgrd1.Canvas.FillRect(r);
end;


Добавлено @ 14:43 
Вообще так делать не правельно!
нужно сохранять где-то цвета, а затем
в procedure TForm1.drwgrd1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
отрисовывать каждую своим цветом!

Добавлено @ 14:45 
Например, сделать динамический массив соответствующей размерности  

Это сообщение отредактировал(а) alexeis1 - 14.7.2006, 14:58


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
svarogik
Дата 14.7.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



цвета будут сохранятся в матрице а по ней придумаю как прорисовать  (оох как все сложно в паскале графика какой элементарной былаа...) 
PM MAIL   Вверх
Alexeis
Дата 14.7.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(svarogik @  14.7.2006,  14:49 Найти цитируемый пост)
о ней придумаю как прорисовать

Зачем придумывать когда есть событие DrawCell, как только кликнул, так сразу должен вызваться обработчик, чтоб перерисовать!
Причем он же позволяет рисовать только те которые стерлись или изменились 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
svarogik
Дата 14.7.2006, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



тэкс... поподробней можешь? 
PM MAIL   Вверх
Alexeis
Дата 14.7.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



При кликаньи рисуется рамочка, значит изображение клетки "попортилось", любая порча изображения вызовет событие, в данном случае это будет onDrawCell, в нем предлагают програмисту написать код который дорисовыват что-то в клетке(по усмотрению програмиста)
если мы знаем какого цвета была ячейка, то рисуем ее
Код

procedure TForm1.drwgrd1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
    r : Trect;
begin
 r := drwgrd1.CellRect(aCol, aRow);
 drwgrd1.Canvas.brush.color := yourColorMatrix[aCol, aRow];
 drwgrd1.Canvas.FillRect(r);
end;
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
svarogik
Дата 14.7.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Код

procedure TEditor.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var r : Trect;
  begin
for i:= 1 to n do
for j := 1 to m do
case matrix[i,j]of
1: begin
r := DrawGrid1.CellRect(i, j);
 DrawGrid1.Canvas.brush.color := clGreen;
 DrawGrid1.Canvas.FillRect(r);
 end;

 end;


end;





procedure TEditor.DrawGrid1Click(Sender: TObject);
begin
setLength(matrix,4,4);
DrawGrid1.colcount:=4;
DrawGrid1.rowcount:=4;

  matrix[1,2]:= 1;

end;


пытаюсь прорисовку так сделать, но почему то не работает

Добавлено @ 15:31 
по идее должен появится в ячейке 1.2 клеточка с постоянным зеленым цветом не реагирующим на щелчки 
PM MAIL   Вверх
Alexeis
Дата 14.7.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



А зачем цикл событие возниает для каждой ячейки отдельно!
Если надо обнавить все то просто вызвать
 DrawGrid1.Invalidate;
тогда события по перерисовке возникнут для всех ячеек по очереди без всяких циклов! 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
svarogik
Дата 14.7.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



не, а как установить соответствие между матрицей и прорисовкой таблицы? матрица грузится из файла а по ней рисуется 
PM MAIL   Вверх
Alexeis
Дата 14.7.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



а это к чему?
Код

setLength(matrix,4,4);
DrawGrid1.colcount:=4;
DrawGrid1.rowcount:=4;

  matrix[1,2]:= 1;


я пологаю надо было
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
  setLength(matrix,4,4);
  DrawGrid1.colcount:=4;
  DrawGrid1.rowcount:=4;
  matrix[1,2]:= clGreen;
end;


и дальше просто

Код

procedure TEditor.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var r : Trect;
begin
  r := DrawGrid1.CellRect(ACol, ARow);
  DrawGrid1.Canvas.brush.color := matrix[ARow, ARow];
  DrawGrid1.Canvas.FillRect(r);
end;
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
svarogik
Дата 14.7.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата

я пологаю надо было

у меня на этом событии и так много не хотел все пихать в одну кучу, этож только для отладки 
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1035 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.