AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Form nicht rechteckig
Thema durchsuchen
Ansicht
Themen-Optionen

Form nicht rechteckig

Ein Thema von KahPee · begonnen am 11. Jun 2009 · letzter Beitrag vom 15. Jun 2009
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Form nicht rechteckig

  Alt 15. Jun 2009, 14:31
Zitat von DeddyH:
Prinzipiell ist die Syntax die gleiche, allerdings gibt es ein paar Erweiterungen.
Wenn ich diese Erweiterungen von Anfang an nicht kenne gibt das dann Problem für mich oder kann ich einfach wie vorher weitermachen?
Zitat:
außer dass sich in TDE keine Komponenten installieren lassen (zur Laufzeit nutzen aber schon).
TDE? Ich steh gerade auf dem schlauch was das genau ist, wobei ich mir das glaube ich denken kann. Reichen die mitgelieferten Komponenten aus? Bzw. sind die vielen (vorsicht ironie) Komponenten von Delphi 4 vorhanden, sodass ich keine Möglichkeiten bei einem Wechsel einbüße?
Was ganz anderes: Gibt es eine Möglichkeit delphi 4 programme mit TurboDelphi weiter zuschreiben oder muss man die komplett neu schreiben?

Vielen Dank schon mal..

Edit:
Zitat von Daniel G:
Was hat denn die Version vom User turboPASCAL mit TurboDelphi zu tun? Hast du dir den Link überhaupt angesehen?
Hast recht, das hat mich iritiert, dachte das das durch TurboDelphi geproggt wurde. allerdings habe ich den Link angeguckt. wenn ich die Projektdatei versuche zu öffnen bekomme ich aber immer den Fehler "ungültiges Streamformat".
Wenn es sinn machen sollte von Delphi 4 zu wechseln welches mir nahegelegt wurde:
Zitat von DeddyH:
Woran hakt es denn? Evtl. könntest Du auch über die Verwendung von Turbo Delphi Explorer nachdenken, das ist kostenlos und moderner.
würde ich das abgesehen davon trotzdem in erwägung ziehen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#22

Re: Form nicht rechteckig

  Alt 15. Jun 2009, 14:40
@KahPee

Hat sich das Thema geändert? Ich hab dir doch gerade ein Tool genannt wo du dein Problem in 30 Sekunden erledigen kannst. Willst du jetzt lieber Turbo Pascal programmieren?
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Form nicht rechteckig

  Alt 15. Jun 2009, 14:45
Zitat von Popov:
Also ich will mir nicht alles jetzt durchlesen, aber kann es sein, daß du für dein Programmfenster eine Sonderform willst? Ist es das was du meinst?

Wenn ja, dann ist das an für sich nicht schwer, aber hier ein Tool das es ganz einfach macht:

http://www.informatics.no/progvareOF.htm

Lade dir das kleine Tool runter, lade die Grafik die du für deine Sonderform willst und laß daß Tool eine Unit mit einem Code berechnen und schreiben. Diese Unit bindest du in dein Programm ein, führst eine Funktion aus und dein Programm hat eine Sonderform.
Hab nur den Link angesehen, das sieht soweit schon mal ganz gut aus... Vielen Dank dafür.
was muss ich machen beim Einbauen (uses Unit XYZ ist klar, aber was sonst [oder kommt dieses Thema in der Hilfe vor?])?
Das Programm schneidet immer alles Weisse weg richtig?
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#24

Re: Form nicht rechteckig

  Alt 15. Jun 2009, 14:55
- GabesOddForm.exe starten
- deine Grafik öffnen (die Bereiche die später nicht sichtbar sein sollen, sollten weiß sein)
- Bild scannen (Menü Image > Scan bitmap)
- Datei UGabesOddForm.pas in deinem Projektordner speichern (Menü File > Save Source...)
- Unit UGabesOddForm unter Uses eintragen
- Prozedur in TForm1.FormCreate aufrufen: CreateOddWindow(form1.Handle, False);
- Fertig
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#25

