AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

PageControl

Ein Thema von Privateer3000 · begonnen am 14. Jun 2002 · letzter Beitrag vom 15. Jun 2002
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

PageControl

  Alt 14. Jun 2002, 22:12
HAllo Leuts,

in mühevoller Arbeit habe ich es endlich hinbekommen einen PageControl erfolgreich als Array auf ein Form zu zauber :
Code:
procedure TForm5.FormCreate(Sender: TObject);
var
  i: integer;
begin
  with PageControl1 do
    for i := 0 to 12 do
      with TTabSheet.Create(Self) do
      begin
        PageControl := PageControl1;
        Caption := IntToStr(Pages[i].TabIndex);
        case Pages[i].Tabindex of
0 : Caption :='Einleitung';
1 : Caption :='Gerechtigkeitsstreben';
2 : Caption :='Kampfbereitschaft';
3 : Caption :='Sicherheitsstreben';
4 : Caption :='Harmoniebedürfnis';
5 : Caption :='Fröhlichkeit';
6 : Caption :='Fremdbestimmung';
7 : Caption :='Sentimentalität';
8 : Caption :='Hilfsbereitschaft';
9 : Caption :='Intellektualität';
10 : Caption :='Erfolgswille';
11 : Caption :='Sensibilität';
12 : Caption :='Selbstbestimmung';
end;
end;
end;
Aber jetzt, um Himmels Willen, wie spricht man einen einzelnen Tab so an, dass beim Klick auf einen Tab auch was passiert.
In der Hilfe findet man ja gar nichts.

Bite, bitte helft mir!

Grüsse
Privateer3000
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 14. Jun 2002, 22:31
Moin Privateer,

Du musst auch dem OnChange des PageControls noch eine Routine zuweisen.
Oder allgemeiner gesagt:
Wenn Du eine visuelle Komponente dynamisch erzeugst, musst Du alles, was Du sonst im Objektinspektor einstellen würdest per Programm einstellen. Das gilt für die Eigenschaften ebenso, wie für die Ereignisse.
Eventuelle Routinen, wie eben z.B. die für das OnChange müssen dann natürlich schon exisiteren, damit sie zugewiesen werden können.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#3
  Alt 14. Jun 2002, 22:55
@Privateer3000
Das ist im Prinzip ganz einfach:
Komponente.onClick := MeinKlick - allerdings darfst Du nicht vergessen, Deine Prozedur muß alle erforderlichen Parameter für das jeweilige Ereignis aufweisen. Also zumindest das berühmte Sender as TObject muss vorhanden sein

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#4
  Alt 14. Jun 2002, 23:00
Danke Christian und Alfons,

ich glaub da brauch ich ein praktisches Beispiel.
Und ausserdem, muss diese Festlegung in der selben Schleife, also wo die Tabs erstellt werden hinzugefügt werden, oderwo anders?

Grüsse
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 15. Jun 2002, 00:21
Moin Privateer,

das könnte so aussehen:

Code:
type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    procedure FormCreate(Sender: TObject);
    procedure MyTabSheetOnShowEventMethode(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
begin
  with PageControl1 do
    for i := 0 to 12 do
      with TTabSheet.Create(Self) do
      begin
        PageControl := PageControl1;
        Tag        := i;
//        Caption := IntToStr(Pages[i].TabIndex);
        case Pages[i].Tabindex of
0 : begin
      Caption :='Einleitung';
      OnShow := MyTabSheetOnShowEventMethode;
    end;
1 : Caption :='Gerechtigkeitsstreben';
2 : Caption :='Kampfbereitschaft';
3 : Caption :='Sicherheitsstreben';
4 : Caption :='Harmoniebedürfnis';
5 : Caption :='Fröhlichkeit';
6 : Caption :='Fremdbestimmung';
7 : Caption :='Sentimentalität';
8 : Caption :='Hilfsbereitschaft';
9 : Caption :='Intellektualität';
10 : Caption :='Erfolgswille';
11 : Caption :='Sensibilität';
12 : Caption :='Selbstbestimmung';
end;
end;
end;

procedure TForm1.MyTabSheetOnShowEventMethode(Sender: TObject);
begin
  // Was auch immer dann passieren soll
  if Sender is TTabsheet then
  begin
    case TTabsheet(Sender).Tag of
      0 : ShowMessage('Einleitung');
    end;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6

Danke Christian

  Alt 15. Jun 2002, 09:40
Also muss die Eigenschaft beim Erstellen des Pagecontrol festgelegt werden (in der case).Aber statt "MyTabSheetOnShowEvenntMethode" muss das was anderes stehen?!
Ich meine welche Syntax...

Mal noch ne Frage, was passiert eigentlich hier?

Code:
if Sender is TTabsheet then
  begin
    case TTabsheet(Sender).Tag of
      0 : ShowMessage('Einleitung');
    end;
Kann das nicht nachvollziehen.

Schönes Wochenende
Privateer3000
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7
  Alt 15. Jun 2002, 09:46
Zitat:
Also muss die Eigenschaft beim Erstellen des Pagecontrol festgelegt werden (in der case).Aber statt "MyTabSheetOnShowEvenntMethode" muss das was anderes stehen?!
Nein. Hier:
Code:
OnShow := MyTabSheetOnShowEventMethode;
Wird dem Tabsheet zugewiesen, was passieren soll bei OnShow. Und in der Prozedur MyTabSheetOnShowEventMethode (noch länger ging es nicht, was Mathias ) wird noch mal mittels der Tag Eigenschaft unterschieden welcher TabSheet geklickt wurde.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#8
  Alt 15. Jun 2002, 10:39
Danke Luckie, das meint ich ja, das superultramegakosmischlange Wort
MyTabSheetOnShowEventMethode
ein "eigenes" Wort ist.

Sorry aba:

Zitat:
Wird dem Tabsheet zugewiesen, was passieren soll bei OnShow. Und in der Prozedur MyTabSheetOnShowEventMethode (noch länger ging es nicht, was Mathias ) wird noch mal mittels der Tag Eigenschaft unterschieden welcher TabSheet geklickt wurde.
Bahnhof? Welcher Zug? Wohin?
Nix verstanden...Roger..over...out
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9
  Alt 15. Jun 2002, 10:47
Zieh mal irgendein beliebiges Kontroll auf dein Formular und dann kuck mal im Obejktinspektor, dort findest du eine Eigenschaft "Tag". Dieser Eigenschaft kann ich einen beliebigen 32-Bit-Wert zuweisen. Und Mathias nutzt ihn, im die Einzelnen Sheets auseinander zu halten.

*tutu* *töfftöff* *pfeif*
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#10
  Alt 15. Jun 2002, 12:19
oki
sieht jetzt so aus:
Code:
0 :    begin
        Caption :='Einleitung';
        OnShow := onclick;
        Tag := 1;
        end;
wie identifizier ich jetzt diesen Klick in einer procedure?

HALT HALT HALT....habs begriffen
in der case..richtig??
AHHHHHHHHHHH

Danke an alle
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz