Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   WatchKit... (Uhren Baukasten) (https://www.delphipraxis.net/196691-watchkit-uhren-baukasten.html)

EWeiss 9. Jun 2018 20:43


WatchKit... (Uhren Baukasten)
 
Projekt entfernt..

KodeZwerg 9. Jun 2018 21:00

AW: WatchKit... (Uhren Bauskasten)
 
Wie meinst Du das "seine eigene Uhr basteln", erstellst Du ein Widget was ein Skin lädt?
Ach ich warte einfach mal ab, ich soll ja weniger schreiben :-)

EWeiss 9. Jun 2018 21:07

AW: WatchKit... (Uhren Bauskasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404379)
Wie meinst Du das "seine eigene Uhr basteln", erstellst Du ein Widget was ein Skin lädt?
Ach ich warte einfach mal ab, ich soll ja weniger schreiben :-)

Hehehe...
Nö wie du sehen kannst habe ich oben schon "Face" also Uhren Hintergründe. (28 Sätze habe ich zur zeit zusammen gestellt)
Dazu kommen dann noch Min, Hour, Sec Zeiger, Datum die man sich aus einer Liste wählen kann.
Eventuell später noch verschiedene Zahnräder was auch immer die man kombinieren kann um daraus eine Animation zu erstellen.

usw..
Interessant wäre so etwas für Firmen die Uhren verkaufen..
Wenn man deren Bausätze hätte Armband usw.. was dazu gehört könnte man sich eine Uhr nach gefallen zusammen stellen und diese Anfertigen lassen.
Ein Speichern der Zusammenstellung als PNG würde reichen und die Uhr ginge im Auftrag.

Im Moment erst mal nur eine Spielerei um zu lernen.

gruss

KodeZwerg 9. Jun 2018 22:25

AW: WatchKit... (Uhren Bauskasten)
 
Ich hatte da mal vor ewigen Zeiten eine ganz nett anzuschauende (DelphiX? DelphiGL?) Uhren Demo von Sulaco, dort wird in Echtzeit eine 3D Taschenuhr gerendert mit ganz coolen Graphic Extras, man kann Ziffernblatt entfernen und dann sieht man das Uhrwerk, man kann vom 3D Solid in ein 3D Linien-Modus umschalten und all so was.
Das ist weit entfernt von deinem geliebten GDI+ aber falls Du magst suche ich Dir den Source raus.
Wenn es das wird was Du schreibst, benenn es um Baukasten -> Schaukasten (engl Showcase) :?:

EWeiss 9. Jun 2018 22:31

AW: WatchKit... (Uhren Bauskasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404386)
Ich hatte da mal vor ewigen Zeiten eine ganz nett anzuschauende (DelphiX? DelphiGL?) Uhren Demo von Sulaco, dort wird in Echtzeit eine 3D Taschenuhr gerendert mit ganz coolen Graphic Extras, man kann Ziffernblatt entfernen und dann sieht man das Uhrwerk, man kann vom 3D Solid in ein 3D Linien-Modus umschalten und all so was.
Das ist weit entfernt von deinem geliebten GDI+ aber falls Du magst suche ich Dir den Source raus.
Wenn es das wird was Du schreibst, benenn es um Baukasten -> Schaukasten (engl Showcase) :?:

Danke ich kenne das Sample von Sulaco ;) OpenGL :)
Musst du nicht raussuchen.

Warum Schaukasten?
Ich stelle die Uhr zusammen also Baue ich sie ;) Baukasten.

gruss

EWeiss 10. Jun 2018 00:01

AW: WatchKit... (Uhren Baukasten)
 
Kleiner Fortschritt.. ;)

Container Hour, Min, Sec implementiert und ausgerichtet.
Tooltips addiert.

das 1 oder das 2? das ist die Frage

gruss

KodeZwerg 10. Jun 2018 00:30

AW: WatchKit... (Uhren Baukasten)
 
Unbedingt beides, realisieren wie bei OTTB, wäre das ein Kompromiss?
edit
Also wenn Maus über Shape fährt das da dann dein cooler zoom Effekt kommt mit dem großen Shape als Final-Bild.

EWeiss 10. Jun 2018 00:33

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404393)
Unbedingt beides, realisieren wie bei OTTB, wäre das ein Kompromiss?

Du meinst aus zoomen?
Wäre theoretisch möglich aber bedenke beim DragDrop wird das Original angezeigt in seiner vollen Größe.
Muss mal sehen wie sich das vereinbaren lässt.

