Registriert seit: 19. Sep 2011
Ort: Deutschland
485 Beiträge
Delphi 11 Alexandria
|
AW: Zugriff auf Frame-Objekte
20. Mai 2012, 18:22
Man Dennis, das ist so banal. Zeig einfach den Code, dann sieht man es sofort.
Delphi-Quellcode:
Type
TMyFrame = Clas (TFrame)
...
public
Procedure ChangeLanguage();
...
end;
Das habe ich auch schon probiert, es funktioniert nicht, und das aus 3 Gründen. - Wenn ich die Methode "Public" mache, muss ich alle der Objekte aktualisieren, das wäre aber nur eine Frage des Auswand, würde ich sogar in Kauf nehmen
- Nachdem ich die Objektnamen geändert habe (also von "Button1" auf "MyFrame.Button1") und das ganze kompiliere, kommt die Frage, ob ich uMyFrame in uMyFrame einbinden will, was ja sowieso schon mal blödsinn ist. Wenn ich auf "Ja" klicke und neu starte, kommt die fehlermeldung, dass ich eine Unit nicht in sich selber einbinden könne (was ja auch logisch ist)
- Naja, ein drittes Problem wäre, dass ich insgesamt 5 Frames habe, und jedes eine "ChangeLanguage"-Prozedur hat. Diese will ich von der Haupt-Unit nacheinander brav aufrufen, deshalb die dekleration innerhalb des Frames
Hier der Header meiner Haupt- Unit:
Delphi-Quellcode:
unit uUpdater;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls, ThemeMgr, IniFiles,
uWelcome, uLicense, uProgress, uFinish;
type
TfmUpdater = class(TForm)
pnSettings: TPanel;
coLanguage: TComboBox;
laLanguage: TLabel;
pnButtons: TPanel;
btCancel: TButton;
btInstall: TButton;
laCopyright: TLabel;
ThemeManager1: TThemeManager;
procedure Step(StepID: Integer);
procedure ChangeLanguage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure coLanguageChange(Sender: TObject);
private
{ Private-Deklarationen }
Frame_Welcome: TFrame;
Frame_License: TFrame;
Frame_Progress: TFrame;
Frame_Finish: TFrame;
LangIsGer: Boolean;
CurrentStep: Integer;
public
{ Public-Deklarationen }
Next: String;
Install: String;
Finish: String;
Msg_Cancel: String;
end;
Hier der Header einer meiner Frame-Units:
Delphi-Quellcode:
unit uLicense;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TfrLicense = class(TFrame)
laHeader: TLabel;
reLicense: TRichEdit;
rbAgree: TRadioButton;
rbDecline: TRadioButton;
procedure ChangeLanguage(Ger: Boolean);
procedure rbAgreeClick(Sender: TObject);
procedure rbDeclineClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
implementation
uses uUpdater;
Dennis
|