AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie TIcon gestretcht in ein TBitmap zeichnen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie TIcon gestretcht in ein TBitmap zeichnen?

Ein Thema von himitsu · begonnen am 1. Mai 2010 · letzter Beitrag vom 5. Mai 2010
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.257 Beiträge
 
Delphi 12 Athens
 
#1

Wie TIcon gestretcht in ein TBitmap zeichnen?

  Alt 1. Mai 2010, 17:33
Ich habe in einer Komponente ein Bitmap liegen, welchem ich aus unterschiedlichen Quellen den Inhalt irgendeines Bildes geben wollte.

Zum Test übergeb ich dort jeweils das Standard-Icon der Form (hab daran nichts verändert)
und das Icon der Anwendung.

Delphi-Quellcode:
Action.Image := Self.Icon;

Action.Image := Application.Icon;
Intern wird dann dieses gemacht.
Delphi-Quellcode:
Procedure TInsightAction.AssignImage(Value: TGraphic);
  Begin
    If Assigned(Value) Then Begin
      If not Assigned(FImage) Then Begin
        FImage := TBitmap.Create;
        FImage.Width := 16;
        FImage.Height := 16;
      End;
      With FImage.Canvas do Begin
        Brush.Color := cl3DLight;
        FillRect(Rect(0, 0, 16, 16));
        //Draw(0, 0, Value);
        StretchDraw(Rect(0, 0, 15, 15), Value);
      End;
try Value.SaveToFile('a.ico'); except end;
FImage.SaveToFile('a.bmp');
    End Else FreeAndNil(FImage);
    DoChanged;
  End;
Das Problem ist nur, daß überhaupt nichts stimmt.
Bei Form.Icon wird garnichts gezeichnet und es tritt auch kein Fehler in StretchDraw oder Draw auf.
SaveToFile wirft aber diese Exception:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EInvalidGraphic mit der Meldung 'Ungültiges Symbol' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Wärend beim Applications-Icon das Speichern funktioniert, es wird auch gezeichnet, aber immer nur in Originalgröße.
Es ist das 32x32-Standardicon von Delphi und selbst wenn ich dieses mach
Delphi-Quellcode:
StretchDraw(Rect(0, 0, 5, 5), Value);
                       ^^^^
werden immer die obersten 16x16 Pixel über das gesamte Bitmap gezeichnet.




[add]
Auf dem angehängten Bild sind 2 Bereiche markiert.

im Unteren liegt das Application.Icon
und im Oberen sollte 3 Mal das Form.Icon liegen.
> oben sieht man nichts
> unten sieht das Bild immer gleich aus, egal ob .Draw oder ob StretchDraw mit sonstwelchen Bildausmaßen verwendet wird.

Delphi-Quellcode:
StretchDraw(Rect(0, 0, 15, 15), Value);
                 ^^^^ Position
                       ^^^^^^ Ausmaße
Nur wenn ich die Position ändere, dann verschiebt sich das Bild.
Angehängte Grafiken
Dateityp: png unbenannt_380.png (29,0 KB, 12x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
 


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