![]() |
On mouse down bei canvas
Hallo!
Delphi-Quellcode:
Wenn ich auf ein Image mit Canvas etwas zeichne funktioniert mein mousedown nicht mehr.(siehe procedure set_koordinaten bei dem if(i = 8')).Wie geht dastype TBorderSkin = class(TImage) private { Private-Deklarationen } protected x,y:Integer; { Protected-Deklarationen } public Image:Array[0..9] of TImage; active_click :Boolean; forms:TForm; published procedure load_imagelist(ImageList:TImageList); procedure imagemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure imagemouseup(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure imagemousemove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure imagemouseleft(Sender: TObject; Shift: TShiftState; X, Y: Integer); constructor set_koordinaten(Form:TForm;ImageList:TImageList); { Published-Deklarationen } end; procedure Register; implementation procedure TBorderSkin.imagemouseleft; begin if(active_click = true) then begin end; end; procedure TBorderSkin.imagemousemove; begin if(active_click = true) then begin ReleaseCapture; forms.Perform(wm_syscommand,$f013, 0); end; end; procedure TborderSkin.imagemouseup; begin active_click := false; end; procedure TBorderSkin.imagemousedown; begin active_click := true; end; constructor TBorderSkin.set_koordinaten; var I:Integer; begin forms := form; for i := 0 to 9 do begin Image[i] := TImage.Create(self); Image[i].Parent := Form; //ganz links oben if(i = 0) then begin Image[i].Top := 0; Image[i].Width := 5; Image[i].Height := 30; Image[i].Left := 0; Image[i].OnMouseDown := imagemousedown; Image[i].OnMouseUp := imagemouseup; Image[i].OnMouseMove := imagemousemove; end; //mitte oben if(i = 1) then begin Image[i].Top := 0; Image[i].Width := trunc((Form.Width-55) / 1.1648522);; Image[i].Height := 32; Image[i].Left := 4; Image[i].Stretch := true; Image[i].OnMouseDown := imagemousedown; Image[i].OnMouseUp := imagemouseup; Image[i].OnMouseMove := imagemousemove; end; //mitte rechts if(i = 2) then begin Image[i].Top := 0; Image[i].Width := 45; Image[i].Height := 32; Image[i].Left := Image[1].Width + 3; Image[i].Stretch := true; Image[i].OnMouseDown := imagemousedown; Image[i].OnMouseUp := imagemouseup; Image[i].OnMouseMove := imagemousemove; end; if(i = 3) then begin Image[i].Top := 0; Image[i].Width := trunc((Form.Width-21)/7.1333333333); Image[i].Height := 32; Image[i].Left := Image[1].Width + Image[2].Width + 2; Image[i].Stretch := true; Image[i].OnMouseDown := imagemousedown; Image[i].OnMouseUp := imagemouseup; Image[i].OnMouseMove := imagemousemove; end; if(i = 4) then begin Image[i].Top := 0; Image[i].Width := 5; Image[i].Height := 30; Image[i].Left := Form.Width-5; end; if(i = 5) then begin Image[i].Top := 30; Image[i].Width := 5; Image[i].Height := Form.Height; Image[i].Left := Form.Width-5; Image[i].Stretch := true; Image[i].OnMouseDown := imagemousedown; Image[i].OnMouseUp := imagemouseup; Image[i].OnMouseMove := imagemouseleft; end; if(i = 6) then begin Image[i].Top := 30; Image[i].Width := 5; Image[i].Height := Form.Height; Image[i].Left := 0; Image[i].Stretch := true; end; if(i = 7) then begin Image[i].Top := form.Height-5; Image[i].Width := Form.width-8; Image[i].Height := 5; Image[i].Left := 4; Image[i].Stretch := true; end; if(i = 8) then begin Image[i].Top := 5; Image[i].Width := length(form.Caption)*10; Image[i].Height := 20; Image[i].Left := 30; Image[i].Canvas.Font.Size := 12; Image[i].Canvas.TextOut(0,0,form.Caption); Image[i].Transparent := true; Image[i].BringToFront; Image[i].OnMouseDown := imagemousedown; Image[i].OnMouseUp := imagemouseup; Image[i].OnMouseMove := imagemousemove; end; if(i = 9) then begin end; Form.BorderStyle := bsnone; end; end; procedure TBorderSkin.load_imagelist; var i:Integer; begin for i := 0 to 9 do begin ImageList.GetBitmap(i,Image[i].Picture.Bitmap); end; end; Hiermit ReleaseCapture; Perform(wm_syscommand,$f013, 0); kann ich ja mein Form verschieben, aber wie kann ich, wenn ich an die Außenränder meines Forms gehe die Größe verändern? Danke |
Re: On mouse down bei canvas
Kann mir keiner helfen?
|
Re: On mouse down bei canvas
Dein Thread ist noch nicht mal 13 Stunden halt und das noch über Nacht. Unterlass bitte in Zukunft solchen "nach oben holen" nach so kurzer Zeit - und das, wie schon gesagt, auch noch über Nacht.
|
Re: On mouse down bei canvas
Also ich hab das ganze mal bei mir ausgeführt und das image[8] eingefärbt. Allerdings hab ichs dann beim ausführen nie gesehen, also woher weißt du dasses mausdown nicht funktioniert?
Dein Quelltext muss ich auch mal bissl kritisieren. Warum setzt du bei jedem Schleifendurchlauf den borderstyle erneut auf bsnone?? Es würd übersichtlicher sein wenn du nur das Image.create und das parentsetzen in eine schleife machst und die anderen images direkt mit image[i] initialisierst... |
Re: On mouse down bei canvas
Liste der Anhänge anzeigen (Anzahl: 1)
Hai maximi,
ich habe mal zum Spass deinen Constructor vom Quellcode geändert. Ist doch irgendwie übersichtlicher finde ich: |
Re: On mouse down bei canvas
Danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz