![]() |
laden von canvas koordinaten und auf Timage zeichnen.. help
so also ich habe mir grad was programmiert wo man eine karte hat und dort punkte einzeichnen kann!
Delphi-Quellcode:
procedure TForm4.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var YString,XString:string; begin Canvas.Pen.Color:=clRed; Canvas.Pen.Width:=3; Canvas.Ellipse(Image1.Left+X-5,Image1.Top+Y-5,Image1.Left+X+5,Image1.Top+Y+5); ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'laninfo.ini'); if Length(IntToStr(Y))<=2 then YString:='0'+IntToStr(Y) else YString:=IntToStr(Y); if Length(IntToStr(X))<=2 then XString:='0'+IntToStr(X) else YString:=IntToStr(X); ini.WriteString('WLAN-Points','Image1',XString+','+YString); ini.Free; end; das funktioniert einwandfrei ! [WLAN-Points] Bsp: [WLAN-Points] Image1=085,101 Falls noch kleine Fehler drin sind ist das erstmal egal weil es geht um etwas wichtigeres ;) Ich habe die Punkte ja jetzt in eine ini-Datei gespeichert... Nun möchte ich sie auch wieder laden ! Aber mit welchem Ereignis? Den reinen Anweisungsteil habe ich fertig aber es funktioniert nicht mit OnPaint und bei den Images finde ich keine geeignetes Ereignis! Das Image überdeckt immer wieder mein Canvas ... hoffe mir kann jemand helfen
Delphi-Quellcode:
var angaben,angaben2:string;
var X,Y:integer; begin Canvas.Pen.Color:=clRed; Canvas.Pen.Width:=3; ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'laninfo.ini'); angaben:=ini.ReadString('WLAN-Points','Image1','0'); angaben2:=angaben; X:=StrToInt(Copy(angaben,1,3)); Y:=StrToInt(Copy(angaben2,5,3)); Canvas.Ellipse(Image1.Left+X-5,Image1.Top+Y-5,Image1.Left+X+5,Image1.Top+Y+5); ini.Free; |
Re: laden von canvas koordinaten und auf Timage zeichnen.. h
also ich weiß das es funktioniert wenn das image eine bitmap ist und ich es mit dem Form1OnPaint Ergeignis probiere (Image1.Canvas.....) aber das is sehr unpraktikabel da sich dann meine Bilder von 1 MB auf 30 MB speicherplatz erhöhen ;) pls gimmi a lösung
|
Re: laden von canvas koordinaten und auf Timage zeichnen.. h
Du könntest deine Punkte auf ein entsprechend großes TBitmap zeichnen.
Vorher musst du das Bitmap mit einer Farbe füllen, z.B. mit rosa (clFuchsia). Jetzt setzt du die Eigenschaft TransparentColor von deinem Bitmap auf diese Hintergrundfarbe und setzt noch die Eigenschaft Transparent auf true. Jetzt brauchst du nur noch im OnPaint-Ereignis deines Images oder Paintbox eine Draw-Anweisung setzten, z.B.:
Delphi-Quellcode:
Das müsste jetzt eigentlich funktionieren ;)
...
var bitmap: TBitmap //Global! ... //Code zum Bitmap erzeugen, Größe setzten, ... ... procedure PaintboxPaint(Sender: TObject); begin paintbox.Canvas.Draw(0,0,bitmap); end; |
Re: laden von canvas koordinaten und auf Timage zeichnen.. h
verstehe nicht richtig was du machen willst. Willst du die gespeicherten Punkte auf das Bild zeichnen?? Wenn ja: Welches Format hat dein Bild derzeit? (Jpeg, BMP(wohl nicht)). Oder willst du direct auf die Canvas von TImage zeichnen???
|
Re: laden von canvas koordinaten und auf Timage zeichnen.. h
irgendwie verstehen mich heute wenige ;) aber ich hab mich mal wieder nur zu blöd angestellt ;) habs hingekriegt ! trotzdem danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 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