Re: Form nicht rechteckig

  Alt 15. Jun 2009, 15:10
Vielen Dank werde das mal zuHause austesten. Da hat jemand saubere arbeit geleistet...
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#26

Re: Form nicht rechteckig

  Alt 15. Jun 2009, 15:21
Das ist ein echt Tolle Tool!
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#27

Re: Form nicht rechteckig

  Alt 15. Jun 2009, 17:26
Ich hatte das ganze mal folgendermassen gelöst, das Teil ist auch noch Win9x kompatibel:

Delphi-Quellcode:
//...

function TForm1.SetWndRegionFromImg(Bmp: TBitmap; TransparentColor: TColor): Boolean;
type
  TTransColState = (trsOn, trsOff);

  TRGBQuadArray = array[WORD] of Cardinal;
  pRGBQuadArray = ^TRGBQuadArray;
var
  TransColState: TTransColState;
  x, y: Integer;
  line: Integer;
  count: Integer;
  rgn, nrgn: THandle;
  pPixelArray: pRGBQuadArray;
begin
  Result := TRUE;

  if Bmp.PixelFormat <> pf32Bit then
    Bmp.PixelFormat := pf32Bit;

  count := 0;
  line := 0;

  rgn := CreateRectRGN(0, 0, 0, 0); // First Init Region
  nrgn := rgn;

  for y := 0 to Bmp.Height - 1 do
  begin
    pPixelArray := Bmp.Scanline[y];
    TransColState := trsOff;
    for x := 0 to Bmp.Width - 1 do
    begin
      if pPixelArray[x] <> COLORREF(TransparentColor) then
      begin
        if TransColState = trsOff then
        begin
          TransColState := trsOn;
          line := x - 1;
          inc(line);
        end;
      end else
      begin
        if TransColState = trsOn then
        begin
          TransColState := trsOff;
          if count < 4096 then
          begin
            nrgn := CreateRectRgn(line, y, x, y + 1);
            CombineRgn(Rgn, Rgn, nRgn, RGN_OR);
            inc(Count);
          end else
          begin
            ShowMessage('Debuginfo: To many Regions. Count of Rgn: '#9 + IntToStr(Count));
            Application.Terminate;
          end;
        end;
      end;
    end;
  end;
  SetWindowRgn(Handle, Rgn, TRUE);
  DeleteObject(Rgn);
  DeleteObject(nRgn);
end;


procedure TForm1.FormCreate(Sender: TObject);
const
  LWA_COLORKEY = 1; // Use crKey as the transparency color.
  LWA_ALPHA = 2; // Use bAlpha to determine the opacity of the layered window..

  USER32DLL = 'user32.dll';
var
  _SetLayeredWindowAttributes: function(hWnd: THandle; TRansparentColor: COLORREF;
    AlphaValue: Byte; Flags: Cardinal): BOOL; stdcall;
var
  hLib: THandle;
begin
  Self.Color := clFuchsia;
  Self.BorderStyle := bsNone;

  if not (Image1.Picture.Graphic is TBitmap) then
  begin
    ShowMessage('Fehler: Image muss ein Bitmap sein !');
    Application.Terminate;
  end;

  hLib := LoadLibrary(USER32DLL);
  @_SetLayeredWindowAttributes := GetProcAddress(hLib, 'SetLayeredWindowAttributes');
  if @_SetLayeredWindowAttributes <> nil then
  begin
    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
    _SetLayeredWindowAttributes(Self.Handle, COLORREF(clFuchsia), 250, LWA_COLORKEY or LWA_ALPHA);
  end
  else
  begin
    // alternative, im falle das es SetLayeredWindowAttributes nicht gibt
    SetWndRegionFromImg(Image1.Picture.Bitmap, clFuchsia);
  end;
  FreeLibrary(hLib);
end;

//...
Miniaturansicht angehängter Grafiken
preview_848.jpg  
Angehängte Dateien
Dateityp: zip projecttrwnd_293.zip (355,6 KB, 12x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.
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