AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Icon

Ein Thema von Willie1 · begonnen am 20. Feb 2018 · letzter Beitrag vom 20. Feb 2018
Antwort Antwort
Willie1

Registriert seit: 28. Mai 2008
618 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Windows Icon

  Alt 20. Feb 2018, 10:40
Hallo Leute,
ich bin immer noch mit dem Umzug von D 2005 zu Delphi Berlin beschäftigt und erlebe Überrascungen.

Ich will eine Windows Ikone - hier das weiße ? auf blauem Grund - auf ein eigenes Fenster plazieren. Ich gehe so vor:
Delphi-Quellcode:
procedure TForm2.FormPaint(Sender: TObject);
var
  Icon: TIcon;
begin
  Icon:=TIcon.Create;
  Icon.Handle:=LoadIcon(0,IDI_QUESTION);
  if Icon.Handle > 0 then Form2.Canvas.Draw(25,35,Icon); //<------
  Icon.Free
end;
Das klappt, wenn ich das Fenster statisch anlege. Falls ich es dynamisch anlege, so:
Delphi-Quellcode:
    with TForm2.Create(Form1) do
      try
        aw:=ShowModal;
      finally
        free
      end;
dann kracht es in der markierten Zeile: Zugriffsverletzung. Ich verstehe, das Fenster ist für Paint (noch) nicht bereit. Ich habe es mit OldOrderCreate=true versucht, bringt aber nichts. Aber warum hat es mit Delphi 2005 funktioniert!?

Gruß Willie..
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Windows Icon

  Alt 20. Feb 2018, 10:44
Ich behaupte mal, es liegt am with .

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Windows Icon

  Alt 20. Feb 2018, 10:45
Delphi-Quellcode:
procedure TForm2.FormPaint(Sender: TObject);
var
  Icon: TIcon;
begin
  Icon:=TIcon.Create;
  Icon.Handle:=LoadIcon(0,IDI_QUESTION);
// if Icon.Handle > 0 then Form2.Canvas.Draw(25,35,Icon); //<------
  if Icon.Handle > 0 then Canvas.Draw(25,35,Icon); //<------
  Icon.Free
end;
So sollte es theoretisch funktionieren.
Peter
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
618 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: Windows Icon

  Alt 20. Feb 2018, 10:55
Hallo Jasoul, das ist die Lösung!

Hallo Sherlock,
Zitat:
Ich behaupte mal, es liegt am with .
diesen "Trick" habe ich mir Jahren ausgedacht, er funktioniert prima.

Tschüss und danke
Willie.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Windows Icon

  Alt 20. Feb 2018, 11:48
Zitat:
Form2.xxx
Du erstellst die Form manuell, setzt diese Variable nicht und wunderst dich, dass es beim Zugriff darauf knallt?

Abgesehn davon, dass man innerhalb der eigenen Klasse "niemals" auf diese Variable zugreifen sollte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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:54 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