Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: So 28.12.08 16:29 
Hallo,
ich habe ein eigene Datentyp erzeugt, beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
  TKommentare = record
    Panels: TPanel;
    Labels: TLabel;
    Bewertung: TJvLED;
    Datum: string;
  end;


und wenn ich jetzt ein paar Kommentare erzeuge, möchte ich das man mit ScrollBar1 nach unten oder nach oben scrollen kann, da ich Kommentare untereinander erstelle.

Ich hab das mal so versucht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm2.ScrollBar1Change(Sender: TObject);
begin
  Kommentare.Panels.Top := -ScrollBar1.Position;
end;


Das problem ist, das immer nur das letzte Kommentar gescrollt wird, also das zuletzt erstellte TKommentare.

Ich hab das ohne Array gemacht, also:
ausblenden Delphi-Quelltext
1:
2:
3:
var
  Form2: TForm2;
  Kommentare: TKommentare;


Wie könnte ich jetzt alle Kommentare abfragen, damit alle Kommentare gescrollt werden können?

Ich bedanke mich schonmal im Voraus.

MfG
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 28.12.08 16:32 
Zitat:
ausblenden Delphi-Quelltext
1:
2:
3:
var
  Form2: TForm2;
  Kommentare: TKommentare;


Kommentare ist somit genau ein einziger Record. Willst Du mehrere davon, musst Du Dir eine Liste, ein dynamisches Array o.ä. von TKommentare erzeugen.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 28.12.08 16:33 
Oder einer Liste, Baum ...

_________________
Markus Kinzler.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 28.12.08 16:36 
Hab ich doch gesagt :gruebel:
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: So 28.12.08 19:24 
Danke euch beiden.

Ich hab das dann über Arrays gemacht.

Noch ein Problem habe ich und zwar, wenn ich über ScrollBar Scrollen möchte, dann Scrollt er nur nach oben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm2.ScrollBar1Change(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to MaxCount do
  begin
    Kommentare[i].Panels.Top := Kommentare[i].Panels.Top - ScrollBar1.Position;
  end;
end;


Wenn ich das so mache:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm2.ScrollBar1Change(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to MaxCount do
  begin
    Kommentare[i].Panels.Top := -ScrollBar1.Position;
  end;
end;


dann werden alle Kommentare an Top Position 0 gesetzt und dann gescrollt.

Wie könnte ich das problem beheben?

MfG
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mo 29.12.08 00:00 
Hallo nochmal,
gibt es in Delphi 7 eine Frame wo man dort alles drauf packen kann?
Aslo mit Scrollbalken, sowie bei Websites wenn man ein teil der seite in Frames anzeigen lässt.

EDIT: Man kann ja ein Frames erzeugen unter Datei->Neu->Frame, aber ich möchte eine Frame auf mein Form2 erzeugen, geht das denn irgendwie?

EDIT: Ich habs hinbekommen, aber wie erzeuge ich ein Panel auf diese Frame?
Ich hab das mal so versucht:

ausblenden Delphi-Quelltext
1:
Kommentare[j].Panels := TPanel.Create(Frame4);					


Danke schonmal.

MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 29.12.08 00:21 
TFrame hast du falsch verstanden, das ist etwas anderes als ein Frame in Webseiten, etwas ähnlich, aber eigentlich etwas ganz anderes.
Du erstellst z.B. einen TFrame mit zwei Knöpfen, Ok und Abbrechen. Danach kannst du diesen Frame dann überall in deinem Projekt einsetzen auf allen Formularen. Änderst du dann im TFrame etwas, wird das überall geändert.

Was du vermutlich brauchst, ist eine TScrollBox, die stellt eine scrollbare Fläche innerhalb z.B. eines Formulars dar, in die du andere Komponenten legen kannst.
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mo 29.12.08 00:30 
Danke Dir.

Ich habs mit TFrame hinbekommen und kann dort schön meine Einträge anzeigen lassen.

ScrollBox wäre auch eine gute idee, aber ich lass das ambesten mal so.

Vielen Dank.

MfG