![]() |
Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Hallo!
Ich habe mal wieder ein Problem... und zwar weiß ich nicht, wie ich auf ein Object(TButton) mittels FindComponent aus einer anderen Unit zugreifen kann. Hier eine Idee von mir, die soweit keine Fehlermeldungen liefert, bis auf das Delphi TButton nicht erkennt, doch weiß ich nicht, wie ich dieses Problem lösen soll. USpiel (Unit2) Kopf:
Delphi-Quellcode:
Prozedur in USpiel (Unit2):
unit USpiel;
interface uses Vcl.Dialogs, Classes, SysUtils, Forms; type TLevel = 1..16; type TZufallszahlen = 1..4; type TSpiel = class(TComponent) private byLevel : TLevel; byFragenNr : Integer; public constructor Create; destructor Destroy; procedure FragenHolen(Level:Integer; Form: TForm); procedure IncLevel; procedure Optisch(Ereignis: Integer); function LevelHolen() : Integer; function AntwortRichtig(BAntwort: string) : Boolean; end;
Delphi-Quellcode:
procedure TSpiel.FragenHolen(Level:Integer; Form :TForm);
var FragenAnzahl, LineAnzahl, FragenLine, LineNr, I, c : Integer; MngZufallszahlen : Set of TZufallszahlen; Zufallszahl : TZufallszahlen; sl : TStringList; begin [ ...... ] //ausgelassen c := 0; while (c < 5) do begin Zufallszahl := Random(4)+1; if not (Zufallszahl in MngZufallszahlen) then begin MngZufallszahlen := MngZufallszahlen + [Zufallszahl]; inc(c); TButton(Form.FindComponent('AntwortButton'+ IntToStr(c))) := sl[Fragenline + Zufallszahl]; end end; finally sl.free; end; end else Optisch(2); end; Mein Problem liegt hier:
Delphi-Quellcode:
Meine Frage ist also: Wie schaffe ich es, dass TButton erkannt wird? Wenn ich UHaupt(Unit1) in die Uses schreibe, treten Probleme mit der Erkennung von Methoden aus Unit2 (USpiel) auf...
TButton(Form.FindComponent('AntwortButton'+ IntToStr(c))) := sl[Fragenline + Zufallszahl];
Hat einer eine Idee? Bin für jeden Gedankenanstoß dankbar :) MfG MajorNudelholz |
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Delphi-Quellcode:
Was soll das überhaupt werden? Du weißt einem Objekt, der Schaltfläche in diesem Fall, ein Item aus einer StringListe zu?
TButton(Form.FindComponent('AntwortButton'+ IntToStr(c))) := sl[Fragenline + Zufallszahl];
Erklär mal, was du eigentlich machen willst. |
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Achso, ja oke, mir fällt Grade auf, dass ich im Laufe des Probierens das ".Caption" vergessen habe. Das hat aber trotzdem nicht funktioniert.
Zu dem, was ich machen will: Ich möchte WWM programmieren. Dabei soll den die Fragen aus einer .txt ausgelesen. Es gibt für jedes Level eine eigene .txt, mit anderen Fragen und Antworten natürlich. Je in FragenBlock steht in 5 Zeilen untereinander. Ich möchte natürlixh, dass sich die Antwortmöglichkeiten auf den Button (über Caption) immer zufällig verändern. Mein Problem, dass ich derzeit habe ist, dass ich es nichttp hinkriege, diese Antwortmöglichkeit dem Caption des Buttons in der anderen Unit zu überführen. Es funktioniert wirklich alles bisher nur eben TButton wird mir als undeklarierter Bezeichner angegeben. Hat einer eine Idee? Ggf. Stelle ich auch nochmal beide Units hoch, falls das hilft?
Delphi-Quellcode:
TButton (Form.FindComponent('AntwortButton'+ IntToStr(c))).Caption := sl[Fragenline + Zufallszahl];
|
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Mach es Dir doch ein bisschen einfacher: In der Unit, die die Buttons kennt, veröffentlichst du eine Methode, die als Argument die Liste der Antworten annimmt, und dann wiederrum die Buttons so befüllt, wie Du es gerne hättest. Du solltest Dann auch nicht unbedingt mit FindComponent hantieren müssen, Du kennst ja die Buttons schließlich.
Sherlock |
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Zitat:
|
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Zitat:
|
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Zitat:
|
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Zitat:
![]() |
AW: Mit TButton über FindComponent auf Objekt in anderer Unit zugreifen
Cursor auf TButton und dann F1? :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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 by Thomas Breitkreuz