Pushbutton und Bitmaps [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Pushbutton und Bitmaps [ERLEDIGT]

Beitrag von Manfred »

ich habe einen Satz StandardPushbuttons, die nahezu in jedem Programm gleich sind. z.B
Anfang,vor,zurück,Ende und noch weitere daneben.
Diese ersten 4 Pushbutton bekommen ein Bild zugewiesen. Das klappt auch. Jetzt dachte ich mir,das es ja sinnvoll wäre, wenn die Reihe PB jedsmal gleich und an der gleichen Stelle usw. steht, könnte man sowas ja auch auslagern in eine Funktion, die dann jeweils nur aufgerufen wird, und schwups ist die Kette vorhanden. Leider mußte ich feststellen, das die Bilder nur klappen, wenn die PB direkt in der jeweiligen Funktion steht, in der sie benötigt werden. Sobald ich sie auslagere und dann hinzurufe fehlen die Bilder.
Gibt es dafür pauschal eine Erklärung, was zu beachten ist? Oder wo muß ich den Spaten ansetzen für die Suche?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Pushbutton und Bitmaps

Beitrag von Tom »

Mmh. Kleines Beispielprogramm? Sind die Bilder als Ressource eingebunden? Fehlt im Source, in dem sich die Funktion befindet, möglicherweise irgendeine Include-Datei? Machst Du das mit DC_MergeGetLists() oder auf andere Weise?

Ich habe das übrigens ähnlich (das Prinzip betreffend), aber anders (bezogen auf die Durchführung) geregelt, nämlich über eine #command-Direktive. Dadurch wird zwar der Code in jede PRG verklappt, in der er verwendet wird, aber man muss ihn nur an einer Stelle ändern. Das stammt allerdings noch aus der Zeit, als DC_MergeGetLists() eingeschränkt funktionabel war. 8)
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Pushbutton und Bitmaps

Beitrag von Manfred »

hier der wichtige Abschnitt

Code: Alles auswählen

METHOD mk_dialog:standardPbLeiste(lNavigationAus,;                              // hier werden Standard PushButton für normale Dialoge aufgebaut
                                  lLoeschenAus,;
                                  oParent,;
                                  getlist,;
                                  objekt,;
                                  lNeuAus,;
                                  lSpeichernAus,;
                                  lAbbruchAus,;
                                  lNavigationWeg,;
                                  lEditAus,;
                                  lAendernAus)
       DEFAULT lNavigationAus TO .F.
       DEFAULT lLoeschenAus   TO .T.
       DEFAULT lNeuAus        TO .F.
       DEFAULT lSpeichernAus  TO .F.
       DEFAULT lABbruchAus    TO .F.
       DEFAULT lNavigationWeg TO .F.
       DEFAULT lEditAus       TO .F.
       DEFAULT lAendernAus    TO .F.

       IF ! lNavigationWeg
          @ 0,0 DCPUSHBUTTON;
                      ACTION {|| objekt:skipdb(,,,,,-1),;
                                 ::SkipzusatzDb(),;
                                 dc_getrefresh(getlist),;
                                 dc_getorigset(getlist);
                             };
                     CAPTION {||ICON_GOTOP,NIL};
                        EVAL {|o| o:setpos( {5,10}),;
                                  AAdd(::aPbNavigieren,{o,.T.} );
                             };
                        HIDE {|| lNavigationAus};
                      OBJECT ::oPbTop;
                      PARENT oParent;
                        SIZE ::nPbLaengeBMP,::nPbHoehe;
                     TABSTOP;
                     TOOLTIP "Zum Anfang der Tabelle"
          @ DCGUI_ROW,DCGUI_COL + 5 DCPUSHBUTTON;
                                          ACTION {|| objekt:skipsatz(,,.T.,,,-1),;
                                                     ::SkipzusatzDb(getlist),;
                                                     dc_getrefresh(getlist),;
                                                     dc_getorigset(getlist);
                                                 };
                                         CAPTION {||ICON_GOBACK,NIL};
                                            EVAL {|o| o:setpos( {::oPbTop:currentpos()[1] + ::oPbTop:currentsize()[1],::oPbTop:currentpos()[2]} ),;
                                                      AAdd(::aPbNavigieren,{o,.T.});
                                                 };
                                            HIDE {|| lNavigationAus};
                                          OBJECT ::oPbZurueck;
                                          PARENT oParent;
                                            SIZE ::nPblaengeBMP,::nPbHoehe;
                                         TABSTOP;
                                         TOOLTIP "vorheriger Satz in der Tabelle"
          @ DCGUI_ROW,DCGUI_COL + 5 DCPUSHBUTTON;
                                          ACTION {|| objekt:skipsatz(,,.T.),;
                                                     ::SkipzusatzDb(getlist),;
                                                     dc_getrefresh(getlist),;
                                                     dc_getorigset(getlist);
                                                 };
                                         CAPTION {||ICON_GONEXT,NIL};
                                            EVAL {|o| o:setpos( {::oPbZurueck:currentpos()[1] + ::oPbZurueck:currentsize()[1],::oPbZurueck:currentpos()[2]} ),;
                                                      AAdd(::aPbNavigieren,{o,.T.});
                                                 };
                                            HIDE {|| lNavigationAus};
                                          OBJECT ::oPbVor;
                                          PARENT oParent;
                                            SIZE ::nPblaengeBMP,::nPbHoehe;
                                         TABSTOP;
                                         TOOLTIP "nächster Satz in der Tabelle"
          @ DCGUI_ROW,DCGUI_COL + 5 DCPUSHBUTTON;
                                          ACTION {|| objekt:skipdb(),;
                                                     ::SkipzusatzDb(getlist),;
                                                     dc_getrefresh(getlist),;
                                                     dc_getorigset(getlist);
                                                 };
                                         CAPTION {||ICON_GOBOTTOM,NIL};
                                            EVAL {|o| o:setpos( {::oPbVor:currentpos()[1] + ::oPbVor:currentsize()[1],::oPbVor:currentpos()[2]} ),;
                                                      AAdd(::aPbNavigieren,{o,.T.});
                                                 };
                                            HIDE {|| lNavigationAus};
                                          OBJECT ::oPbBottom;
                                          PARENT oParent;
                                            SIZE ::nPblaengeBMP,::nPbHoehe;
                                         TABSTOP;
                                         TOOLTIP "Letzter Satz in der Tabelle"
       ENDIF
  return self
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Pushbutton und Bitmaps

Beitrag von Manfred »

auh man,
jetzt sehe ich es. Wieso ich einen Codeblock bei CAption eingebaut habe, weiß ich nicht. Aber das war der Grund. Sowas blödes aber auch.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Pushbutton und Bitmaps [ERLEDIGT]

Beitrag von Tom »

Das erklärt auch, warum es nur in der indirekten Variante nicht funktioniert.
Herzlich,
Tom
Antworten