Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Sa 27.10.07 11:54 
Ich habe mir eine Minimap gebastelt
anzeigen mache ich so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.drawmap(plchange:boolean);
Const
  sourcew:Integer=3577;
  sourceh:Integer=994;
begin
  if(mapx<0) then mapx:=0;
  if(mapy<0) then mapy:=0;
  if(mapx+Destw>sourcew) then mapx:=sourcew-Destw;
  if(mapy+Desth>sourceh) then mapy:=sourceh-Desth;
imgMap.Canvas.CopyRect(Rect(Destl,Destt,Destl+Destw,Destt+Desth),Pic.Bitmap.Canvas,Rect(mapx,mapy,mapx+Destw,mapy+Desth));
end;


imgMap ist eine TImage Komponente auf dem form
Pic ist ein TPicture mit nem Bild von sourcew x sourceh als Größe
mapx,mapy ist die position auf diesem bild
und die Dest variablen die ausmaße und position auf dem ziel

diese map kann ich mit der maus verschieben
Problem: es flackert recht hässlich

kann ich da was machen?
(hab schon prüfungen drin ob bewegt wurde oder nicht)


EDIT: hab jetzt autosize auf true gesetzt...flakert nicht mehr...seltsam


Zuletzt bearbeitet von Flamefire am Sa 27.10.07 12:00, insgesamt 1-mal bearbeitet
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Sa 27.10.07 11:55 
BitBlt verwenden

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Sa 27.10.07 12:05 
hast du die syntax davon?
finds in der hilfe nicht
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 27.10.07 12:16 

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Sa 27.10.07 12:46 
hab jetzt das ausgetauscht:
//imgMap.Canvas.CopyRect(Rect(Destl,Destt,Destl+Destw,Destt+Desth),Pic.Bitmap.Canvas,Rect(mapx,mapy,mapx+Destw,mapy+Desth));
BitBlt(imgMap.Canvas.Handle,Destl,Destt,Destw,Desth,Pic.Bitmap.Canvas.Handle,mapx,mapy,SRCCOPY);

aber es geht nicht ganz:
ich kann die karte in einem bereich verschieben der nach rechts und links ca. so groß ist wie Destw und oben/unten wie desth

wenn ich es weiter versuche passiert gar nix mehr (also es verändert sich außer mapx/mapy nichts)

hab ich nen fehler?