AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Objekt an Trackbar Position ausrichten
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt an Trackbar Position ausrichten

Ein Thema von Luki206 · begonnen am 27. Mär 2014 · letzter Beitrag vom 2. Apr 2014
Antwort Antwort
Seite 1 von 3  1 23      
Luki206
(Gast)

n/a Beiträge
 
#1

Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 15:59
Hi DP, ich stehe vor einem Problem nämlich will ich ein Objekt zur Laufzeit erzeugen und dieses dann an der Trackbarposition ausrichten. Es soll also genau da entstehen wo der Trackbar Regler im Moment steht. Das ganze dient dazu Positionen aus der Trackbar zu speichern und später wieder aufzurufen. Hier ist mein bisheriger Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Img: TImage; pos, top: Integer; h: Cardinal; res: TResourcestream; Graphic: TGraphic;
begin
  if not Cut1 then begin
  eins := Trb.Position;
  pos := Trb.Position * Form1.Width div 100;
  Img := TImage.Create(self);
  Img.Width := 32;
  Img.Height := 32;
  Img.Top := Trb.Top-30;
  Img.Left := pos-16;
  h := LoadLibrary('test.dll');
  res := Tresourcestream.CreateFromID(h, 8, RT_RCDATA);
  Graphic:= TPngImage.Create;
  try
    Graphic.LoadFromStream(res);
    Img.Picture.Assign(Graphic);
  finally
   res.Free;
   Graphic.Free;
  end;
  self.InsertControl(Img);
  cut1 := true;
end else begin
  Second := eins;
  Trb.Position := eins;
end;
end;
Ich hole mir die Position der Trackpar in Pixeln mit dem: pos := Trb.Position * Form1.Width div 100; das ist aber nicht das Gelbe vom Ei da die Position nicht stimmt bzw. sehr stark abweicht.
Wie kann ich eine 'elegantere' Methode benutzen falls es eine gibt
Danke
Luki
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 16:09
Geht die TrackBar denn über die gesamte Breite der Form?

Übrigens fehlt zu dem LoadLibrary ein entsprechender FreeLibrary-Aufruf. Und die Rückgabe von LoadLibrary sollte ebenfalls ausgewertet werden.

MfG Dalai
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#3

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 16:13
Ja, nur ist der Anchor akRight aktiv deshalb habe ich auch ein Problem mit den erzeugten Images aber egal, ich werte doch das LoadLibrary mit
Code:
h := ...
aus oder verstehe ich gerade etwas falsch?

Geändert von Luki206 (27. Mär 2014 um 16:29 Uhr)
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 16:35
Was machst du, wenn's Test.dll nicht gibt oder er aus irgendwelchen anderen Gründen die DLL nicht laden konnte?

MSDN-Library durchsuchenLoadLibrary

if (h = 0) then ... Fehler
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#5

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 16:37
Ach so, ups.. Und wie kann ich das mit der Trackbar machen wenn sie über die ganze Form geht also Align alBottom?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 16:42
Da es TrackBar.SchiebereglerPositionX m.E. nicht gibt wird es wohl schwierig werden.

Du könntest ggf. eine eigene Komponente ableiten und die obige (neu hinzu zu fügende) Eigenschaft innerhalb der Zeichenfunktion selbst belegen.

Ansonsten kannst Du vielleicht die Position selbst über Prozente von Width ermitteln, aber das kann dann durchaus Abweichungen enthalten.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 17:11
Eventuell verstehe ich die Frage falsch, dann den Tipp ignorieren.

So wie es verstanden habe willst du ein Objekt an einem anderen Objekt aurichten. Das Beispiel (siehe Anhang) hier: http://www.delphipraxis.net/1253570-post9.html macht zwar etwas anderes, es richtet aber auch ein Fenster an einem Objekt aus. Evtl. reicht das schon.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#8

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 17:19
Mit Align alBottom (TrackBar geht über die gesamte Breite der Form, sofern sie darauf liegt) müsste der vorhandene Code doch schon passen. Nehmen wir an, die Form ist 1000 Pixel breit, die TrackBar hat Max=100 Schritte und der Slider steht bei Position=40. Dann kommt bei der Rechnung mit obigem Code ein Left-Wert von 400 raus, was 40 Prozent entspricht:
Code:
Trb.Position * Form1.Width div 100;
40           * 1000          / 100    = 400
Oder überseh ich was?

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#9

AW: Objekt an Trackbar Position ausrichten

  Alt 27. Mär 2014, 17:53
Der Schieberegler, bzw. dessen Mitte wird ja nicht über die gesamte KomponentenLlänge verschoben.

Am Anfang und Ende gibt es ein Offset, welches man natürlich noch mit einrechnen muß.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#10

AW: Objekt an Trackbar Position ausrichten

  Alt 28. Mär 2014, 13:56
Ok danke für die Hilfe Ich habe das jetzt einmal ausprobiert und habe mit ein paar Zahlen jongliert und kam dann auf folgenden Code: pos := (Trb.Position * (Trb.Width div 100))+25; //pos ist die Position für das Image, Trb ist die Trackbar Und wenn ich dann jetzt das Objekt erzeuge ist es ziemlich genau zur Trackbar Position
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:28 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