Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аршын апай.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.52 Mб
Скачать

Var j:integer;

R:TRect;

ctr:TControl;

begin

nmComp:=''; ctr:=nil;

DragQueryFile(THandle(Msg.WParam),0,drFile,SizeOf(drFile));

DragQueryPoint(THandle(Msg.WParam),XYPoint);

DragFinish(THandle(Msg.WParam));

for j := 0 to ComponentCount-1 do begin

If (Components[j] is tdbImage) then begin

ctr:= Components[j] as TControl;

R.Left :=ctr.Left+paLeft.Left;R.Top :=ctr.Top+paLeft.Top;

R.Right := R.Left+ctr.ClientWidth;R.Bottom :=R.Top+ctr.ClientHeight;

With R do

if (XYPoint.x >Left) and(XYPoint.x <Right) and

(XYPoint.y >Top) and(XYPoint.y <Bottom) then begin

nmComp:= ctr.Name;Break;

end;

end;

end;

if nmComp<>'' then ShowMessage(nmComp);

//Отладочная строка:

fmMain.Caption:= IntToStr(XYPoint.x)+'-'+IntToStr(XYPoint.y)+' / '+

IntToStr(R.Left)+'-'+IntToStr(R.Top)+'-'+

IntToStr(R.Right)+'-'+IntToStr(R.Bottom);

end;

  1. Жобаны қайтадан орындауға жіберіңіз және тасымалдау аяқталғаннан кейін программа DBImage компонентінің атының дұрыстығы туралы хабар беретініне көз жеткізіңіз.

  2. Бізге алгоритмнің d) және e) пункттерін іске асыру қалды. Жұмыс сенімді болуы үшін қолданушыға .bmp кеңейтілуі бар файлдарды тасымалдауға рұқсат береміз. Ол үшін мәтінге төменде қалың шрифтпен берілген жолды қосып, (отладочную) жолды алып тастаңыз :

procedure TfmMain.WMDropFiles(var Msg: TMessage);

var j:integer;

R:TRect;

ctr:TControl;

dbIM:TDBImage;

begin

nmComp:='';ctr:=nil;dbIm:=nil;

DragQueryFile(THandle(Msg.WParam),0,drFile,SizeOf(drFile));

DragQueryPoint(THandle(Msg.WParam),XYPoint);

DragFinish(THandle(Msg.WParam));

for j := 0 to ComponentCount-1 do begin

if (Components[j] is TDBImage) then begin

ctr:= Components[j] as TControl;

R.Left :=ctr.Left+paLeft.Left;R.Top :=ctr.Top+paLeft.Top;

R.Right := R.Left+ctr.ClientWidth;R.Bottom :=R.Top+ctr.ClientHeight;

With R do

if (XYPoint.x >Left) and(XYPoint.x <Right) and

(XYPoint.y >Top) and(XYPoint.y <Bottom) then begin

nmComp:= ctr.Name;Break;

end;

end;

end;

if nmComp<>'' then begin

dbIM:=ctr As TDBImage;

If not(dbIm is tdbImage) then Exit;

if dbIM=nil then Exit;

if not(ExtractFileExt(drFile)='.bmp') then Exit;

try

if dbIM.DataSource.State <> dsEdit then dbIM.DataSource.Edit;

dbIM.Picture.LoadFromFile(drFile);

dbIM.DataSource.DataSet.Post;

except

ShowMessage('Ошибка записи в БД изображения из файла:'+#13#10+drFile);

end;

end;

end;

  1. Әртүрлі нақты суреттерді формаға тасымалдау программасының жұмысын тексеріңіз: