![]() |
Re: Gleisbild??? mit was??? Paintbox für delphi??
Draw Grind sieht gut aus, vor alles das beispiel mit dem schachfeld kommt meinem gleisbild doch sehr nahe.....
MfG snow |
Re: Gleisbild??? mit was??? Paintbox für delphi??
Zitat:
Vielleicht wäre dann genau jetzt der Zeitpunkt, sich mit diesem Thema auseinander zu setzen :?: :!: Du möchtest ja schon etwas recht spezielles, was sich vom Sinn her nicht unbedingt auf alle 'Lebenslagen' übertragen lässt. Die Idee eines Gleisplanes ist schon nicht schlecht. Und genau aus diesem Grund würde ich mich bemühen, das ordentlich zu machen, und nicht im Endeffekt vor irgendeinem zusammengefrickelten Ergebnis zu stehen. Ich kann da nur für mich sprechen. Und ich hätte den Anspruch, das bestmögliche Ergebnis zu erzielen. Auch wenn es dadurch ggf. länger dauert, und ich mich in unbekannte Bereiche einarbeiten muss. Das soll nicht heissen, dass man nicht auch mit bereits existierenden Komponenten ein akzeptables Ergebnis erzielen kann. Doch wird man damit irgendwann sicherlich an seine Grenzen stoßen. Edit: Rechtschreibfehler ausgebaut. |
Re: Gleisbild??? mit was??? Paintbox für delphi??
Naja so speziell ist es auch nicht. Wie gesagt ein gleisplan ist nix anderes als ein 2D-Schachfeld. Ich denke wenn Drawgrid für ein schachbrett reicht dann auch für ein gleisbild.
MfG snow ich werde nicht drumrum kommen irgendwann etwas selber zu machen spätestens wenn mein program eine automatik bekommen soll aber bis dahin will ich erst mal manuell etwas erfahrung sammeln. MfG snow |
Re: Gleisbild??? mit was??? Paintbox für delphi??
Eine eigene Komponente zu schreiben ist kaum schwerer als eine vorhandene zu verwenden.
Du deklarierst einfach eine Klasse und leitest sie (in deinem Fall nützlich) von TCustomControl ab. Dann überschreibst du die Paint-Methode, deklarierst einen Handler für das OnClick-Ereignis und schon bist du so ziemlich fertig. Dann musst du noch den gleichen Code schreiben wie für dein DrawGrid. |
Re: Gleisbild??? mit was??? Paintbox für delphi??
So habs jetzt mit drawgrid versucht. hier mal mein quellcode
Delphi-Quellcode:
unit Unit1;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Grids, Buttons, ComCtrls, ExtCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; DrawGrid1: TDrawGrid; bitmap1: tbitmap; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin bitmap1.LoadFromfile('F:\JTSSfMB\icons\scheinwerfein.bmp'); DrawGrid1.Canvas.draw(1,1 ,bitmap1); end; initialization {$I Unit1.lrs} end. Wenn ich jetztausführe kommt wenn ich auf buton1 klicke das hier Zitat:
Was hab ich falsch gemacht. (die datei exestiert und ist ein 256farben bitmap) die zellen sind groß genug MfG snow |
Re: Gleisbild??? mit was??? Paintbox für delphi??
Habe kein Lazarus, aber unter Delphi 'funktioniert' folgendes:
Delphi-Quellcode:
Unit Unit1;
Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; Type TForm1 = Class(TForm) DrawGrid1: TDrawGrid; Button1: TButton; Procedure Button1Click(Sender: TObject); private Image1: TBitmap; End; Var Form1: TForm1; Implementation {$R *.dfm} Procedure TForm1.Button1Click(Sender: TObject); Begin Image1 := TBitmap.Create; Image1.LoadFromFile('C:\Download\snap00854.bmp'); DrawGrid1.Canvas.Draw(1, 1, Image1); End; End. |
Re: Gleisbild??? mit was??? Paintbox für delphi??
Danke funzt bei mir auch hab das .create vergessen.
MfG snow Edit:// weis jemand warum ich mit
Delphi-Quellcode:
das bitmap nicht im feld (2|1) bekomme sondern auf pixel (2|1)??? kann ich das automatisch in eine anderes zelle schicken oder murr ich das ganzen dann errechnen???
DrawGrid1.Canvas.draw(2,1 ,bitmap1);
|
Re: Gleisbild??? mit was??? Paintbox für delphi??
jo, das musst du errechnen.
Du solltest aber im Draw-Event (OnCustomDraw oder so ähnlich) die abmaßungen der jeweiligen zelle direkt mitgeteilt bekommen. |
Re: Gleisbild??? mit was??? Paintbox für delphi??
Delphi-Quellcode:
Edit: Methode zum Zeichnen eingefügt
Procedure TForm1.Button1Click(Sender: TObject);
Var p: TRect; Begin Image1 := TBitmap.Create; Image1.LoadFromFile('C:\Download\snap00854.bmp'); DrawToCell(DrawGrid1, Image1, 3, 1); End; Procedure TForm1.DrawToCell(_Grid: TDrawGrid; _Bitmap: TBitmap; _Col, _Row: Integer); Var p: TRect; Begin p := _Grid.CellRect(_Col, _Row); _Grid.Canvas.Draw(p.Left, p.Top, _Bitmap); End; |
Re: Gleisbild??? mit was??? Paintbox für delphi??
So ich hab jetzt eine form,in der ich die abmaße des gleisbildes eingeben kann. dann wird eine anderer Form aufgerufen, in der sich das drawgrid gefindet. Jetzt brauch ich die möglichkeit das ich die position eines mit der maus markierten feld herausfindet.
wie geht das?? MfG snow |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 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