Class TNotebook und Tpage
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Class TNotebook und Tpage
hallo zusammen,
ich habe eine Klasse TmyNotebook die von TNotebook abgeleitet ist.
Das Objekt wird im Programm zur Laufzeit in bestimmten Abhängigkeiten erstellt.
Ich würde jetzt gerne meinem TMyNotebook in einer privaten Funktion in der Klasse TmyNotebook selbst einige Elemente Tpage hinzufügen.
Ich erstelle die page mit:
myPage := TPage.create(self);
die Zuweisung
mypage.Parent:= TMyNotebook;
führt zu folgendem Fehler:
Incompatible type for arg no. 1: Got "Class Of TMyM1Notebook", expected "TWinControl"
wen muss ich da als parent zuweisen, oder funktioniert das ganz anders?
Danke für eure Info
Gruss KH
ich habe eine Klasse TmyNotebook die von TNotebook abgeleitet ist.
Das Objekt wird im Programm zur Laufzeit in bestimmten Abhängigkeiten erstellt.
Ich würde jetzt gerne meinem TMyNotebook in einer privaten Funktion in der Klasse TmyNotebook selbst einige Elemente Tpage hinzufügen.
Ich erstelle die page mit:
myPage := TPage.create(self);
die Zuweisung
mypage.Parent:= TMyNotebook;
führt zu folgendem Fehler:
Incompatible type for arg no. 1: Got "Class Of TMyM1Notebook", expected "TWinControl"
wen muss ich da als parent zuweisen, oder funktioniert das ganz anders?
Danke für eure Info
Gruss KH
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
hallo Theo,
danke für deine Antwort.
Was die Fehlermeldung bedeuted ist mir klar.
Ich wollte ja in der Klasse TmyNotebook eine Page erstellen und quasi die Klasse selbst als parent zuweisen.
das scheint aber so nicht zu gehen
Also nochmal zur Verdeutlichung:
ich möchte eine Klasse MyPannel erstellen die während der Laufzeit eine variable anzahl von seiten erhält.
Wie sonst kann ich das machen ?
Gruss KH
Aber wie kann ich das sonst machen ?
danke für deine Antwort.
Was die Fehlermeldung bedeuted ist mir klar.
Ich wollte ja in der Klasse TmyNotebook eine Page erstellen und quasi die Klasse selbst als parent zuweisen.
das scheint aber so nicht zu gehen

Also nochmal zur Verdeutlichung:
ich möchte eine Klasse MyPannel erstellen die während der Laufzeit eine variable anzahl von seiten erhält.
Wie sonst kann ich das machen ?
Gruss KH
Aber wie kann ich das sonst machen ?
-
- 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)
Wenn ich es richtig verstehe möchtest du eine neue Seite zum Notebook hinzufügen.
Das könntest du z.b. so machen:
Das sollte eigentlich schon reichen.
Wenn du jetzt eine oder mehrer Komponenten hinzufügen möchtest könntest du es so machen:
Kann sein das es Items nicht gibt dann müsstest du Pages versuchen. Aber so in Etwa sollte es gehen.
Auch mit anderen Komponenten wie z.b. einem Panel.
Das könntest du z.b. so machen:
Code: Alles auswählen
procedure AddPage(const aCaption:String);
var
tab:TTabSheet;
begin
tab:=TTabSheet.Create(?);
tab.parent:=NoteBook1
end;
Wenn du jetzt eine oder mehrer Komponenten hinzufügen möchtest könntest du es so machen:
Code: Alles auswählen
procedure addButton;
var
Button:TButton;
sheet:TTabSheet;
begin
// damit wird der Letzte TabSheet geholt der hinzugefügt wurden ist.
// Einfach währe es natürlich das in der Procedure AddPage zu machen, aber so geht es auch(sollte)
sheet:=NoteBook1.Items[NoteBook1items.Count-1]
Button:=TButton.create(Sheet);
button.Caption:='Hallo';
// Den Parent sollte immer zu letzt gesetzt werden
button.parent:=Sheet
end;
Auch mit anderen Komponenten wie z.b. einem Panel.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
hallo Michael,
ja das hast du richtig verstanden.
Ich wollte es aber so machen, dass ich eine Klasse TNotebook erstelle, die die Sheets schon enthält.
Hintergrund ist der, dass die Anzahl sheets variiert und ich dachte ich erstelle einfach ne Klasse die in abhängigkeit von bestimmten Einstellungen seine Sheets in variabler Anzahl quasi selbst hinzufügen kann.
Gruss KH
ja das hast du richtig verstanden.
Ich wollte es aber so machen, dass ich eine Klasse TNotebook erstelle, die die Sheets schon enthält.
Hintergrund ist der, dass die Anzahl sheets variiert und ich dachte ich erstelle einfach ne Klasse die in abhängigkeit von bestimmten Einstellungen seine Sheets in variabler Anzahl quasi selbst hinzufügen kann.
Gruss KH