Announcement

Collapse
No announcement yet.

System und GDI fresser TMSHFlexGrid

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • System und GDI fresser TMSHFlexGrid

    Hallo zusammen<br>
    Habe ein Problem mit dem TMSHFlexGrid vom Microsoft<br>
    Ich brauche ein Grid in dem man Images Anzeigen kann und <br>
    beim Clicken auf einer Celle auslesen kann (Zell Koordinaten)<br>
    Habe dazu das MS Grid genommen.<br>
    Funktioniert auch soweit prima, aber jetzt kommst<br>
    bei der Zuweisung des Pictures <br>
    objMSGrid.CellPicture := imgX.Picture;<br>
    geht mit jedem mal System und GDI Resourcen in den Keller<br>
    Mache ich das mit VB6 muss der Aufruf so lauten<br>
    Set objMSGrid.CellPicture = imgX.Picture<p>
    Wie muss ich das in Delphi machen ?<br>
    Unter Windows 2000 habe ich keine Probleme<br>
    Programm soll aber auch unter Win 95/98 laufen.

    Danke Oliver

  • #2
    Hallo,

    das Grid wird alle zugewiesenen Grafiken im eigenen Cache vorhalten, bei vielen Datensätzen führt das dazu, dass man schnell an die alten 16-Bit-Grenzen von Windows 9x/Me stösst. Man darf nicht zu viele Datensätze zur gleichen Zeit im Grid verwalten bzw. die Grafiken nicht im Grid anzeigen, sondern für den aktuell ausgewählten Datensatz in einer TImage-Instanz etc

    Comment


    • #3
      Hallo
      Danke erst einmal für die schnelle Antwort.<br>
      Sie ist mir zwar Einleuchtend, aber ich habe auch<br>
      vergessen zu erwähnen das dieses mit VB6 funktioniert.<br>
      VB6 benutzt aber den Set befehl.<p>
      Ich muß die möglichkeit haben alle Bitmaps<br>
      max 42 x 25 a 410 Bytes gleichzeitig anzeigen zu können.<br>
      Habe es auch mal mit einem DrawGrid versucht, über Canvas.Draw<br>
      Habe dann aber immer einen unschönen Bildaufbau.<br>
      Meine genaue Frage ist nun<br>
      Warum funktioniert ohne GDI Verluste bei VB<br>
      Wie kann ich Delphi dazu bringen es genauso aufzurufen

      Comment


      • #4
        Hallo,

        was verbirgt sich hinter <i>imgX.Picture</i>? Wenn es sich um <i>TImage.Picture</i> handelt, kann es sein, das dort Speicherleichen für die Grafiken entstehen? Wie sieht das Ganze im Detail aus

        Comment


        • #5
          Hallo,<p>
          Also ich will für die Modelleisenbahn einen Gleisbild Editor<br> Programmieren.<br>
          Dazu habe ich 40 verschiedene Gleisarten in TImage(TBitmap).<br>
          Diese brauche ich zur Auswahl.<br>
          Über den Tag bekomme ich die aktuelle Auswahl.<br>
          Klickt der User nun auf das Grid setze ich das Bild mit<p>
          grdTrack.CellPicture := gapGleisArt[gintDragDropPicture].Picture;<p>
          Wobei gapGleisArt ein Array Typ Pointer auf das Bild ist<br>
          da ich die Info mehrmals brauche.<p>
          Habe paralell auch versucht mit DrawGrid über Canvas.Draw<br>
          Funktioniert auch super, nur wenn ich zwischen MDI Childs<br>
          wechsel macht er den Bildaufbau langsam von oben nach unten.<br>
          Ich möchte aber das das Gleisbild mit einem mal da ist.
          Noch eine Nachteil ist das die Hints dann nicht aktualisiert<br>
          werden wenn man über eine bestimmte Zelle ist.<p>
          Was beim MSHFlexGrid funktioniert mit<br>
          Application.CancelHint;<p>
          Vieleicht gibs ja noch ne andere möglichkeit.<br>
          Das Gleisbild wird aber später von einem anderen Programm<br>
          eingelesen und steuert dann zb. die Weichen

          Comment

          Working...
          X