DBGrid Hint anzeigen



  • Hallo,

    ich zeige derzeit in einer DBGrid Spalte einige verschiedene Icons an. Diese möchte ich mit einem Hinttext versehen! Hat wer Ahnung ob und wie das geht?
    ich hatte schon versucht mit Hilfe von Tooltips (URL: http://www.bcb-box.de/html/tooltips.html) an die einzelnden Icon ranzu kommen, doch leider ohne erfolg!
    ich weiß nicht wie ich ein Handle auf einen einzelnden Eintrag erlange!

    thx a lot
    Sven



  • Hallo

    für die einzelne "Einträge" gibt es keine Handles. Du must da schon das Handle des DBgrids selber nehmen, aber du kannst offenbar das Tooltip-Fenster selber positionieren.

    ti.rect = Form1->GetClientRect();
    

    bis bald
    akari



  • cool danke, der Tip war Gold wert!
    Ich übergebe der Methode (ToolTip) die rect-werte von den gezeichneten Bitmaps.

    if (Column->Field->FieldName == "WebAuftrag") {
    
            if (State.Contains(gdSelected | gdFocused ))   {
                    keybd_event(VK_TAB,0,0,0);
            }
            DBGrid_Auftraege->Canvas->Brush->Color = clWindow;
            DBGrid_Auftraege->Canvas->FillRect(Rect);
    
            AnsiString ToolTipText;
            Flags = TTF_TRANSPARENT | TTF_SUBCLASS;
    
            Graphics::TBitmap *bitmap = new Graphics::TBitmap;
            if (Column->Field->Text == 0) {
                    ImageList1->GetBitmap(56,bitmap);
                    DBGrid_Auftraege->Canvas->Draw(((Rect.Right/2) - Rect.Left) + (bitmap->Width /2)+2, Rect.Top, bitmap);
                    ToolTipText = "selbst erstellter Auftrag";
            }
            else if (Column->Field->Text == 1) {
                    ImageList1->GetBitmap(60,bitmap);
                    DBGrid_Auftraege->Canvas->Draw(((Rect.Right/2) - Rect.Left) + (bitmap->Width /2)+2 , Rect.Top, bitmap);
                    ToolTipText = "web erstellter Auftrag";
            }
            delete bitmap;
            ToolTip( DBGrid_Auftraege->Handle , AnsiTowchar_t(ToolTipText), clWhite, clBlack , Rect);
        }
    

    und schon geht´s.
    ach dies noch:

    ti.rect = Rect;//Form1->GetClientRect();
    

    sven


Anmelden zum Antworten