AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Viele Trackbars aber 1 Procedur

Ein Thema von Opal · begonnen am 2. Aug 2004 · letzter Beitrag vom 2. Aug 2004
Antwort Antwort
Opal

Registriert seit: 31. Jul 2004
4 Beiträge
 
#1

Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 12:06
Hi,

so hab mich mal in der genialen CL umgeschaut aber nix gefunden. Vielleicht ist es auch ein logisches Problem was ich selbst hinbekommen müsste.

Also..ich habe ein Programm geschrieben was viele Werte aus einer Datei liest, welche einem Spiel als
Konfigurations Datie dienst.

Das ganze Ding sieht so aus:

Bild - Trackbar - Label
Bild - Trackbar - Label
Bild - Trackbar - Label
Bild - Trackbar - Label

Das Bild ist dazu dar, damit der USer weuiss um was es sich handelt. Die Trackbar um den Wert zu erhöhen oder zu verringern. Und das Label natürlich zum anzeigen.

Nun habe ich ca. 30 Trackbars. Wenn der User diese Verschiebt soll sich das Label natürlich dementsprechend ändern. Aber muss ich jetzt 30 CHange Proceduren machen oder geht das auch mit nem bisschen weniger Code ??

Ich bin ein Newbie also seid nicht zu hart
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#2

Re: Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 12:09
Du kannst allen Trackbars das gleiche Ereignis zuweisen.

Dort wird als Parameter ein sender übergeben. Das ist genau diejenige Trackbar, die das Ereignis auslöst. Du kannst also z.B.
Delphi-Quellcode:
begin
   if sender = Trackbar1 then
   begin
      //
   end
   else if sender = Trackbar2 then
   begin
      //
   end;
end;
direkt abfragen.

Du kannst dann ggf. auch aus dem Namen die Nummer extrahieren. (sender as TTrackbar).Name[ length((sender as TTrackbar).Name) -1] Darüber kannst Du dann auch das Label referenzieren.

Edit Nachtrag: Opal: Herzlich Willkommen in der DP!
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#3

Re: Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 12:14
Du kannst auch den Trackbars verschiedene Tag-Werte geben und sie darüber identifizieren. Allen Trackbars die gleiche OnChange-Methode zuweisen und darin die unterscheidung treffen:
Delphi-Quellcode:
IF Sender IS TTrackBar THEN
CASE TTrackBar(Sender).Tag OF
  1 : {...} // Erste Trackbar wurde geändert
  2 : {...} // Zweite Trackbar wurde geändert
END; { Case }
Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 12:26
Zitat von Opal:
Nun habe ich ca. 30 Trackbars. Wenn der User diese Verschiebt soll sich das Label natürlich dementsprechend ändern.
Bei der Menge an Trackbars wäre es sinnvoll, eine modifizierte Trackbar-Komponente zu verwenden,
die ihren Wert gleich mit anzeigt. Die Labels wären dann überflüssig und damit auch die Eventhandler
für OnChange.
siehe auf Torry's Trackbars speziell die Komponente TExTrackBar v.2.0.
Andreas
  Mit Zitat antworten Zitat
Opal

Registriert seit: 31. Jul 2004
4 Beiträge
 
#5

Re: Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 12:29
THX a lot...sieht irgendwie kompliziert aus. Was sind denn Tags ???

Habe noch ein Problem. Schaut euch mal diesen Code an :

