AGB  ·  Datenschutz  ·  Impressum  







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

novcl button

Ein Thema von EWeiss · begonnen am 5. Okt 2008 · letzter Beitrag vom 9. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

novcl button

  Alt 5. Okt 2008, 23:02
habe einen button erstellt welcher mit einem Bitmap belegt wird
wenn ich nun auf den Button klicke kommt aber wieder der normale Button zum vorschein
Woran kann das liegen bzw.. was hab ich vergessen.


gruss Emil
Miniaturansicht angehängter Grafiken
2_377.jpg   1_137.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: novcl button

  Alt 6. Okt 2008, 01:46
Zitat:
Woran kann das liegen
An tausend Dingen.

Zitat:
was hab ich vergessen
Das stückchen Code zu zeigen, welches den Button behandelt ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: novcl button

  Alt 6. Okt 2008, 05:24
Zitat von turboPASCAL:
Zitat:
Woran kann das liegen
An tausend Dingen.

Zitat:
was hab ich vergessen
Das stückchen Code zu zeigen, welches den Button behandelt ?
Wenn das ein bißchen wäre da hängt mehr als nur eine Zeile dran.
Sonst hätte ich es hier eingefügt.

Interessieren würde mich ob ich die ID welche ich lokal definiert habe auch in der resource eintragen muss.
Seltsam nur das der erste Button BILD sichbar ist.

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: novcl button

  Alt 6. Okt 2008, 09:20
Siehe dazu mein "Windows32-API Tutorial für Delphi" das Kapitel Button.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: novcl button

  Alt 6. Okt 2008, 11:08
Zitat von Luckie:
Siehe dazu mein "Windows32-API Tutorial für Delphi" das Kapitel Button.
Danke Luckie das war dass erste was ich mir angeschaut habe.
Ist aber etwas komplizierter hier da ich auf alle Button Skins legen will.

da hapert es noch ein bißchen.

gruss EMil
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#6

Re: novcl button

  Alt 6. Okt 2008, 11:40
Moin moin Emil,

zeichnest du den Button selber (BS_OWNERDRAW)? Dann wäre deine Paint-Methode interessant.
... aber ohne Code ist es wirklich schwierig ...

PS: Ich hatte vor einiger Zeit auch mal einen nonVCL Button erstellt (incl. laden von JPGs)
Evtl. kannste da einige Codeschnipsel verwenden...
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

Re: novcl button

  Alt 6. Okt 2008, 11:53
Zitat von x000x:
Moin moin Emil,

zeichnest du den Button selber (BS_OWNERDRAW)? Dann wäre deine Paint-Methode interessant.
... aber ohne Code ist es wirklich schwierig ...

PS: Ich hatte vor einiger Zeit auch mal einen nonVCL Button erstellt (incl. laden von JPGs)
Evtl. kannste da einige Codeschnipsel verwenden...
Das sieht so aus ..

Delphi-Quellcode:
function RegisterButton(ButtonClass: PAnsiChar): BOOL;
var
  IsInitialized : BOOL;
  CLASS_NAME : PAnsiChar;

begin

    CLASS_NAME := ButtonClass;

    dlgClass.cbSize := SIZEOF(dlgClass);
    IsInitialized := GetClassInfoEx(hInstance, ButtonClass, dlgClass);

    if not IsInitialized then
    with dlgClass do
    begin
       IsInitialized := (GetClassInfoEx(hInstance, 'BUTTON', dlgClass));
       if IsInitialized then
       begin
           ButOldProc(lpfnWndProc, 1);
           ButOldExtra(cbWndExtra, 1);
           lpfnWndProc := @ImageButtonProc;
          // Reserviere EXTEND_EXTRA bytes zum speichern privater properties
          cbWndExtra := cbWndExtra + (EXTEND_EXTRA * 4);
          hInstance := GetInstance;
          lpszClassName := CLASS_NAME;
          IsInitialized := Bool(RegisterClassEx(dlgClass));
       end;
    end;
    Result := IsInitialized;

end;
Um den ganzen Code jetzt zu posten wäre etwas viel da alles noch über die Winproc läuft usw...
aber so kannst meinen ansatz sehen.

gruss Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: novcl button

  Alt 6. Okt 2008, 15:35
Sorry das ich jetzt nochmal poste
Kommt nicht wieder vor.

Mir ist da etwas eingefallen bezüglich der button.
Ist es möglich das die nur Funktionieren wenn ein Manifest eingebunden ist ?
Also das sie beim nächsten klick nicht den Skin verlieren.

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: novcl button

  Alt 6. Okt 2008, 15:56
Was spricht dagegen, das mal eben schnell auszuprobieren? Allerdings bin ich der Meinung, dass das manifest keine Auswirkung auf selbst gezeichnete Schaltflächen haben sollte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#10

Re: novcl button

  Alt 6. Okt 2008, 15:56
Moin moin Emil,

Zitat von EWeiss:
...Ist es möglich das die nur Funktionieren wenn ein Manifest eingebunden ist ?...
Das denke ich mal nicht.

Wenn du den Button wieder loslässt, wird dann das Bitmap wieder angezeigt?
Mir ist auch nicht ganz klar, wie du das Bitmap in den Button bekommst. Zeichnest du es selber, oder
setzt du es mit dem Style BS_BITMAP?
Delphi-Quellcode:
          Style := WS_CHILD or WS_VISIBLE or WS_TABSTOP or BS_PUSHBUTTON;
          // das Window für die Button's erstellen
          hBut := CreateWindowEx(WS_EX_TRANSPARENT,
                                 BUTTONIMAGE, '',
                                 Style, x, y, btW, btH,
                                 hOwner, ButID, GetInstance, nil);
Hierbei wird ja noch kein Bitmap im Button angezeigt
Die ganze Paint Methode brauchst du nicht posten, interessant wäre die Stelle im Code, wo du das Bitmap setzt bzw. zeichnest.
Peter
-= Gruss Peter =-
-= alias x000x =-
  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 20:00 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