Gleisbild??? mit was???

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Flashbanger
Beiträge: 94
Registriert: Mi 28. Mär 2007, 22:01
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Gleisbild??? mit was???

Beitrag von Flashbanger »

Hallo ich hab das problem das ich ein gleisbild erstellen möchte. unter visual-basic würde ich eine PictureBox-box benutzen, aber wie heißt so was unter lazarus??? Die funktionsweise sollte klar sein aber ich erklär sie noch einmal.

Ich brauche ein fester, bzw einen berreich indem ich bitmaps aneinanderreihen und stapeln kann, außerdem muss ich sie anklicken können und ich muss jedes einzellne bild bearbeiten können.

MfG Flashbanger

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Gleisbild??? mit was???

Beitrag von Euklid »

Flashbanger hat geschrieben:Hallo ich hab das problem das ich ein gleisbild erstellen möchte. unter visual-basic würde ich eine PictureBox-box

Das nennt sich bei Lazarus TImage. Zu finden im Tab "Additional" der Komponentenleiste. Bedienung ähnlich einfach wie unter VB.

Viele Grüße, Euklid

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Gleisbild??? mit was???

Beitrag von theo »

Flashbanger hat geschrieben: Ich brauche ein fester, bzw einen berreich indem ich bitmaps aneinanderreihen und stapeln kann, außerdem muss ich sie anklicken können und ich muss jedes einzellne bild bearbeiten können.
Geht alles, aber dazu muss man erst programmieren lernen. ;-)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja dafür hast du verschiedene Möglichkeiten.

1. Du nutze die TImage von Lazarus.
Als Untergrund würde ich eine TScrollbox nehmen.

Jetzt erstellst du deine TImageListe und Setzte sie auf die gewünschte Position.
Nebenan der und Unternander ist gar nicht mal so schwer !
Wobei du müsstes auch noch wissen, wie viele sollen Nebenander gezeichnet werden ?

Zum Anklicken würde ich hier einfach das onClick Ereignis von TImage nutzen. einfach beim erstellen zuweisen und beim anklicken den Sender Auswerten bzw. erst zu einem TImage umwandeln und erst prüfen ob es ein TImage auch ist....
(ist zwar nicht erforderlich, aber schaden kann es auch nicht, oder ?).

2. Ich weiß jetzt nicht wie weit du bis in Object Pascal bzw. wie weit deine Kentnisse sind. Ich würde das evlt. Komplet alles in ein Panel selbst zeichnen.

also Scrolbox, Panel, ein Buffer(TBitMap) als Hintergrund.
In das Buffer zeichnest du jetzt deiner Bilder rein.
(Zu Emfehlen ist auch Theos OptBitmap... wegen den Vielen Grafik Foramten die unterstützt werden).

Beim Hinzufügen solltest du eine eigene kleine Klasse erstellen:
TItem = Class
Bild:TBitMap;
r:TRect;// Für die Collisiosn erkennung mit der Maus !
issel:Boolean;
end;

Nach dem das Hinzufügen und das Zeichnen geklappt hat, solltest du das onMouseDown Ereignisse von TPanel nutzen.
dort musst du alle Objekte in der Liste durchgehen und mit ptInRect prüfen ob ein Zusammenstoß mit der Maus passiert ist, wenn ja Markiere es...


und Fertig.... Der Aufwand ist nicht besonders groß *G*...

Ich hoffe das hat jetzt einer(du) Halbwegs verstanden.
MFG
Michael Springwald

Antworten