Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   mal wieder 'ne Uhr (https://www.delphipraxis.net/188605-mal-wieder-ne-uhr.html)

Neutral General 21. Mär 2016 15:30

AW: mal wieder 'ne Uhr
 
Zitat:

Zitat von markus5766h (Beitrag 1333476)
Die Bitmaps in den Images haben die korrekte Größe,
die TImages sind nach dem Öffnen wohl vergrößert, warum auch immer . . .:gruebel:
Das kann ich nicht nachvollziehen, auch nicht mit den heruntergeladenen Archiven.

Mein Screenshot ist ein Screenshot aus Delphi (siehe Timer und Imagelist Komponenten)!
Das ist kein Laufzeitfehler. Dein Formular IST so gebaut.
Die Image-Komponenten sind zu groß bzw. zu weit auseinander.

Mit deinem hochgeladenen Code/Formular KANN nicht das herauskommen was du oben auf deinen Screenshots zeigst!

markus5766h 21. Mär 2016 15:34

AW: mal wieder 'ne Uhr
 
Zitat:

Zitat von HolgerX (Beitrag 1333477)
... Ich würde nur die Ziffern austauschen/neuzeichnen, welche sich seit der letzten Aktualisierung 'wirklich' verändert haben, dadurch flackert es nicht so.

Auch würde ich für den Hintergrund nicht mehrere einzelne Images nutzen, sondern eines, welches zu Begin einmal komplett mit den Dots gemalt wird.

Auch würde ich die Zahlen nicht komplett aus einer Image-List holen, sondern diese als Matrix mit einem 'Dot'-Image (eins je Farbe + Hintergrund) zusammen malen ;)

Hier bräuchte man sogar nur die Dots zu malen, welche sich ändern.

siehe Post #5 --> genau das hab' ich noch vor, allerdings will ich erst einen ganzen Zeichensatz generieren (Matrix als Array).

Neutral General 21. Mär 2016 15:35

AW: mal wieder 'ne Uhr
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von HolgerX (Beitrag 1333477)
Hmm..

mit der hochgeladenen Version passt das mit der Breite bei mir, habe hier nur die fixe Breite und Höhe ersetzt:
Delphi-Quellcode:
  frmMain.ClientWidth := Image11.Width;
  frmMain.ClientHeight := Image11.Height + Image11.Top;
Kann das mit der ImageList in Verbindung mit der Skalierung unter Windows zusammenhängen?

Also bei mir sieht es mit deiner Änderung immer noch so aus: (siehe Anhang)
Habe eine 100% Skalierung in Windows eingestellt.

Edit: Auch mit einer 125% Skalierung (laut Windows Standard) sieht es bei mir immer noch aus wie im Anhang abgebildet.

p80286 21. Mär 2016 15:39

AW: mal wieder 'ne Uhr
 
Zitat:

Zitat von markus5766h (Beitrag 1333463)
Zitat:

Zitat von p80286 (Beitrag 1333449)
Schön!
Hast Du mal erwogen den Source zu veröffentlichen?

bitte schön

. . . ich hab' auch noch die Bitmaps drangehangen.
Momentan werden diese ja als ganze Ziffer gezeichnet,
ich werd' noch die Buchstaben und einige Zeichen generieren,
dann kann das Zeichnen der Werte als Matrix erfolgen.

Vielen Dank!
Da kann ich ja noch etwas lernen.
(und wenn wie hier diskutiert ein Fehler drin steckt, dann erst recht!)

Gruß
K-H

HolgerX 21. Mär 2016 15:43

AW: mal wieder 'ne Uhr
 
Hmm..

@Neutral General
Bei mir mit Delphi6 sieht es aus wie es soll..
Keine Lücken zwischen den Images und die Größen passen..

Somit kann zumindest ich hier nicht weiterhelfen, was zum Verschieben der Images oder Verkleinern der angezeigten itmaps führt.. ;)

markus5766h 21. Mär 2016 16:07

AW: mal wieder 'ne Uhr
 
Hab' mir eben noch mal die *.dfm angesehen :
die Images sind da, wo sie hin gehören, lässt sich leicht nachrechnen.

Neutral General 21. Mär 2016 16:18

AW: mal wieder 'ne Uhr
 
Zitat:

Zitat von markus5766h (Beitrag 1333485)
Hab' mir eben noch mal die *.dfm angesehen :
die Images sind da, wo sie hin gehören, lässt sich leicht nachrechnen.

Ok img1 ist die erste Ziffer:
Zitat:

img1.Left = 20
img1.Width = 98
img1.Picture.Bitmap.Width = 80
img1.Stretch = false
img1.Autosize = false
rechts daneben ist "Image1", eine Trennspalte zwischen der ersten und 2. Ziffer.
Zitat:

Image1.Left = 118
und rein rechnerisch (!) ist da eine 18 Pixel große Lücke zwischen der ersten Ziffer und der Trennspalte zwischen erster und zweiter Ziffer.
Und diese Lücke ist auch sowohl im Form-Designer als auch zur Laufzeit deutlich zu sehen wie du auf den Screenshots hier sehen kannst.

