AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Virtual Piano
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual Piano

Ein Thema von EWeiss · begonnen am 8. Mär 2011 · letzter Beitrag vom 13. Apr 2019
Antwort Antwort
Seite 28 von 35   « Erste     18262728 2930     Letzte »    
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 05:46 Uhr)
 
Namenloser

 
FreePascal / Lazarus
 
#271
  Alt 7. Jun 2011, 13:31
Nur mal so ’ne Anregung, da der Source ja jetzt anscheinend eh öffentlich ist: Wollt ihr nicht vielleicht ein richtiges Repository dafür aufsetzen, statt immer den Code hin- und herzukopieren? Google Code wäre z.B. eine Möglichkeit (man hat die Wahl zwischen SVN und Mercurial – ich würde letzteres empfehlen wegen des einfacheren Mergings) oder auch SourceForge. Wäre denke ich deutlich eleganter und weniger Arbeit für euch beide...
  Mit Zitat antworten Zitat
EWeiss
 
#272
  Alt 7. Jun 2011, 13:43
Nur mal so ’ne Anregung, da der Source ja jetzt anscheinend eh öffentlich ist: Wollt ihr nicht vielleicht ein richtiges Repository dafür aufsetzen, statt immer den Code hin- und herzukopieren? Google Code wäre z.B. eine Möglichkeit (man hat die Wahl zwischen SVN und Mercurial – ich würde letzteres empfehlen wegen des einfacheren Mergings) oder auch SourceForge. Wäre denke ich deutlich eleganter und weniger Arbeit für euch beide...
Wäre eine überlegung wert.

gruss
  Mit Zitat antworten Zitat
blackfin
 
#273
  Alt 7. Jun 2011, 13:46
vor allem könnt ihr dann gleichzeitig dran rumwerkeln und müsst nicht immer auf den anderen warten
  Mit Zitat antworten Zitat
EWeiss
 
#274
  Alt 7. Jun 2011, 13:48
vor allem könnt ihr dann gleichzeitig dran rumwerkeln und müsst nicht immer auf den anderen warten
Ist aber auch streßig wenn man nicht über genügend englisch kenntnisse verfügt
Und Sourceforce spamt mir jetzt schon mein Postfach voll.
Nach der erstellung von BassVis_Wrapper..

EDIT:
Oder darf ich hier nicht mehr posten?

gruss

Geändert von EWeiss ( 7. Jun 2011 um 13:53 Uhr)
  Mit Zitat antworten Zitat
alfold

 
Delphi 7 Enterprise
 
#275
  Alt 7. Jun 2011, 14:53
Naja, so schlimm wird es ja nicht!
Ich brauch ja ne ganze weile. Erst wenn ich soweit fertig bin schick ich ihm die überarbeitete zu. EWeiss wird selbst nichts ändern, in meinem Sinne. Würde ich auch nicht verlangen, da es ja so schon funktioniert

Es ging Ihm ja auch nicht darum was ich möchte, sondern um zu zeigen das man auch ohne VCL tolle Oberflächen gestallten kann.

Es wird also kein Codegespame in dieser hinsicht geben

Der Rest erfolgt eh per Mail

@NamenLozer: Idee ist gut, nur wie man sowas macht
@blackfin: Warten muss er eh, bin ja nicht der schnellste
Gruss alfold
  Mit Zitat antworten Zitat
EWeiss
 
#276
  Alt 7. Jun 2011, 14:55
Zitat:
Warten muss er eh, bin ja nicht der schnellste
Kein problem für mich.

gruss
  Mit Zitat antworten Zitat
EWeiss
 
#277
  Alt 18. Jun 2011, 19:07
@NamenLozer

Wenn du zeit hast kannst nochmal testen ob die Listbox jetzt bei dir funktioniert?
Hab da einiges umgestellt vor allem was das ansprechen der ClientProc aus der DLL angeht.
Zusätzlich noch einen visuellen Rect erstellt für Selektierte Auswahl.

gruss

Geändert von EWeiss (18. Jun 2011 um 23:20 Uhr)
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#278
  Alt 18. Jun 2011, 20:50