Danke.

gruss

KodeZwerg 10. Jun 2018 00:40

AW: WatchKit... (Uhren Baukasten)
 
Wenn das DragDrop Shape so ausschaut wie das ohne Spiegelung dann passt das doch ganz gut, oder? Ach Du machst das schon perfekt wie immer.

EWeiss 10. Jun 2018 00:42

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404396)
Wenn das DragDrop Shape so ausschaut wie das ohne Spiegelung dann passt das doch ganz gut, oder? Ach Du machst das schon perfekt wie immer.

yep ist dann ohne Spiegelung.

gruss

mensch72 10. Jun 2018 10:50

AW: WatchKit... (Uhren Baukasten)
 
..."usw..
Interessant wäre so etwas für Firmen die Uhren verkaufen..
Wenn man deren Bausätze hätte Armband usw.. was dazu gehört könnte man sich eine Uhr nach gefallen zusammen stellen und diese Anfertigen lassen.
Ein Speichern der Zusammenstellung als PNG würde reichen und die Uhr ginge im Auftrag."...

In Zeiten von Smarthome... mal um die Ecke gedacht:
Da gibt es aktuell einige Herstellen mit Möglichkeiten von "UserDefinedDesigns" im herkömmlichem "Sinne von Schalterprogrammen" (also ala Jung,Gira,B&J,Merten,..)
Einige bieten das aktuell via teuren Displays, welche wie gewünscht programmiert werden, andere lösen es über "fast belibige frei wählbare Oberflächen, wo Symbole/Rahmen/Text/"Tasten" graviert oder gelasert werden, um dann entweder frei via RGB oder per gewählten bis zu 2 oder gar 3Festfarben(Weiß,Blau,Gelb,Rot,Grün) hinterlauchtet werden... da könnte sicher jeder Häuslebauer, Innenarchitekt, "Lichtdesigner", Hotelchef,... seine Sachen quasi selbst gestalten und Muster oder Serie in Auftrag geben.

Statt beleuchter/animierter Zeiger gäbe es da eben schick dargestelltes "Day/Night-Ambiente", "StandBy,Active/Inactive-Mode" ... wenn der Baukasten flexiblen Output hat, kann der Smartphone Generation ne App/Web Anzeige gebastelt werden, wo visuell exakt die gleichen "Schalter" wie real an der Wand zur Bedienauswahl verfügabr sind... das spart dieser Generation das Aufstehen vom Sofa/Sessel:)

Wenn die GrafikEngine und EffektDesign wie von Emil gewohnt universell und gut umgesetzt werden, sehe ich da also keine Beschränkung für "Uhrenbaukästen"... :thumb:

EWeiss 10. Jun 2018 11:31

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Wenn die GrafikEngine und EffektDesign wie von Emil gewohnt universell und gut umgesetzt werden, sehe ich da also keine Beschränkung für "Uhrenbaukästen"...
Ich gebe mir mühe :)

gruss

EWeiss 11. Jun 2018 20:31

AW: WatchKit... (Uhren Baukasten)
 
Ich klicke auf ein Uhr Blatt danach schicke ich eine Message um das Fenster verschieben zu können.
Delphi-Quellcode:
PostMessage(hDrop, WM_NCLBUTTONDOWN, HTCAPTION, MAKELONG(y, x));


Diese wird in meiner WinProc nicht weiter behandelt.
Das Fenster kann ich jetzt verschieben das Problem ist nur das mein Image das ich vorher in diesen Fenster erstellt habe wird nicht mitgezogen.

Jemand eine Idee wie ich das trotzdem verwirklichen könnte?
Siehe Anhang! (Die Qualität ist natürlich besser wird aber leider hier nach *.jpg konvertiert) :evil:

EDIT:
So erstelle ich das Teil.
Delphi-Quellcode:
{$REGION 'SetDropImage'}

procedure SetDropImage(WinHandle: HWND; gSprite: ISkinSpriteContainer; filename: string;
  Alpha: Integer);
var
  Graphics, Img, ImgW, ImgH: Cardinal;
  Count: Integer;
  hMemDC, DesktopDC: HDC;
  hBmp: HBitmap;
  rw: TRect;
  bf: BLENDFUNCTION;
  lP, ptSrc: TPoint;
  ls: size;
