AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Design von visuellen Objekten ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Design von visuellen Objekten ändern

Ein Thema von Masterj44 · begonnen am 12. Nov 2005 · letzter Beitrag vom 13. Nov 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Design von visuellen Objekten ändern

  Alt 12. Nov 2005, 23:20
Ich bin mir nicht sicher, ob das geht:

Delphi-Quellcode:
procedure TMyListbox.Repaint; override;
var Pnt: TPoint;
begin
inherited Repaint;
Perform(EM_GETSCROLLPOS, 0, Integer(@Pnt));
Canvas.Brush.Color:=clSkyBlue;
Canvas.rectangle(Width-10,0,Width,Height);
Canvas.Brush.Color:=clBlue;
//In Pnt.Y steht drin, wie weit das Teil gescrollt ist. Aber wie der Rest gezeichnet wird, weiß ich //nicht.
end;
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Design von visuellen Objekten ändern

  Alt 12. Nov 2005, 23:23
Zitat von 3_of_8:
Ja, das ist SEHR aufwendig.

Du musst halt Ereignisse, Eigenschaften, Methoden usw. definieren.

Aber du kannst ja auch mal schauen, ob du irgendwo ne fertige Koponente findest.
Oder man benutzt eine Erfindung die Vererbung heißt...
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#13

Re: Design von visuellen Objekten ändern

  Alt 12. Nov 2005, 23:27
Zitat von 3_of_8:
Ich bin mir nicht sicher, ob das geht:

Delphi-Quellcode:
procedure TMyListbox.Repaint; override;
var Pnt: TPoint;
begin
inherited Repaint;
Perform(EM_GETSCROLLPOS, 0, Integer(@Pnt));
Canvas.Brush.Color:=clSkyBlue;
Canvas.rectangle(Width-10,0,Width,Height);
Canvas.Brush.Color:=clBlue;
//In Pnt.Y steht drin, wie weit das Teil gescrollt ist. Aber wie der Rest gezeichnet wird, weiß ich //nicht.
end;
Also wenn das geht, dann bräuchte man das nur noch abzuwandeln...

Delphi-Quellcode:
procedure TMyListbox.Repaint; override;
var Pnt: TPoint;
    H: Integer;
begin
inherited Repaint;
H:=Round( Height / Count * (Height / ItemHeight)); //Höhe des Scrollbalkens. Richtig?
Perform(EM_GETSCROLLPOS, 0, Integer(@Pnt));
Canvas.Brush.Color:=clSkyBlue;
Canvas.Rectangle(Width-10,Pnt.Y,Width,Pnt.Y+H);
Canvas.Brush.Color:=clBlue;
//In Pnt.Y steht drin, wie weit das Teil gescrollt ist. Aber wie der Rest gezeichnet wird, weiß ich //nicht.
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Design von visuellen Objekten ändern

  Alt 12. Nov 2005, 23:29
Ja, so könnte es gehen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Masterj44

Registriert seit: 12. Nov 2005
38 Beiträge
 
#15

Re: Design von visuellen Objekten ändern

  Alt 13. Nov 2005, 10:28
Sorry das ich nicht frühere antworten konnte war gestern so müde.

Ich habe jetzt das ausprobiert was hier steht, doch Delphi erkennt
die Anweisung 'override' nicht und meint das 'EM_GETSCROLLPOS' ein undefinierter Bezeichner ist.

Hier der Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TMyListBox = class(TListBox)
  public
    procedure RePaint; override;
  end;
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TMyListbox.Repaint;override;
var Pnt: TPoint;
    H: Integer;
begin
inherited Repaint;
H:=Round( Height / Count * (Height / ItemHeight)); //Höhe des Scrollbalkens. Richtig?
Perform(EM_GETSCROLLPOS, 0, Integer(@Pnt));
Canvas.Brush.Color:=clSkyBlue;
Canvas.Rectangle(Width-10,Pnt.Y,Width,Pnt.Y+H);
Canvas.Brush.Color:=clBlue;
//In Pnt.Y steht drin, wie weit das Teil gescrollt ist. Aber wie der Rest gezeichnet wird, weiß ich //nicht.
end;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#16

Re: Design von visuellen Objekten ändern

  Alt 13. Nov 2005, 10:35
Repaint sorgt nur dafür, dass das Control neugezeichnet wird. Du musst die WM_PAINT-Message abfangen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Masterj44

Registriert seit: 12. Nov 2005
38 Beiträge
 
#17

Re: Design von visuellen Objekten ändern

  Alt 13. Nov 2005, 10:38
ich kenn mich da nicht so gut aus kans5t du es näher beschreiben
  Mit Zitat antworten Zitat
Masterj44

Registriert seit: 12. Nov 2005
38 Beiträge
 
#18

Re: Design von visuellen Objekten ändern

  Alt 13. Nov 2005, 10:44
Ah, ich glaub du meinst EM_GETSCROLLPOS durch WM_PAINT ersetzen
oder ist es ganz falsch?

Ich habs mal aus probiert aber es geht gar nicht, den er erkennt
die override anweisung nicht.
  Mit Zitat antworten Zitat
Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#19

Re: Design von visuellen Objekten ändern

  Alt 13. Nov 2005, 10:50
HiHo,

Was du derzeit versuchst zu machen ist, die Repaint-Prozedur einer Listbox zu überschreiben. Khabar... der mit dem unbeschreiblichen Namen sagt, dass du aber auf die Windows-Message WM_PAINT (Forensuche) reagieren solltest. Mit deinem jetzigen Code hat das eher weniger zu tun.

MfG,

hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  Mit Zitat antworten Zitat
Masterj44

Registriert seit: 12. Nov 2005
38 Beiträge
 
#20

Re: Design von visuellen Objekten ändern

  Alt 13. Nov 2005, 11:43
ich habe jetzt gesucht und auch einieges gefunden doch nichts was mir weiter hilft, wie fängt man die Wm_paint messages ab.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 23:05 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