Delphi-Quellcode:
// Setzten der Werte Label
  frmMain.lblEisenerz.Caption := WertEisenerz;
  frmMain.lblGold.Caption := WertGold;
  frmMain.lblSalzstein.Caption := WertSalzstein;
  frmMain.lblSteine.Caption := WertStein;
  frmMain.lblEdelsteine.Caption := WertEdelstein;
  frmMain.lblMamorstein.Caption := WertMamorstein;

  frmMain.lblWerkzeuge.Caption := WertWerkzeug;
  frmMain.lblHolz.Caption := WertHolz;
  frmMain.lblZiegel.Caption := WertZiegel;
  frmMain.lblMamor.Caption := WertMamor;

  frmMain.lblNahrung.Caption := WertNahrung;
  frmMain.lblLeder.Caption := WertLeder;
  frmMain.lblStoffe.Caption := WertStoffe;
  frmMain.lblWein.Caption := WertWein;
  frmMain.lblPelze.Caption := WertPelze;
  frmMain.lblHeilkrauter.Caption:= WertHeilkrauter;

  frmMain.lblSchwert.Caption := WertSchwert;
  frmMain.lblBogen.Caption := WertBogen;
  frmMain.lblArmbrust.Caption := WertArmbrust;
  frmMain.lblMuskete.Caption := WertMuskete;
  frmMain.lblRustung.Caption := WertRustung;
  frmMain.lblLanze.Caption := WertLanze;
  frmMain.lblAxt.Caption := WertAxt;
  frmMain.lblKanonen.Caption := WertKanonen;
  
  // Setzten der Werte Trackbar
  frmMain.tbEisenerz.Position := StrToInt(WertEisenerz);
  frmMain.tbGold.Position := StrToInt(WertGold);
  frmMain.tbSalzstein.Position := StrToInt(WertSalzstein);
  frmMain.tbSteine.Position := StrToInt(WertStein);
  frmMain.tbEdelsteine.Position := StrToInt(WertEdelstein);
  frmMain.tbMamorstein.Position := StrToInt(WertMamorstein);

  frmMain.tbWerkzeuge.Position := StrToInt(WertWerkzeug);
  frmMain.tbHolz.Position := StrToInt(WertHolz);
  frmMain.tbZiegel.Position := StrToInt(WertZiegel);
  frmMain.tbMamor.Position := StrToInt(WertMamor);

  frmMain.tbNahrung.Position := StrToInt(WertNahrung);
  frmMain.tbLeder.Position := StrToInt(WertLeder);
  frmMain.tbStoffe.Position := StrToInt(WertStoffe);
  frmMain.tbWein.Position := StrToInt(WertWein);
  frmMain.tbPelze.Position := StrToInt(WertPelze);
  frmMain.tbHeilkrauter.Position:= StrToInt(WertHeilkrauter);

  frmMain.tbSchwert.Position := StrToInt(WertSchwert);
  frmMain.tbBogen.Position := StrToInt(WertBogen);
  frmMain.tbArmbrust.Position := StrToInt(WertArmbrust);
  frmMain.tbMuskete.Position := StrToInt(WertMuskete);
  frmMain.tbRustung.Position := StrToInt(WertRustung);
  frmMain.tbLanze.Position := StrToInt(WertLanze);
  frmMain.tbAxt.Position := StrToInt(WertAxt);
  frmMain.tbKanonen.Position := StrToInt(WertKanonen);
Das müsste doch acuh einfacher gehen oder ??? Habe versucht ne Funktion zu schreiben wo man einfach den wert ( zum Beispiel: Kanonen ) übergibt. Aber das Funktioniert nicht.

Zum Beispiel : frmMain.tb+Übergebener Wert+.Position := ect....
Was anderes fällt mir nicht ein
Wie gesagt Newbie
  Mit Zitat antworten Zitat
Opal

Registriert seit: 31. Jul 2004
4 Beiträge
 
#6

Re: Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 12:32
Zitat von shmia:
Bei der Menge an Trackbars wäre es sinnvoll, eine modifizierte Trackbar-Komponente zu verwenden,
die ihren Wert gleich mit anzeigt. Die Labels wären dann überflüssig und damit auch die Eventhandler
für OnChange.
siehe auf Torry's Trackbars speziell die Komponente TExTrackBar v.2.0.
THX A LOOOOOOOOOOOOOOOOOOT. Das löst das Problem
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#7

Re: Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 12:37
Such hier mal in der nach Hier im Forum suchenFindComponent. Du kannst hier eine Komponente nach dem Namen suchen.

Dann gibts Du z.B. rüber
[code]procedure SetValue(name: string; wert: integer);[code]

In der Mehode suchst Du dann einmal nach lbl+name und einmal nach tb+name.
Dann hast Du das enstrpechende Panel bzw. deen namen und kannst dann Position bzw. Caption entsprechend setzen. Du musst diese Methode dann halt pro Dingsbums einmal aufrufen.

Ps: Bitte in Zukunft für eine neue Frage auch einen neuen Thread starten. Das ist einfach übersichtlicher
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Opal

Registriert seit: 31. Jul 2004
4 Beiträge
 
#8

Re: Viele Trackbars aber 1 Procedur

  Alt 2. Aug 2004, 20:15
Danke auch dir
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:42 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