begin

  hMemDC := 0;
  DesktopDC := 0;
  hBmp := 0;

  GetWindowRect(WinHandle, rw);
  ls.Cx := rw.Right - rw.Left;
  ls.Cy := rw.Bottom - rw.Top;

  lP.x := rw.Left;
  lP.y := rw.Top;

  ptSrc.x := 0;
  ptSrc.y := 0;

  Img := gSprite.gLoadImageFromFile(PWideChar(filename), ImgW, ImgH, 0);
  if Img <> 0 then
  begin
    DesktopDC := GetDC(0);
    hMemDC := CreateCompatibleDC(DesktopDC);
    hBmp := CreateCompatibleBitmap(DesktopDC, ImgW, ImgH);

    Count := ImgW div ImgH;
    if ((Count * Integer(ImgH)) = Integer(ImgW)) then
      ImgW := ImgH;

    SelectObject(hMemDC, hBmp);
    if (GDIP_CreateFromHDC(hMemDC, Graphics) = OK) then
    begin
      GDIP_SetInterpolationMode(Graphics, InterpolationModeHighQualityBicubic);
      GDIP_DrawImageRectRectI(Graphics, Img, 0, 0, ls.cx, ls.cy, 0, 0, integer(ImgW), integer(ImgH),
        2, nil, false, nil);
      GDIP_DeleteGraphics(Graphics);
      GDIP_DisposeImage(Img);
    end;

    bf.BlendOp := AC_SRC_OVER;
    bf.BlendFlags := 0;
    bf.AlphaFormat := AC_SRC_ALPHA;
    bf.SourceConstantAlpha := Alpha;

    UpdateLayeredWindow(WinHandle, DesktopDC, @lP, @ls, hMemDC, @ptSrc, 0, @bf, ULW_ALPHA);
  end;

  DeleteObject(hBmp);
  DeleteDC(hMemDC);
  ReleaseDC(0, DesktopDC);
end;
{$ENDREGION}
Wenn ich jetzt in meiner Winproc eine Message addiere um beim verschieben des Fensters das Image mit zu verschieben

Delphi-Quellcode:
WM_MOVING:
  SetDropImage(bla, bla);
um ein neu zeichnen zu erzwingen nutzt das auch nichts das Image bleibt stehen wo es steht.
Hmmm. Sieht so aus als wenn ich HTCLIENT dafür nicht verwenden kann. grrr..


gruss

KodeZwerg 11. Jun 2018 21:31

AW: WatchKit... (Uhren Baukasten)
 
Vielleicht bei Drag Begin mit GetCapture die Maus abfangen und bei Drag End ReleaseCapture?

EWeiss 11. Jun 2018 21:36

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404586)
Vielleicht bei Drag Begin mit GetCapture die Maus abfangen
und bei Drag End ReleaseCapture?

Neee..

Es gibt bei mir kein Begin Drag.
Zudem erstelle ich ein Window das ich zwischen verschiedenen Containern hin und herschiebe da
kann man deine verlinkten API's nicht für verwenden (Die mir bekannt waren ) ;)
Ich habe es schon gelöst.. Danke.

HTCLIENT.. in Verbindung mit FullDrag

In SetDropImage
Delphi-Quellcode:
   
    UpdateLayeredWindow(WinHandle, DesktopDC, @lP, @ls, hMemDC, @ptSrc, 0, @bf, ULW_ALPHA);
    Magnetic.SetFullWindowDrag(WinHandle, true); // <<<<<
  end;

  DeleteObject(hBmp);
  DeleteDC(hMemDC);
  ReleaseDC(0, DesktopDC);
und in der Proc
Delphi-Quellcode:
    WM_DESTROY:
      begin
        Magnetic.SetFullWindowDrag(WinHandle, false); // <<<<<<
        PostQuitMessage(0);
        Result := 0;
        exit;
      end;
Und das Ergebnis!

gruss

EWeiss 12. Jun 2018 16:55

AW: WatchKit... (Uhren Baukasten)
 
first release.

Aber ist noch genug zu tun!
Drop ist in Bearbeitung.. Es tut sich also noch nicht so viel :)

gruss

KodeZwerg 12. Jun 2018 17:35

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Sollten irgendwelche wünsche eurerseits kommen werden ich sie implementieren wenn möglich.
Ich hätte da einen um einen Mehrwert für Otto-Normalos rauszuholen, ein Widget Ableger was den selektierten Shape laden kann oder als Bildschirmschoner im Großformat? Oder weder noch 8-)