Es KANN so also gar nicht stimmen.
Benutze zum Testen Windows 7 und Delphi 7. Windows-Skalierung: 100%


EDIT: Okay ich muss das ein oder andere zurücknehmen.
Wenn ich deinen Code runterlade hat img1 eine Breite von 80 Pixeln (statt 98) und img1.Left ist 18 und nicht 20.
Sobald ich das Projekt aber in Delphi 7 öffne steht Left = 20 und Width = 98 drin. :gruebel:

markus5766h 21. Mär 2016 16:31

AW: mal wieder 'ne Uhr
 
Zitat:

Zitat von Neutral General (Beitrag 1333486)
. . .
Wenn ich deinen Code runterlade hat img1 eine Breite von 80 Pixeln (statt 98) und img1.Left ist 18 und nicht 20.
Sobald ich das Projekt aber in Delphi 7 öffne steht Left = 20 und Width = 98 drin. :gruebel:

img1.Left muss aber 16 sein, alle Größen und Positionen sind durch 16 teilbar, da die Ursprungsgrafik eine LED
in den Abmessungen 16*16 Pixel war.

Neutral General 21. Mär 2016 16:39

AW: mal wieder 'ne Uhr
 
Zitat:

Zitat von markus5766h (Beitrag 1333488)
Zitat:

Zitat von Neutral General (Beitrag 1333486)
. . .
Wenn ich deinen Code runterlade hat img1 eine Breite von 80 Pixeln (statt 98) und img1.Left ist 18 und nicht 20.
Sobald ich das Projekt aber in Delphi 7 öffne steht Left = 20 und Width = 98 drin. :gruebel:

img1.Left muss aber 16 sein, alle Größen und Positionen sind durch 16 teilbar, da die Ursprungsgrafik eine LED
in den Abmessungen 16*16 Pixel war.

Eh ja sie ist 16, hatte mich verschrieben. :oops:
Also der Code ist scheinbar tatsächlich so in Ordnung, aber Delphi machts aus irgendeinem Grund kaputt.
Sowas hatte ich noch nie. Wie kommt mein Delphi darauf, aus Left=16 und Width=80, Left=20 und Width=98 zu machen? :shock:

nahpets 21. Mär 2016 16:42

AW: mal wieder 'ne Uhr
 
Habe das Programm mit Delphi 7 geöffnet, kompiliert: passt.

Aber trotzdem hab' ich mal am Quelltext was geändert, damit zur Laufzeit die Bilder positioniert werden können.

Damit könnten dann eventuelle Bildgrößenänderungen (die von wem auch immer da reingewuselt werden) zu einer neuen Positionierung führen, so das hoffentlich) am Ende doch alles passt.
Delphi-Quellcode:
procedure TfrmMain.FormShow(Sender: TObject);
var
  hwndOwner: HWnd;
begin
  hwndOwner := GetWindow(Handle, GW_OWNER);
  ShowWindow(hwndOwner, SW_HIDE);
  Application.Icon := frmMain.Icon;
  if sLeft <> -99999 then frmMain.Left := sLeft;
  if sTop <> -99999 then frmmain.Top := sTop;
  Image8.Left := 0;
  img1.Left  := Image8.Left + Image8.Width;
  Image1.Left := img1.left  + img1.Width;
  img2.Left  := Image1.Left + Image1.Width;
  Image2.Left := img2.Left  + img2.Width;
  dp1.Left   := Image2.Left + Image2.Width;
  Image3.Left := dp1.Left   + dp1.Width;
  img3.Left  := Image3.Left + Image3.Width;
  Image4.Left := img3.Left  + img3.Width;
  img4.Left  := Image4.Left + Image4.Width;
  Image5.Left := img4.Left  + img4.Width;
  dp2.Left   := Image5.Left + Image5.Width;
  Image6.Left := dp2.Left   + dp2.Width;
  img5.Left  := Image6.Left + Image6.Width;
  Image7.Left := img5.Left  + img5.Width;
  img6.Left  := Image7.Left + Image7.Width;
  Image9.Left := img6.Left  + img6.Width;

  Image10.Top := 0;
  Image8.Top := Image10.Top + Image10.Height;
  img1.Top   := Image8.Top;
  Image1.Top := Image8.Top;
  img2.Top   := Image8.Top;
  Image2.Top := Image8.Top;
  dp1.Top    := Image8.Top;
  Image3.Top := Image8.Top;
  img3.Top   := Image8.Top;
  Image4.Top := Image8.Top;
  img4.Top   := Image8.Top;
  Image5.Top := Image8.Top;
  dp2.Top    := Image8.Top;
  Image6.Top := Image8.Top;
  img5.Top   := Image8.Top;
  Image7.Top := Image8.Top;
  img6.Top   := Image8.Top;
  Image9.Top := Image8.Top;

  Image11.Top := Image8.Top + Image8.Height;

  frmMain.ClientWidth := Image11.Width;
  frmMain.ClientHeight := Image11.Height + Image11.Top;

  ChangeDP(DColor);
  Timer1Timer(Self);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.
Seite 2 von 3     12 3      

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