AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Image so gross machen das ein String genau reinpasst.
Thema durchsuchen
Ansicht
Themen-Optionen

Image so gross machen das ein String genau reinpasst.

Ein Thema von Sharky · begonnen am 9. Jan 2003 · letzter Beitrag vom 10. Jan 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#11
  Alt 10. Jan 2003, 12:17
Zitat von eddy:
Hab ihn mir angesehen. Läuft prima. Jetzt fehlt nur noch ein Regler zum Einstellen der Farben.
Ich habe hier mal eine neue Version des Demos abgelegt.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#12
  Alt 10. Jan 2003, 13:36
Moin sakura,

also in D5 ist unter TCanvas die Eigenschaft ClipRect beschrieben (dto. TControlCanvas).
Nachdem ich die gelesen hatte dachte ich:

*freu* daran wird's liegen.

Pustekuchen... Read Only.

Das wird dann durch die Grösse der Bitmap eingestellt, aber darauf muss man erst mal kommen

Selbst mein "schmutziger Trick", wie beim Austausch eines Formulares (falls Du Dich erinnerst) lässt sich hier leider nicht anwenden, da ClipRect wohl über GetClipRect ausgelesen wird (ich hab's jetzt nicht extra nachgeschaut).

Warum dann kein SetClipRect implementiert wurde, dass die Bitmap entsprechend einstellt wird wohl ewig das Geheimnis von Borland bleiben.
(oder ich hab' mir die verschiedenen Eigenschaften nicht richtig angesehen )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#13
  Alt 10. Jan 2003, 13:54
Zitat von Christian Seehase:
also in D5 ist unter TCanvas die Eigenschaft ClipRect beschrieben
Achso.
Zitat von Christian Seehase:
Das wird dann durch die Grösse der Bitmap eingestellt, aber darauf muss man erst mal kommen
Schon recht viel Canvas-Graphik-Programmierung betrieben.
Zitat von Christian Seehase:
Warum dann kein SetClipRect implementiert wurde, dass die Bitmap entsprechend einstellt wird wohl ewig das Geheimnis von Borland bleiben.
Nicht unbedingt. Da der (Control)Canvas ja nicht nur für Bitmaps sondern halt auch für Paintboxen, Labels und andere Controls da ist, kann der/die/das Canvas auch nicht direkt in seiner Größe verändert werden. Letzlich ist der Canvas auch nur ein weiteres Handle in der Control. Windows weiss anhand der Zuweisung des Canvas-Handels zu welcher Control dieses geöhrt und kann dann entsprechend "malen". In diese Richtung kann Windows auch die verfügbare Fläche ermitteln. Wenn man das weiss, dann ist die Schlußfolgerung für das "wie erhalte ich mehr Platz auf meinem Canvas" recht einfach. Stell Dir mal vor, das gänge anders herum.
Delphi-Quellcode:
...
Canvas.Handle := GetDC(0);
try
  Canvas.SetClipRect(0,0,45,300); // was für eine Bildschirmauflösung das jetzt wär...
...
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#14
  Alt 10. Jan 2003, 14:25
Moin sakura,

danke für die Erklärung.
Bisher hab' ich noch nie mit Canvas direkt gearbeitet.

Allerdings wäre es vielleicht nicht so ganz sinnlos, wenn bei Komponenten wie TImage direkt ein ClipRect angegeben (und eben nicht für die Canvas) und eingestellt werden könnte. Das Setzen einer solchen Eigenschaft könnte dann auch solche von Dir genannten "Gemeinheiten" unterbinden.

BTW:
Auch wenn's komisch klingt scheint die Canvas wohl richtig zu sein.
Es steht ja schliesslich für Leinwand bzw. Zeichenfläche.

[EDIT]
und wie ist ClipRect in der englischen Hilfe beschrieben?
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#15
  Alt 10. Jan 2003, 14:30
Hallo Christian,

Zitat:
Specifies the boundaries of the clipping rectangle.

property ClipRect: TRect;

Description

Use ClipRect to determine where the canvas needs painting. ClipRect limits the drawing region of the canvas so that any drawing that occurs at coordinates outside the ClipRect is clipped and doesn’t appear in the image.

When handling a form’s OnPaint event, the canvas' ClipRect property is set to the rectangle that needs to be painted. Portions of the image that do not overlap the ClipRect do not need to be drawn. Thus, OnPaint routines can use the value of ClipRect to optimize painting, speeding the overall performance of the application.
Beispiel:

Delphi-Quellcode:
This example creates a region and selects this region as the clipping rectangle for the Image component's canvas. It then sets the canvas's brush color to red and calls FillRect using the ClipRect as the area to fill. Lastly, the ClipRect is reset to the original value that it contained by calling SelectClipRect with nil as the second parameter and deletes the region.

procedure Form1.Button1Click(Sender: TObject);
var

    MyRgn: HRGN ;

begin

    MyRgn := CreateRectRgn(100,100,200,200);
    SelectClipRgn(Image1.Canvas.Handle,MyRgn);
    Image1.Canvas.Brush.Color := clRed;
    Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
    Image1.Invalidate;
    SelectClipRgn(Image1.Canvas.Handle,nil);
    DeleteObject(MyRgn);

end;
Grüsse, Daniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#16
  Alt 10. Jan 2003, 14:37
Moin Daniel B,

danke, dann war da mal wieder jemand an der Übersetzung, der sich mit englisch etwas schwer tut und/oder der sich mit der Materie nicht auskennt.
Und Korrekturlesen von jemandem der sich auskennt hat wohl auch nicht stattgefunden.
Typisch
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:44 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