EWeiss 12. Jun 2018 19:39

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404660)
Zitat:

Sollten irgendwelche wünsche eurerseits kommen werden ich sie implementieren wenn möglich.
Ich hätte da einen um einen Mehrwert für Otto-Normalos rauszuholen, ein Widget Ableger was den selektierten Shape laden kann oder als Bildschirmschoner im Großformat? Oder weder noch 8-)

Muss die Zeiger in der Größe noch anpassen.. viel Arbeit.
DrapDrop fertig machen.
Das fertige Werk dann zum laufen bringen und, und, und ;)

Dann werde ich mich darum kümmern ob man aus der EXE zur Laufzeit aus dem Widget eine eigenständige Anwendung kompilieren kann.
Keine Ahnung ob so was überhaupt möglich ist ohne Delphi installiert zu haben. Denke mal nicht.

Im Moment habe ich erst mal das Grund Konzept herausgearbeitet so hat man eine Ahnung was am ende herauskommen soll.
Sind schon mal weit, weit mehr als 2000 Zeilen Code.

Muss ja alles selber machen Grafik sowie Programmierarbeit. Hobby halt! :)
Hat keine Eile ;)

Zu guter Letzt das Projekt könnte man auch als Widget Designer sehen denn welche Objekte man am ende kombiniert ist abhängig davon welches Bitmap Format (Design) man verwendet.
Zur zeit fallen mir als Beispiel.. Kalender, Geburtstagskarten, Fotoalbum ein das könnte man zusammen stellen und als eine *.png Datei abspeichern und ausdrucken.
Wie auch immer.
Eventuell mache ich das Fenster nachher noch in der Größe änderbar dann hat man mehr platz innerhalb des Working Area

EDIT:
Werfe mal irgendeine *.png Datei in den Face Ordner dann weist was ich meine :cyclops:
Aber vorher den Thumbs Ordner löschen!

gruss

KodeZwerg 12. Jun 2018 20:08

AW: WatchKit... (Uhren Baukasten)
 
Für irgendwann später, ich dachte es mir so, dein Baukasten legt eine Ini an mit den von User bestimmten Shapes für Zeiger, Ziffern, Position etc. Wenn man Widget oder Bildschirmschoner startet nutzen die auch die Ini. Das wäre zumindest eine Variante :-)

Aber jetzt erst mal Dein Grundgedanken weiter machen, das sieht ja schon mal alles sehr ansprechend aus!

EWeiss 12. Jun 2018 23:32

AW: WatchKit... (Uhren Baukasten)
 
Wieder so ein blödes Problem.
Mein Record wird wieder mal gelöscht.

Delphi-Quellcode:
  GaSprites = packed record
    ID:          Integer;
    objtype:     Integer;
    filename:    string;
  end;
  TGaSprites = array of GaSprites;
Delphi-Quellcode:
  gaSprite:       TGaSprites;


Ich fülle den record.

Delphi-Quellcode:
procedure GetArraySprite(ID: Integer);
var
  Item: TgObj;
begin
  // Ruft alle Details zu einem Sprite-Objekt in einem einzigen Schritt ab.
  gSprKit.GD_GetObjectProperties(ID, Item);
  // Identifikations ID des Sprite Objekt
  gaSprite[ID].ID := ID;
  // Der Objekttyp (Bitmap, Text, Pfeil, Kurve, Rechteck, Ellipse, Polylinie)
  gaSprite[ID].objtype := Item.objtype;
  // Freundlicher Name
  gaSprite[ID].fname := Item.objlabel;
end;
Wenn ich jetzt in meiner Proc den Record vergleichen will ist der Record leer.

Delphi-Quellcode:
for K := 0 to SpriteCount do
begin
  if (gaSprite[K].filename = sDropName) and (gaSprite[K].ID > -1) then
  begin
    Result := DefWindowProc(WinHandle, Msg, wP, lP);
    // Redimensionieren wenn filename gleich ist
    SetLength(gaSprite, K + 1);
    // Window zerstören
    DestroyWindow(WinHandle);
    // Raus hier.. LOL super Kommentar
    exit;
  end;
end;
Warum?
Ich setze das Array nirgendwo zurück..
Nur die Daten im record sind weg.

Das hat dann zur folge das ich mehr als ein UhrBlatt addieren kann.

gruss

KodeZwerg 12. Jun 2018 23:51

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von EWeiss (Beitrag 1404681)
Ich fülle den record.