Leider nein
Beim Start kommt jetzt die Meldung im Anhang (vorher passierte gar nichts, und das Programm hing nur).
Miniaturansicht angehängter Grafiken
scr3940_20110618_.png  
  Mit Zitat antworten Zitat
EWeiss
 
#279
  Alt 18. Jun 2011, 23:20
Leider nein
Beim Start kommt jetzt die Meldung im Anhang (vorher passierte gar nichts, und das Programm hing nur).
Hmm das hilft mir nicht wirklich weiter.
Kann mit dem Skin bzw.. dem einlesen der Instrumentenlisten zu tun haben wenn die nicht
korrekt sind. (Alte Version)

Danke für's testen.

Das linken auf die WinProc der Hauptanwendung sollte eigentlich so OK sein!

Delphi-Quellcode:
  FClientInstance,
  FPrevClientProc: TFNWndProc;
nachdem ich das Handle habe initialisiere ich die Subclass

SubClass(FHandle);

Delphi-Quellcode:
procedure TSkinListBox.SubClass(WinHandle: HWND);
begin
  FClientInstance := MakeObjectInstance(ClientWndProc);

  FPrevClientProc := Pointer(GetWindowLong(WinHandle, GWL_WNDPROC));
  SetWindowLong(WinHandle, GWL_WNDPROC, Integer(FClientInstance));
end;
Delphi-Quellcode:
procedure TSkinListBox.ClientWndProc(var Message: TMessage);

begin
  with Message do
  begin
    case Msg of
      WM_ERASEBKGND:
        Result := ListBoxProc(FHandle, integer(Msg), Message.WParam, Message.LParam);
      WM_MOUSEWHEEL:
        Result := ListBoxProc(FHandle, integer(Msg), Message.WParam, Message.LParam);
      WM_PAINT:
        Result := ListBoxProc(FHandle, integer(Msg), Message.WParam, Message.LParam);
      WM_LBUTTONUP:
        Result := ListBoxProc(FHandle, integer(Msg), Message.WParam, Message.LParam);
      WM_KILLFOCUS:
        Result := ListBoxProc(FHandle, integer(Msg), Message.WParam, Message.LParam);
    end;

    if (Result = 0) then
      Result := CallWindowProc(FPrevClientProc, FHandle, Msg, wParam, lParam);
  end;
end;


und dann.. bla bla

Delphi-Quellcode:
function TSkinListBox.ListBoxProc(WinHandle: HWND; Msg: UINT; wP: WParam; lP: LParam): LRESULT; stdcall;
begin
  ...
  Result := CallWindowProc(Pointer(FPrevClientProc), WinHandle, Msg, wP, lP);
end;
Kann mir jetzt nicht vorstellen das es daran liegen könnte (vermutung)
das die ListBoxProc privat deklariert ist.


gruss
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#280
  Alt 18. Jun 2011, 23:37
Moment mal – deine WndProc ist eine Methode eines Objekts? Woher soll denn dann der implizite Parameter self kommen, wenn die WndProc von Windows aufgerufen wird? Das könnte durchaus der Grund für den Crash sein.

Änder doch mal die Deklaration in class procedure TSkinListBox.ClientWndProc(var Message: TMessage); static; . Das ist dann quasi wie eine „normale“ Procedure, nur in einer Klasse deklariert.



edit: Okay, sorry, kannte MakeObjectInstance nicht. Gerade nachgelesen, was das ist – damit sollte es wohl doch in Ordnung sein.

edit 2: Allerdings könnte es sein, dass diese Methode mit der Datenausführungsverhinderung DEP (die ich aktiviert habe) in Konflikt gerät. Denn anscheinend wird dabei Code on-the-fly generiert/alloziiert, allerdings konnte ich nirgends sehen, dass für den Speicherbereich das PAGE_EXECUTE -Flag gesetzt würde. Vielleicht könntest du es ja doch mal so probieren, wie ich oben vorgeschlagen habe?

Geändert von Namenloser (18. Jun 2011 um 23:50 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 28 von 35   « Erste     18262728 2930     Letzte »    


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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Delphi-Forum.de - Array statisch/dynamisch oder TList fr Midi-Events This thread Refback 20. Sep 2011 15:59

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 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