AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) TrackBar auf Button click im separtem Fenster erzeugen?
Thema durchsuchen
Ansicht
Themen-Optionen

TrackBar auf Button click im separtem Fenster erzeugen?

Ein Thema von lbccaleb · begonnen am 15. Mär 2009 · letzter Beitrag vom 1. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#1

TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 15. Mär 2009, 19:57
Hey Community,

hab mal wieder ein kleines Problem, wo ich net so recht weiß wie ich das vollenden soll

Naja, ich würde gerne eine TrackBar per WinAPI erzeugen, soweit so gut und erstmal kein Problem!
Nun soll das alles aber in einem neuen Fenster passieren wie es bekannt ist aus der Windows Foto Gallerie (siehe angehängten Screenshot)

Ich habe bereit ein bissel hinbekommen, aber irgendwie ist das noch nicht so wie ich mir das vorstelle, vllt weiß ja der ein oder andere was ich ändern muss damits so funktioniert wie die Version in Windows!

Angehängt hab ich auch mal das kleine Demo Projekt, wie ich mir das ungefähr gedacht hab!

mfg

[edit=Matze]Anhang aktualisiert. MfG, Matze[/edit]
Miniaturansicht angehängter Grafiken
trackbar_744.jpg  
Angehängte Dateien
Dateityp: zip trackbar_test_175.zip (212,6 KB, 25x aufgerufen)
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 16. Mär 2009, 21:48
Hat keiner eine Ahnung??

Muss ich die TrackBar vllt auf einem eigenen Fenster erzeugen?? Weiß jemand wie es Windows macht?

Edit:
Und wieso erstellt er die TrackBar nicht da, wo die Maus ist, sondern irgendwo auf der Form?
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 17. Mär 2009, 20:45
Weiß denn vllt jemand, wo ich sonne Komponente finde? Vllt kann ich mir von der was absehen?

Komme einfach nicht weiter

Edit:
Sorry for Push
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 17. Mär 2009, 21:56
Lucky hat in seinen Tutorials für Programmierung mit der WinApi ein ausführliches Beispiel, mit Quellcode, Beispielprogramm und PDF-Tutorial u.a. die Erstellung einer Trackbar. Musst in der PDF mal auf Seite 99 schauen.
Lucky's Seite. Dort unter Developer > Delphi > Tutorials.

Viel Spaß
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 18. Mär 2009, 17:56
Erstmal danke für deinen Tipp

Nur weiß ich wie ich die TrackBar erzeuge! Ich weiß nur nicht wie ich Sie erzeuge, so wie es Windows macht auf einem neuen Panel, Fenster ... was auch immer??!! Und ich weiß auch nciht wie ich Sie so erzeuge, das Sie genau da plaziert mit dem Thumb plaziert wird, wo sich auch die Maus befinded!

Außerdem hab ich dann noch ein Problem mit dem schließen des Fensters! Das Fenster (auf dem sich die TB befinded) soll ja genau dann geschlossen werden, wenn es selber den Focus verliert. Ich habe es probiert, das Fenster zu SubClassen und über MSDN-Library durchsuchenWM_ACTIVE und MSDN-Library durchsuchenWA_INACTIVE(wParam) die Message abzufangen! Nur das klappt leider auch nicht so wie gewollt! Ich verstehe nicht wieso noch nicht mal das funktioniert! Ich währe ja schon weiter wenn ich das Fenster wenigstens so geschlossen bekommen würde wie ich es brauch!


Edit:
Wieso kommt keine Antwort in dem COde??

Delphi-Quellcode:
//var global:
var
  tbpanel, TBwnd: hwnd;
  OldTBPanelProc: Pointer;

function TBPanelWndProc(hWnd: hWnd; uMsg: UINT; wParam: wparam; lParam: lparam): lresult; stdcall;
begin
  Result := 0;
  case uMsg of
// WM_CREATE: ShowMessage('HALLO');
    WM_ACTIVATE:
      if wparam = WA_INACTIVE then
        showmessage('scd'); //<-- Hier kommt nie was an, aber wieso??
        //PostMessage(hWnd, WM_CLOSE, 0, 0);
  else
    Result := CallWindowProc(OldTBPanelProc, hWnd, uMsg, wParam, lParam);
  end;
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//das panel erzeugen, auf dem sich die TrackBar befinden soll:
tbpanel := CreateWindowEx(WS_EX_TOPMOST,'STATIC',nil, WS_VISIBLE or WS_CHILD or SS_ETCHEDFRAME,coordx,coordy,40,200,form1.Handle, 1,hInstance,nil);

//Die neue Fensterprozedur zuweisen:
OldTBPanelProc := Pointer(SetWindowLong(tbpanel, GWL_WNDPROC, INTEGER(@TBPanelWndProc)));

end;
Kann mir jemand sagen was ich da falsch mache?? Wie so nichts passiert in den Fensterroutine??
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 21. Mär 2009, 15:29
Hey, ich habe es jetzt so einigermaßen hinbekommen

Nur ein paar kleine Dinge fehlen noch, hoffe Ihr könnt mir vllt wenigstens bei den helfen, damit ich hier nicht schon wieder an die Decke springen muss

Als allererstes:
habe den neuen Stand angehangen...


Nun zu meinen Fragen:

1. Wie kann ich es nun noch machen, dass automatisch wenn ich auf den Button klicke und die TrackBar erscheint, ich trotzdem den TrackBar Slider verschieben kann, ohne neue mit der Linken Maustaste, auf den Slider zu klicken!

2. Wie kann ich das Fenster schließen, wenn die linke Maustaste losgelassen wird? Alle Versuche über die MSDN-Library durchsuchenWM_LBUTTONUP Message sind Fehlgeschlagen! Keine Ahnung was ich da falsch gemacht hab...

3. Wie kann ich nun noch die Position der TrackBar an die aufrufende Procedure senden?

Vllt könnt Ihr mir ja bei den Fragen helfen!
Danke schon mal

Edit:
Anhang entfernt, weiter unten neu Angehangen...
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Nachteule

Registriert seit: 22. Mär 2007
Ort: München
37 Beiträge
 
Delphi 2009 Enterprise
 
#7

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 21. Mär 2009, 15:41
zu 1.
habs nicht getestet aber vllt. hilft trackbar.setfocus nach der Anzeige
zu 2.
schau dir mal das Ereignis onMouseUp an...
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 21. Mär 2009, 15:46
Ist nonVCL...

Also höchstens SetFocus(); und Halt wie oben geschrieben über die Windows Message! Klappt aber beides net
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 22. Mär 2009, 14:13
OK, habe es nun so weit...
Musste die TrackBar noch SubClassen und dort die MSDN-Library durchsuchenWM_LBUTTONUP Message abfangen! Das funktioniert nun ganz gut!
Den Slider hab ich nun auch so das er automatisch mit der Maus mit geht, wenn man auf dem Button clickt!

Jetzt Fehlt nur noch der Punkt mit der Rückgabe des Wertes der TrackBar! Hat da vllt noch jemand ne Idee?

Weiß net so Recht wie ich das aus der Fenster Prozedure wieder zurück in die aufrufende Funktion schicken soll...
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: TrackBar auf Button click im separtem Fenster erzeugen?

  Alt 22. Mär 2009, 16:28
Zitat von lbccaleb:
Ist nonVCL...
Hm, für mich bedeutet das, dass man auf die VCL verzcihtet, was du aber nicht tust.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:26 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