Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 17, 2025 23:26

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Objekte Einfügen zur Laufzeit
BeitragVerfasst: Do Okt 14, 2004 20:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Okt 09, 2003 15:28
Beiträge: 14
Wohnort: Bochum
Hallo allerseits.
Für ein Projekt, das ich jetzt starte, muss ich zur Laufzeit eine dynamisch Anzahl von TScrollBars auf einem Formular erstellen. Die sollen dann untereinander angeordnet sein und beim Change eine gemeinsame Prozedur ausführen, an die dann der Index übergeben wird. So nach dem Motto:

procedure TForm1.SBChange(SEnder:TObject);
var index:Integer;
begin
index := (Sender as TScrollBar).Tag;
end;

[Constructor]
SB.Tag := n;
SB.Top := n * 30;
SB.onChange := SBChange;

Wie kann ich zur Laufzeit eine solche Scrollbar erstellen und an das Formular binden und später wieder freigeben?
Der Hendrik


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 14, 2004 20:39 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
wenn ich dich richtig verstanden habe dann sieht das was du brauchst so aus :

erstmal ne neue variable für die Scrollbars :
Code:
  1. var
  2.   sbarray : array of TScrollBar;
  3.  


Dann in deiner procedur wo du die Scrollbars erstellen willst :
Code:
  1. var
  2.  n: integer;
  3. begin
  4.   for n:=1 to BarCount do //so viele wie du brauchst;
  5.   begin
  6.     setlength(sbarray,length(sbarray)+1);
  7.     sbarray[High(sbarray)] := TScrollBar.Create(Form1); //Handle zu deinem Formular;
  8.     with sbarray[High(sbarray)] do
  9.     begin
  10.       parent := Form1;
  11.       Tag := length(sbarray);
  12.       Top := length(sbarray) * 30;
  13.       OnChange := SBChange;
  14.     end;
  15.   end;
  16. end;
  17.  


und zum freigeben :
Code:
  1. var
  2.  n : integer;
  3. begin
  4.   for n:=0 to high(sbarray) do
  5.   begin
  6.     sbarray[n].Free;
  7.     sbarray[n] := nil;
  8.   end;
  9.  


ps. Ich hab den Code jetzt nur hier schnell ohne ihn zu testen zusammengeschrieben - können durchaus noch Fehler drin sein ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 14, 2004 21:25 
Offline
DGL Member
Benutzeravatar

Registriert: Do Okt 09, 2003 15:28
Beiträge: 14
Wohnort: Bochum
Danke!
Das ist lieb von dir, dass du mir so schnell und zuverlässig antwortest! :-)
Bin echt schon 'ne ganze Weile am Probieren gewesen und hab alle möglichen Funktionen durchgetestet.

Obj.Parent := Form1;
war die Zeile, die mir im Endeffekt die ganze Zeit gefehlt hat.
Du bist mein Retter! Danke!
:-)

Der Hendrik


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.021s | 17 Queries | GZIP : On ]