02. april 2001 - 20:09Der er
5 kommentarer og 1 løsning
DBGrid
Hvordan skal proceduren se ud for at virke?
procedure TBilledeForm2.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin WITH Table1 do begin
A := DBGrid1.Fields[3].AsInteger; B := DBGrid1.Fields[4].AsInteger; C := DBGrid1.Fields[5].AsInteger; D := DBGrid1.Fields[6].AsInteger; if ((x > A) and (x < B)) and ((y >C) and (y < D))then Label1.Caption:=TelefonListeForm.DBGrid1.Fields[1].AsString;
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Da det er svært at ”ramme” et bestemt coordinat på en Image, vil jeg prøve at lave en rektangel uden om coordinatet. x og y er musens coordinater på en Image. A= xmin, B=xmax, C=ymin, D=ymax. Feks. A=100, B=120, C=100, D=120, disse tal danner en rektangel 100/100 120/120 (tallene ligger I DBGrid). Når man klikker med musen indenfor en rektangel, skal DBGrid finde den række hvor tallene passer og derefter udfører en handling.
dvs. at i field 3-6 gemmer du coordinaterne? og så vil du vise det der ligger i field1, hvor X og Y ligger indenfor det rektangel coordinaterne repræsenterer?
Jeg løber alle records igennem, og checker om musens koordinater er indenfor rektanglet. Hvis den aktuelle record matcher stoppes løkken, og field[1] udskrives i lablen. Jeg forstår dog ikke se hvorfor du bruger DBGridets data, og ikke tager dem direkte fra tabellen? Det kunne også laves lidt fiksere, hvis du brugte en TQuery, men det er jo op til dig.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var A, B, C, D: Integer; Found: Boolean; begin Table1.First; Found := False;
while not Table1.Eof and not Found do begin A := DBGrid1.Fields[3].AsInteger; B := DBGrid1.Fields[4].AsInteger; C := DBGrid1.Fields[5].AsInteger; D := DBGrid1.Fields[6].AsInteger;
if ((X > A) and (X < B)) and ((Y > C) and (Y < D)) then begin Label1.Caption := DBGrid1.Fields[1].AsString; Found := True; end else Table1.Next; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.