Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi laden von canvas koordinaten und auf Timage zeichnen.. help (https://www.delphipraxis.net/13577-laden-von-canvas-koordinaten-und-auf-timage-zeichnen-help.html)

CReber 21. Dez 2003 17:39


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;

CReber 21. Dez 2003 18:03

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

H4ndy 21. Dez 2003 19:29

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:
...
var bitmap: TBitmap //Global!
...
//Code zum Bitmap erzeugen, Größe setzten, ...
...
procedure PaintboxPaint(Sender: TObject);
begin
paintbox.Canvas.Draw(0,0,bitmap);
end;
Das müsste jetzt eigentlich funktionieren ;)

SirThornberry 21. Dez 2003 19:31

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???

CReber 21. Dez 2003 20:24

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