Hm... kod din egen Control - så kan du evt. sælge den til intet-anene fjolser for 3$ over nettet eller noget! :) Så kan du lave en hel pakke med gennemsigtige controls med både Knapper, CheckBoxe og så videre... Det kan ikke være så svært... du bruger bare en Standard windows control. Og så koder du en onPaint override event til den. Jeg har ikke leget med Pascal eller Delphi i 2 år så jeg kan ikke huske lige præcis hvordan, men du kan tihvertifælde gøre det i C/C++ :)
Jeg har det problem at min bærbar kun kører Win98, så der er ingen transparant-understøttelse... Sidder lige nu og overfører fra bærbar til stationær og tester mellem dem via VNC (bliver nød til at følge med på den stationæres skærm samtidig)... Meget sjovt! :)
Ovenstående kode gør Taskbar'en (den med start-knappen på) gennemsigtig (skriv et tal i din edit mellem 0 og 255)...
Jeg har nu prøvet med både en knap og en edit, og ind til videre har jeg ikke set noget der virker, kun på en form...
Det er egentlig lidt snyd, for der er bare tale om en Bevel og en Label, men hva' fanden... Det virker! :)
Personligt tænker jeg ikke alt for meget på det grafiske... Programmet skal virke, og så er det det... Om det så har runde kanter, flotte ikoner eller bare damer, det er knapt så vigtigt! Hvis det endelig skal til, så er det noget man altid tilføjer bagefter! ;)
Ny ide: Sæt KeyPreveiw til true for din form, og "optag" keystrokes ned i en streng... Så kan du ellers bare skrive på formen, og evt. smække en bevel rundt om for at gøre den pæn! ;)
Prøver lige at lave et eksempel, men prøv også lidt selv! ;)
type TForm1 = class(TForm) procedure FormKeyPress(Sender: TObject; var Key: Char); procedure FormCreate(Sender: TObject); private S: String; Areal: TRect; end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin case Key of #08: S := Copy(S, 0, Length(S)-1); //Backspace #13: S := S; //Der findes ikke Enter i en edit else S := S + Key; //Smider den næste key på end; Canvas.Brush.Color := Color; Canvas.Rectangle(Areal); Canvas.TextRect(Areal, 0, 0, S); end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin case Key of #08: S := Copy(S, 0, Length(S)-1); //Backspace #13: S := S; //Der findes ikke Enter i en edit else S := S + Key; //Smider den næste key på end; Paint; end;
Hvis du vil rode med det, så kan du f.eks. ha' et billede i en variabel til formen... Når så du skriver/sletter tekst, så skal du bare bruge Canvas.BrushCopy til at fjerne det slettede så det bliver til billede igen!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.