Ist er denn zu dem Zeitpunkt tatsächlich gefüllt? Füge mal ne ShowMessage(deine Daten zum lesen) ans ende der befüllung an, vielleicht greifst Du ja auch da unten mit K aufs falsche Index zu?

gaSprite[ID].fname := Item.objlabel; sollte glaube ich gaSprite[ID].filename := Item.objlabel; sein.

EWeiss 13. Jun 2018 00:03

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404682)
Zitat:

Zitat von EWeiss (Beitrag 1404681)
Ich fülle den record.

Ist er denn zu dem Zeitpunkt tatsächlich gefüllt?

Du siehst doch das ich diesen Fülle oder? Was steht hier procedure GetArraySprite(ID: Integer); im Code..
Warum sollte er dann also nicht gefüllt sein.

Zitat:

Füge mal ne ShowMessage(deine Daten zum lesen) ans ende der befüllung an
Warum sollte ich das tun wenn ich Debugge sehe ich ob der Record gefüllt ist oder nicht oder?

Zitat:

gaSprite[ID].fname := Item.objlabel; sollte glaube ich gaSprite[ID].filename := Item.objlabel; sein
Nein sollte er nicht.
Denn fName = (Freundlicher Name) ist nicht das gleiche wie der FileName inklusive Pfad.
Ich habe nur nicht alle Daten des record hier veröffentlich sondern nur einen Teil davon.

Delphi-Quellcode:
fname:       string;

ist natürlich im record vorhanden.

Zitat:

vielleicht greifst Du ja auch da unten mit K aufs falsche Index zu?
Jep das war's ;)

EDIT:
Ok hab den Fehler gefunden (Immer das gleiche wenn es zu spät wird lässt das Brain nach)
Delphi-Quellcode:
procedure InitArraySprite(ID: Integer; SpriteFileName: string);
begin
  gaSprite[ID - 1].filename := lowercase(SpriteFileName);
  GetArraySprite(ID - 1);
end;
Dynamische Arrays fangen ja bei 0 an musste also die ID dekrementieren.
Mein Record wurde zwar gefüllt aber mit der ID 1 anstatt 0 deshalb war dieser nachher leer.
Danke ;)

gruss

EWeiss 13. Jun 2018 07:29

AW: WatchKit... (Uhren Baukasten)
 
Ein Update DragDrop funktioniert hoffe ich ;)
Obiges Archiv ist dafür nötig wegen den Ressourcen.

geh jetzt in die Kiste!


gruss

KodeZwerg 13. Jun 2018 07:59

AW: WatchKit... (Uhren Baukasten)
 
Dafür das Du Gestern noch meintest das Dein "K" perfekt läuft und meine Aussage Unsinn sei freut es mich das Du den Fehler entdeckt hast. Das ich den "fname" <-> "filename" nicht Wissen konnte lag an vorenthaltener Information :)
Es ist immer schwer bei Dir was nachzuvollziehen da Du jeden Krümel an Code selbst erstellst, was auch eine Kunst für sich ist, dickes Lob!:thumb:

EWeiss 13. Jun 2018 14:46

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404696)
Dafür das Du Gestern noch meintest das Dein "K" perfekt läuft und meine Aussage Unsinn sei freut es mich das Du den Fehler entdeckt hast.

Jo mit deiner Unterstützung.
Zitat:

Das ich den "fname" <-> "filename" nicht Wissen konnte lag an vorenthaltener Information
Nicht weiter tragisch.
Leider sehe ich das nicht viel Interesse besteht :cry: Schade!

gruss

EWeiss 13. Jun 2018 19:13

AW: WatchKit... (Uhren Baukasten)
 
Vorschau..
ToolTips und Menu addiert.

gruss

KodeZwerg 13. Jun 2018 19:51

AW: WatchKit... (Uhren Baukasten)
 
