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


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 04:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz