![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TBitMap [D6, Win2k]
Lexa © (2003-01-12 01:29:00)Подскажите как нарисовать bitmap поверх существующего,а то у меня выдает ошибку "Cannot assign a TForm1 to a TForm1"
Lexa (2003-01-12 13:26:00) [1]Извините за беспокойство я нашел ошибку
Lexa (2003-01-12 12:56:00) [2]Ошибку он выдает в следующей процедуре
procedure TBoard.Separation(Field: TField;Form1:TForm);
var x,y:integer;
begin
Field.Draw(Form1);//здесь ошибка
//хотя так метод работает
end;
class EConvertError with message "Cannot assign a TForm1 to a TForm1"
Rouse_ (2003-01-12 05:15:00) [3]Судя по вашему коду ошибка в реализации
Field.Create(Vert,Horiz,false); или в TransCoorToBoard
Либо в неправильных передаваемых параметрах
Нужно посмотреть код поглубже.
Как вариант могу выслать реализацию своего шахматного редактора (писал для отца, это ему как помощь для оформления шажматных диаграм для статей которые он пишет в журнал)
Желаю успехов
А (2003-01-12 04:39:00) [4]ты пытался запустить программу в IDE DELPHY?
И если да, то на какой строчке кода он выдает ошибку? И какую?
Lexa (2003-01-12 04:29:00) [5]он выдает ошибку на этапе выполнения,когда я пытаюсь щелкнуть мышкой на ячейке
А (2003-01-12 04:12:00) [6]где именно он ее выдает?
Пойми, тебя просили представить код не для того, чтобы ...
А для того чтобы помочь тебе!
Lexa (2003-01-12 02:54:00) [7]
procedure TField.Draw(Form1:TForm);
var BitMap1:TBitMap;
x,y:integer;
begin
BitMap1:=TBitMap.Create;
if Black then BitMap1.LoadFromFile("E:\WORK\OOP\Skins\VGA Checkers\space.bmp")
else BitMap1.LoadFromFile("E:\WORK\OOP\Skins\VGA Checkers\NotField.bmp");
TransCoorToForm(x,y,VertPos(vert),horiz);
Form1.Canvas.Draw(x,y,BitMap1);
BitMap1.Free;
end;
Эта процедура рисует ячейку шахматного поля
procedure TBoard.Separation(Field: TField;Form1:TForm);
var x,y:integer;
begin
Field.Draw(Form1);
end;
Эта процедура по идее должна перерисовывать ячейку на которой я щелкнул мышью
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var Vert:TVert;
Horiz:THoriz;
Field:TField;
Board:TBoard;
begin
Field.TransCoorToBoard(x,y,Vert,Horiz);
Field.Create(Vert,Horiz,false);
Board.Separation(Field,Self);
end;
но компилятор выдает ошибку EConvertError
Rouse_ (2003-01-12 02:23:00) [8]Приведи пример кода, в противном случае тебе выдадут кучу вариантов из которывх ни одного подходящего для тебя не будет.
Желаю успехов
Alex-eraser (2003-01-12 02:03:00) [9]Уточни вопрос! Что конкретно ты писал в программе.