Ganz am Rande....
Ich weiß ja noch nicht wieso, aber warum kann ich überall die Shapes ablegen? Auch mehrere.
Vom Design her würde ich ein drop in box so zulassen dass das Shape zentriert in box ist und auch nur eines hinein kann, ein weiteres müsste das erste ersetzen.
Das vereinfacht auch später die Zeiger Orgie, ich vermute das Du da für jedes Shape eine Art Ankerpunkt entwickelst, so das ein drop den Zeiger automatisch positioniert. Da Du auch Shapes hast wo Sekunden (und Millisekunden?) im Sortiment enthalten sind die müssen die Sekunden ja, falls Originalgetreu, am richtigen Platz landen, was da dann nicht immer die Mitte vom Shape ist sondern in so mini-Anzeige-Elemente untergeordnet und vor allem viel viel kleiner als die bisher integrierten Zeiger.
Was mir auch aufgefallen ist wo man eventuell noch was regeln könnte, bei den Zeigern hast Du eine total coole scroll-Bewegung wenn man auf die Pfeile mit Maus ist, ich würde die Verriegelung rausnehmen das nur ein Element gescrollt wird sondern solange wie Maus über Pfeil ist lass es non-stop scrollen und bei Ende wieder von vorne, also eine Endlos Schleife. Das mit Tooltip würde ich eventuell erst mal auf Eis legen, ich finde den mehr als überflüssig, ein Tipp sollte einen ja ein Tipp darstellen und nicht irgend einen Namen mit den keiner was anfangen kann. Arbeit arbeit arbeit und es hört nicht auf :-)

Das nicht viele Nutzer Interesse Zeigen mag daran geschuldet sein das Dein Programm für normalos relativ unwichtig ist. Das soll nicht abwertend gegenüber Deiner App sein, nur frag Dich mal selbst, worin liegt da ein Nutzwert wenn man nicht gerade ein Uhrenhersteller ist bzw. im Uhrengeschäft tätig ist.

Ich helfe Dir gerne obwohl es mir meist nicht gelingt da Du zu krass in Deiner Materie steckst und der Rest nur von außen zuschauen kann :P

Keine dieser Worte soll verletzen oder Bedarf eine Antwort, das sind einfach nur ein paar Rand-Beobachtungen die ich so festgestellt habe.

Weiter im Text, mir gefällt vor allem dein neuer Hintergrund, so metallisch, das passt echt gut! Die Dropbox könnte vielleicht ein wenig abgedunkelt werden aber ansonsten schaut es total ansprechend aus!:thumb:

Ps: Mit Dropbox meinte ich die Work-Area

EWeiss 13. Jun 2018 20:14

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Ich weiß ja noch nicht wieso, aber warum kann ich überall die Shapes ablegen? Auch mehrere.
Nun weil das Projekt noch im Aufbau ist ein vergleich der einzelnen Objekte noch nicht gegeben ist.
Zudem nicht überall sondern wenn nur im Working Area.
Zitat:

Vom Design her würde ich ein drop in box so zulassen dass das Shape zentriert in box ist und auch nur eines hinein kann, ein weiteres müsste das erste ersetzen.
Ist nicht nötig dafür gibt es das Menu und den Eintrag Delete.
Zitat:

Das vereinfacht auch später die Zeiger Orgie, ich vermute das Du da für jedes Shape eine Art Ankerpunkt entwickelst, so das ein drop den Zeiger automatisch positioniert.
Nein.
Zum zentrieren der Objekte addiere ich noch einen Menu Eintrag damit kann man dann das Objekt mit dem Parent Objekt zentrieren.
Oder ich baue eine Snap Funktion ein die beim verschieben prüft wie weit ich vom Parent entfernt bin.
Beispiel bei 10 Pixeln würde es dann automatisch andocken.
Zitat:

ich würde die Verriegelung rausnehmen das nur ein Element gescrollt wird sondern solange wie Maus über Pfeil ist lass es non-stop scrollen und bei Ende wieder von vorne
Nein.
Das Scrollen benötigt einiges an CPU damit diese nicht kontinuierlich belastet wird gibt es dieses Event das immer 2 Objekte gescrollt werden.
zudem ermöglich es mir eine bessere Kontrollen beim suchen eines bestimmten Objekts.
Zitat:

Das mit Tooltip würde ich eventuell erst mal auf Eis legen, ich finde den mehr als überflüssig
Ich habe mir schon was dabei gedacht.. wenn ich einen Zeiger auswähle der nicht direkt zum Sortiment gehört dann muss ich wissen welcher das ist.
Dafür ist der ToolTip gedacht und den werde ich bestimmt jetzt nicht wieder entfernen.

Zitat:

das Dein Programm für normalos relativ unwichtig ist
Es ist eins meiner Samples für meine Library von daher ist es mir relativ egal.
Für mich war es wichtig eine DragDrop Funktionalität zu integrieren das scheint gelungen.
Wenn ich andere Projekte erstelle in dem ich ein DragDrop benötige kann ich von diesen Projekt hier ableiten und muss nicht alles neu schreiben.
Zitat:

