![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите начинающему! [D6, WinME]
школьник © (2003-01-10 16:20:00)Не ругайтесь, я самостоятельно пытаюсь разобраться в дельфи. объясните, плз, почему Image3Click не работает?
procedure TForm1.Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Image3.Picture := image2.Picture;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image3.Picture.Bitmap.Handle := 0;
end;
procedure TForm1.Image3Click(Sender: TObject);
begin
if Image3.Picture = image2.Picture then
Image3.Picture := Image1.Picture;
end;
И как сделать шоб работал?
школьник (2003-01-11 10:00:00) [1]up
школьник (2003-01-10 22:56:00) [2]Работает. А если картинок много? Тогда наверное вместо переменной можно использовать Image1.Tag? Оно ведь для этого и предназначено? Как-то громоздко получается, неужели нельзя сделать попроще?
D (2003-01-10 19:18:00) [3]Картинки сравниваются, наверное, НЕКОРРЕКТНО (if Image3.Picture = image2.Picture then // = false
Image3.Picture.Assign(Image1.Picture);).
ПОПРОБУЙ ввести переменную (номер картинки в Image3.Picture)
1 - картинка из 1-го Image, 2 - из 2-го, 0-нет картинки
var Nom:integer = 0;
procedure TForm1.Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Nom<>1 then
begin Image3.Picture.Assign(Image2.Picture); Nom:=2
end;
end;
procedure TForm1.Image3Click(Sender: TObject);
begin
if Nom=2 then
begin Image3.Picture.Assign(Image1.Picture); Nom:=1
end;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image3.Picture := nil; Nom:=0;
end;
школьник (2003-01-10 19:14:00) [4]А?
школьник (2003-01-10 18:47:00) [5]
procedure TForm1.Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if image3.Picture <> Image1.Picture then
Image3.Picture.Assign(Image2.Picture);
end;
procedure TForm1.Image3Click(Sender: TObject);
begin
if Image3.Picture = image2.Picture then
Image3.Picture.Assign(Image1.Picture);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image3.Picture := nil;
end;
Вроде сделал как сказали, но опять Image3Click не работает :-((
школьник (2003-01-10 17:16:00) [6]спасибо большое!
(самому трудно разбираться)
Delirium^.Tremens (2003-01-10 16:50:00) [7]>>школьник (10.01.03 16:20)
Согласен с TTCustomDelphiMaster © (10.01.03 16:36)
+
> image3.Picture.Bitmap.Handle := 0;
image3.Picture := nil;
D (2003-01-10 16:47:00) [8]Наверное, сразу после Image3Click вызывется процедура Image3MouseMove (можно проверить в пошаговой отладке). Так что даже если 1-я картинка и отобразится в Имедже3, то сразу же и затрется...
TTCustomDelphiMaster (2003-01-10 16:36:00) [9]Image3.Pictute.Assign(Image2.Picture);