Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBNavigator durch eigene Buttons ersetzen... (https://www.delphipraxis.net/49514-dbnavigator-durch-eigene-buttons-ersetzen.html)

torud 12. Jul 2005 13:24

Datenbank: Access • Zugriff über: AdoDataset

DBNavigator durch eigene Buttons ersetzen...
 
Hallo Wissende!

Also in der Suche konnte ich leider noch nichts passendes finden, aber ich würde gern den optisch unattraktiven DBNavigator durch eigene Buttons oder Grafiken ersetzen.

Nun meine Frage:

Ist es möglich das Ganze so umzusetzen, dass die Stati der Buttons den des DBNaviagors entsprechen? Also wenn z.B. keine Datenanbindung vorhanden ist, dass dann die Buttons alle disabled sind.

Thanatos81 12. Jul 2005 13:37

Re: DBNavigator durch eigene Buttons ersetzen...
 
Du könntest den Status mit dem der DataSource o. des DataSets vergleichen. Also z.B.
Delphi-Quellcode:
btnNext.Enabled := DataSource1.Enabled;
oder
Delphi-Quellcode:
btnNext.Enabled := Table1.Active;
Wobei ich noch nicht mit ADO gearbeitet habe, also nicht weis, wie dort die Pendants lauten

torud 12. Jul 2005 13:43

Re: DBNavigator durch eigene Buttons ersetzen...
 
Danke!

Müsste ich dann mit nem Timer ständig den Status abfragen, oder kann ich mich auch direkt an die AdoDataset hängen, um den Status zu erhalten ?

Thanatos81 12. Jul 2005 13:49

Re: DBNavigator durch eigene Buttons ersetzen...
 
Wie gesagt, hab noch nie mitm ADO gearbeitet. Aber da es ja wahrscheinlich ein Nachfahr von TDataSet ist, schau mal nach, ob es das Ereigniss AfterClose gibt, vllt hilft dir das ja weiter.

shmia 12. Jul 2005 14:04

Re: DBNavigator durch eigene Buttons ersetzen...
 
Zitat:

Zitat von torud
Also in der Suche konnte ich leider noch nichts passendes finden, aber ich würde gern den optisch unattraktiven DBNavigator durch eigene Buttons oder Grafiken ersetzen.

Also ich würde den DBNavigator nicht wegwerfen, sondern nur "aufpeppen".
Die Buttons auf dem DBNavigator sind nicht anderes als SpeedButtons.
Hier ein Beispiel, wie man auf die Buttons zugreifen kann:
Delphi-Quellcode:
type
   TDBNavigatorCracker = class(TDBNavigator);
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   // kopiere das Glyph von BitBtn1 auf den "First"-button des Navigators
   TDBNavigatorCracker(DBNavigator1).Buttons[nbFirst].Glyph := BitBtn1.Glyph;
end;
Wichtig: das Glyph muss nebeneinander 2 Bildchen haben (eines für inaktiv und eines für aktiv).
Dann schreibst du dir eine Funktion namens PimpUpMyNavigator :spin2: und ersetzt alle Glyphs.

Noch schlauer wäre es, wenn es gelingt alle Resourcen mit den Namen:
'dbn_FIRST', 'dbn_PRIOR', 'dbn_NEXT', 'dbn_LAST', 'dbn_INSERT', 'dbn_DELETE', 'dbn_EDIT', 'dbn_POST', 'dbn_CANCEL', 'dbn_REFRESH' in der Anwendung zu ersetzen.

joachimd 12. Jul 2005 15:03

Re: DBNavigator durch eigene Buttons ersetzen...
 
Zitat:

Zitat von torud
Danke!

Müsste ich dann mit nem Timer ständig den Status abfragen, oder kann ich mich auch direkt an die AdoDataset hängen, um den Status zu erhalten ?

man TDataLink

merlin17 12. Jul 2005 15:06

Re: DBNavigator durch eigene Buttons ersetzen...
 
HAllo,

es gibt die dbctrl.res, hier sind die buttons des navigators "verankert".
mit dem ResEdit kannst du die Bilder austauschen bzw. eine neue Datei erstellen.
-> in der RunTime siehst du das Ergebnis, in der DesignTime bleibt es alt (ginge
auch zu ändern, der Aufwand lohnt sich aber nicht).


:-) thomas

Matthias-k 12. Jul 2005 15:39

Re: DBNavigator durch eigene Buttons ersetzen...
 
man kann auch von deutschland nach russland laufen, kurz einen abstecher nach tokio machen, um nach rom zu kommen!


macht es nicht so umständlich!!

next, first, privior, last! wie wärs damit?

man kanns auch übertreiben!

nimm als buttons tspeedbutton, setz deine grafik drüber, und fertig!

wie du die dinger enablen und disablen kannst, wurde dir bereits gesagt! nimm dazu die ereignisse der table komponente onactivate

punkt aus! mehr net!

:x

matthias


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 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