wenn man nicht gerade ein Uhrenhersteller ist bzw. im Uhrengeschäft tätig ist.
Es ist universal welche Objekte Verwendung finden ist abhängig von den Bitmaps die man einbindet.
Zitat:

mir gefällt vor allem dein neuer Hintergrund, so metallisch, das passt echt gut!
Das ist doch nur ein Bild nix besonderes ;)
Zitat:

Die Dropbox könnte vielleicht ein wenig abgedunkelt werden.
Ist abhängig vom Hintergrundbild.
Was ich später machen könnte ist ein extra Window zu erstellen in dem man die Farben für jedes einzelne Objekt inklusive des Hintergrunds verändern kann.
Aber soweit bin ich noch nicht. (so was hier)

das Hintergrund Bild im Working Area ist nichts anderes als ein Klone des Hintergrundbildes.
Also ein Ausschnitt von der Aktuellen x, y Position und letztendlich auch nur ein Sprite und kann dementsprechend verändert werden.
Wenn es nicht gesperrt wäre könntest du es im Container selbst verschieben, zoomen, drehen usw..

gruss

Jumpy 14. Jun 2018 09:15

AW: WatchKit... (Uhren Baukasten)
 
Ich weiß ja nicht genau, was das Endziel des Programmes ist, daher frag ich mal ganz ketzerisch:

Ist das mit dem Drag und Drop, der Z-Order usw, nicht zu kompliziert gedacht?
Würde es nicht reichen die Uhr und die Zeiger aus den jeweiligen Listen anzuklicken und dann würden die automatisch an der richtigen Stelle zentriert platziert? Maximal die Z-Order der Zeiger könnte man vllt. ändern wollen, das könnte man aber machen, indem man die jeweiligen Auswahlfelder gegeneinander verschiebt.

EWeiss 14. Jun 2018 09:32

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von Jumpy (Beitrag 1404794)
Ist das mit dem Drag und Drop, der Z-Order usw, nicht zu kompliziert gedacht?
Würde es nicht reichen die Uhr und die Zeiger aus den jeweiligen Listen anzuklicken und dann würden die automatisch an der richtigen Stelle zentriert platziert? Maximal die Z-Order der Zeiger könnte man vllt. ändern wollen, das könnte man aber machen, indem man die jeweiligen Auswahlfelder gegeneinander verschiebt.

Nö..
Der Anwender soll den Eindruck gewinnen das er auch etwas selber machen darf.
Wenn man alles Automatisiert wo bleibt dann der Spaß an der Sache.
Zudem geht es hier auch um die Demonstration der unterschiedlichen Möglichkeiten die meine Library unterstützt.
Zitat:

Ich weiß ja nicht genau, was das Endziel des Programmes ist, daher frag ich mal ganz ketzerisch:
Dann sage ich mal ganz ketzerisch:
Das du die Beträge nicht gelesen hast denn dann wüsstest du es.

EDIT:
Ob es nun für dich oder andere unverständlich ist.. nun gut liegt wohl daran das dieses Projekt gerade mal 5 Tage Entwicklungszeit
hinter sich hat was ich also noch alles hinzufügen möchte bis das Endprodukt mal steht mag dahin gestellt sein.
Und dafür muss man von vornherein alles in Betracht ziehen um nachher nicht wieder von neuem zu beginnen.

Ihr habt nicht mal im Entferntesten eine Ahnung wie machtvoll diese Library ist was sie alles beherrscht wenn man sie mal testen würde.
Und damit es für Interessenten nicht zu kompliziert wird gibt es meine Beispiel Projekte um auch davon zu lernen.
Das alles ohne VCL..

gruss

EWeiss 14. Jun 2018 19:28

AW: WatchKit... (Uhren Baukasten)
 
Die Farben können jetzt nach belieben angepasst werden.
Das jeweilige Bitmap das verändert werden soll muss nur den Focus haben.
Sowohl auch das Working Area.. siehe Contrast.

Es war quasi nur ein Copy\Paste von meinen anderen Sample Projekt.

gruss

KodeZwerg 14. Jun 2018 21:54

AW: WatchKit... (Uhren Baukasten)
 
kurz und knapp: Geil!

EWeiss 15. Jun 2018 01:04

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404884)
kurz und knapp: Geil!

Noch einen Nachschlag.

gruss

EWeiss 15. Jun 2018 23:01

