Hallo,
ich habe folgendes Problem,
ich klicke auf ein dynamisch erzeugtes Image, das OnMouseEvent wird innerhalb der Klasse TSpielfeld verarbeitet. Dabei wird ein Index eines Objekts aus einer Objektliste ermittelt, welche ebenfalls in der Klasse TSpielfeld wohnt.
Wie kann ich auf der Main Form auswerten, ob auf dem dynamischen Image was passiert ist?
Ich will nach dem Klick auf ein Kartenfeld die entsprechenden Werte in einem Panel, welches Comboboxen etc. beinhaltet, verändern wollen. Ich möchte ungern dieses auch noch dynamisch erstellen.
Wie realisiere ich den Input / Output?
Informationsweitergabe von dynamischen Objekten
-
- Beiträge: 35
- Registriert: Mo 1. Jul 2013, 21:30
- OS, Lazarus, FPC: Win 7 Laz 1.0.10
- CPU-Target: 32 Bit
- Wohnort: Leipzig
Re: Informationsweitergabe von dynamischen Objekten
Da keiner anwortet, versuch ich mal Anregungen zu geben (müsstest mal deine Frage anders formulieren, als Außenstehender weiss man nicht unbedingt wovon du redest):
Falls es darum geht, ein Image, was in "TSpielfeld" erzeugt wurde, in der "Main Form" zu nutzen, kannst du ganz einfach mit dem Zugriff auf TSpielfeld.Image realisieren.
Achtung beim Löschen! Wird das Image in deiner TSpielfeld-Klasse auch wieder gelöscht, musst du sicherstellen, dass dies erst dann passiert, wenn das Image auch von keiner anderen Klasse mehr benötigt wird bzw. darauf zugegriffen wird.
Um zu sehen, ob eine Änderung, bei einem kopierten Image, vorgenommen wurde, könntest du eine Variable oder ein Property TSpielFeld.Imagechanged (boolean) erstellen. Beim Kopieren des Images von einer Quelle setzt du TSpielFeld.Imagechanged auf false (es ist aktuell noch nichts geändert), sobald du eine Änderung am Image vornimmst auf true (Änderung!!!). Dies könntest du dann in deiner Main Form auswerten.
Geht es darum: Hast du mehrere Images (Array of TImage, TImageList) kannst du eine Property TSpielfeld.AktuellesImage vom Typ integer erstellen, die dir die Stelle des zuletzt genutzten Images zurückgibt.
Willst du jedoch mit deiner "Kind"-Klasse (TSpielfeld) die "Elternklasse" (Main Form) steuern, halte ich das nicht für einen guten Programmierstil und ist nur mit Verbiegungen zu realisieren. Diese Abhängikeiten würden dir in einem neuen Projekt/neuen Klasse, wo du die Klasse TSpielfeld wieder einsetzen willst, auf die Füße fallen.
Falls es darum geht, ein Image, was in "TSpielfeld" erzeugt wurde, in der "Main Form" zu nutzen, kannst du ganz einfach mit dem Zugriff auf TSpielfeld.Image realisieren.
Achtung beim Löschen! Wird das Image in deiner TSpielfeld-Klasse auch wieder gelöscht, musst du sicherstellen, dass dies erst dann passiert, wenn das Image auch von keiner anderen Klasse mehr benötigt wird bzw. darauf zugegriffen wird.
Um zu sehen, ob eine Änderung, bei einem kopierten Image, vorgenommen wurde, könntest du eine Variable oder ein Property TSpielFeld.Imagechanged (boolean) erstellen. Beim Kopieren des Images von einer Quelle setzt du TSpielFeld.Imagechanged auf false (es ist aktuell noch nichts geändert), sobald du eine Änderung am Image vornimmst auf true (Änderung!!!). Dies könntest du dann in deiner Main Form auswerten.
Geht es darum: Hast du mehrere Images (Array of TImage, TImageList) kannst du eine Property TSpielfeld.AktuellesImage vom Typ integer erstellen, die dir die Stelle des zuletzt genutzten Images zurückgibt.
Willst du jedoch mit deiner "Kind"-Klasse (TSpielfeld) die "Elternklasse" (Main Form) steuern, halte ich das nicht für einen guten Programmierstil und ist nur mit Verbiegungen zu realisieren. Diese Abhängikeiten würden dir in einem neuen Projekt/neuen Klasse, wo du die Klasse TSpielfeld wieder einsetzen willst, auf die Füße fallen.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Informationsweitergabe von dynamischen Objekten
Hallo,
wie kann ich denn ein Edit Feld als array in einer memo komponente speichern?, ich bekomme das irgendwie nicht so ganz hin,
Beispielsweise:
danke schon mal im vorraus
wie kann ich denn ein Edit Feld als array in einer memo komponente speichern?, ich bekomme das irgendwie nicht so ganz hin,
Beispielsweise:
Code: Alles auswählen
procedure TForm1.Edt_NameChange(Sender: TObject);
var EingabeName : string;
begin
// Eingabe Name
EingabeName:= Edt_Name.text;
Zuletzt geändert von Lori am Fr 9. Aug 2013, 21:15, insgesamt 1-mal geändert.
Grund: Highlighter
Grund: Highlighter
Re: Informationsweitergabe von dynamischen Objekten
Für Code bitte Highlighter verwenden! Post hat aber mit dem Eingangsthema nichts gemein, daher eigentlich einen neuen Thread öffnen!
Edit.Text in Memo.Lines einfügen:
Edit.Text in Memo.Lines einfügen:
Code: Alles auswählen
procedure TForm1.Edit1EditingDone(Sender: TObject);
begin
Memo1.Lines.Add(Edit1.Text);
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;