AW: WatchKit... (Uhren Baukasten)
 
Neue Version..

Die Funktion zur gegen Prüfung ob mehrere Uhren Blätter oder Zeiger addiert wurden ist noch nicht implementiert.
Die Uhr läuft noch nicht (kein Problem andere dinge waren erst mal wichtiger.)
Die letzte erstellte Uhr wird noch nicht abgespeichert.

Destotrotz jede menge neue Funktionen addiert siehe oben.

gruss

KodeZwerg 16. Jun 2018 07:50

AW: WatchKit... (Uhren Baukasten)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 49290Guck mal, der zeichnet Shape auch übern Rand/Working Area. Wenn ich in diesen Zustand einen Rechtsklick mache öffnet sich ein leeres Popup Menu, das zeichnet sich selbst erst wenn ich mit Maus hin und her rüberwische.

EWeiss 16. Jun 2018 08:19

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Guck mal, der zeichnet Shape auch übern Rand/Working Area
Es ist kein Shape es ist ein Bitmap Objekt und es zeichnet nicht drüber.
Siehe dir mal das layer_area.png Bitmap an der Rahmen wird 8 Pixel von äußeren Rand gezeichnet das bedeutet das Objekt geht 8 Pixel über den gezeichneten Rand.
Das Areal ist genau so groß wie das layer_area *.png und in diesen Bereich kannst du das Objekt bewegen
Ist etwas ungewöhnlich aber das verhalten ist korrekt.

Wie gesagt das man 3 Face Objekte addieren kann wird noch entfernt.
Entweder ich ersetze das alte mit dem neu eingefügten oder vordere auf das alte erst zu löschen.

Zitat:

Wenn ich in diesen Zustand einen Rechtsklick mache öffnet sich ein leeres Popup Menu, das zeichnet sich selbst erst wenn ich mit Maus hin und her rüberwische.
Kann ich nicht nachvollziehen das Menu arbeitet bei mir korrekt und wird direkt gezeichnet, hast Win10 ? (Ich nicht)

Danke für das Feedback.

EDIT:
Du kannst aber mal gerne prüfen was dir diese Zeile zurückgibt
Delphi-Quellcode:
hMenuWnd := WindowFromDC(PDis.HDC);
uControls.. Zeile 1528.
Wenn 0 dann verwendest du bestimmt Windows 10.
Ansonsten muss das funktionieren.

gruss

KodeZwerg 16. Jun 2018 08:38

AW: WatchKit... (Uhren Baukasten)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 49292 So sieht bei mir mit Windows 7 x64 der Popup aus, gezeichnet wirds erst wenn ich mit Maus wische.

EWeiss 16. Jun 2018 08:49

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404940)
Anhang 49292 So sieht bei mir mit Windows 7 x64 der Popup aus, gezeichnet wirds erst wenn ich mit Maus wische.

Wie schon gesagt bei mir so.. und zwar sobald ich einen rechtsklick ausführe.
Kann es nicht nachvollziehen.

gruss

KodeZwerg 16. Jun 2018 09:12

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von EWeiss (Beitrag 1404939)
Du kannst aber mal gerne prüfen was dir diese Zeile zurückgibt
Delphi-Quellcode:
hMenuWnd := WindowFromDC(PDis.HDC);
uControls.. Zeile 1528.

Mein Delphi kann Zeile
[DCC Error] SKAeroAPI.pas(2736): E2003 Undeclared identifier: 'TArray<>'
übersetzt: function CTRL_SpriteObject(): TArray<TgObj>; stdcall; external dllfile;
nicht verwerten, nicht weiter schlimm.

EWeiss 16. Jun 2018 09:20

AW: WatchKit... (Uhren Baukasten)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1404942)
Zitat:

Zitat von EWeiss (Beitrag 1404939)
Du kannst aber mal gerne prüfen was dir diese Zeile zurückgibt
Delphi-Quellcode:
hMenuWnd := WindowFromDC(PDis.HDC);
uControls.. Zeile 1528.

Mein Delphi kann Zeile
[DCC Error] SKAeroAPI.pas(2736): E2003 Undeclared identifier: 'TArray<>'
übersetzt: function CTRL_SpriteObject(): TArray<TgObj>; stdcall; external dllfile;
nicht verwerten, nicht weiter schlimm.

ja weil es das in D2009 nicht gibt kennt keine Generics
Ich erstelle ein neues Menu..

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr.
Seite 1 von 3  1 23      

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