Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Bordes redondeado de un cuadrado o rectángulo. (https://www.clubdelphi.com/foros/showthread.php?t=97024)

REHome 16-11-2024 03:12:51

Bordes redondeado de un cuadrado o rectángulo.
 
Si te fijas en estos dos símbolos de las esquinas como este ┌ y este otro de doble línea ╔, el borde una lía es este ╭, pero no hay de doble línea. También busco este.

¿Hay otra tabla de codificación que lo incluya o no existe?

Por ahora solo veo este.
https://unicode.org/charts/nameslist/n_2500.html

A lo mejor hay otros por ahí que no se.

Saludos y muchas gracias.

Casimiro Notevi 16-11-2024 13:22:14

Tienes distintas opciones, pero mejor te hago un copia/pega de lo que ha contestado chatgpt:


Para modificar un carácter como `╔` y que se dibuje con esquinas redondeadas, no puedes cambiar directamente su representación en el sistema operativo. Sin embargo, hay varias formas de lograr el efecto que deseas dentro de tu aplicación:

---

### **1. Crear un carácter redondeado usando un `TCanvas`**
Puedes dibujar manualmente las esquinas redondeadas utilizando gráficos en lugar de depender de la fuente predeterminada.

**Ejemplo:**
```delphi
procedure TForm1.FormPaint(Sender: TObject);
begin
with Canvas do
begin
Pen.Width := 2; // Grosor del borde
Pen.Color := clBlack; // Color del borde
Brush.Style := bsClear; // Sin relleno

// Dibujar una esquina redondeada (similar a ╔)
MoveTo(50, 50); // Inicio de la línea vertical
LineTo(50, 100); // Línea vertical

Arc(50, 50, 100, 100, 100, 50, 50, 100); // Esquina redondeada

LineTo(100, 50); // Línea horizontal
end;
end;
```

Este enfoque permite crear una esquina redondeada personalizada y ajustarla según necesites. Puedes implementar algo similar en controles gráficos, como `TImage`.

---

### **2. Crear una fuente personalizada**
Si deseas usar un carácter como `╔` pero con un diseño redondeado, puedes crear una fuente personalizada con herramientas como **FontForge**.

Pasos básicos:
1. **Descarga FontForge**: Una herramienta gratuita para edición de fuentes.
2. **Crea o edita un carácter**:
- Abre una fuente (como `Courier New` o `Monospace`) y localiza el carácter `╔`.
- Modifica el diseño para que las esquinas sean redondeadas.
- Guarda la nueva fuente con un nombre único.
3. **Carga la fuente en Delphi**:
- Instala la fuente en el sistema operativo.
- Usa la fuente en tu aplicación configurando `Canvas.Font.Name`.

**Ejemplo en Delphi:**
```delphi
procedure TForm1.FormCreate(Sender: TObject);
begin
Canvas.Font.Name := 'MiFuentePersonalizada';
Canvas.Font.Size := 12;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.TextOut(50, 50, '╔'); // Usará tu carácter personalizado
end;
```

---

### **3. Simular caracteres en un `TStringGrid` o similar**
Si estás utilizando controles como `TStringGrid` para dibujar caracteres como bordes, puedes personalizar la apariencia de las celdas para que se comporten como esquinas redondeadas.

**Ejemplo:**
```delphi
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer; Rect: TRect; State: TGridDrawState);
begin
with StringGrid1.Canvas do
begin
Pen.Color := clBlack;
Brush.Style := bsClear;

if (Col = 0) and (Row = 0) then // Dibujar solo en la celda superior izquierda
begin
// Esquina redondeada
Arc(Rect.Left, Rect.Top, Rect.Left + 20, Rect.Top + 20, Rect.Right, Rect.Top, Rect.Left, Rect.Bottom);
MoveTo(Rect.Left, Rect.Top + 10);
LineTo(Rect.Left, Rect.Bottom);
LineTo(Rect.Right, Rect.Top);
end;
end;
end;
```

---

### **4. Generar caracteres como imágenes**
Otra alternativa es usar imágenes que representen tus caracteres personalizados. Por ejemplo, puedes diseñar un carácter `╔` redondeado en un editor gráfico (como GIMP o Photoshop) y cargarlo en un control como `TImage`.

**Ejemplo:**
```delphi
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile('esquina_redondeada.bmp'); // Usa tu imagen
end;
```

---

### **5. Dibujar dinámicamente con Bezier**
Si necesitas mayor control sobre las esquinas redondeadas, puedes usar curvas de Bézier para dibujarlas. Esto te permitirá ajustar la forma y el grado de redondez.

**Ejemplo:**
```delphi
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Pen.Color := clBlack;
Canvas.Pen.Width := 2;

// Dibujar curva redondeada
Canvas.MoveTo(50, 50);
Canvas.LineTo(50, 80); // Línea vertical
Canvas.PolyBezier([Point(50, 80), Point(60, 60), Point(80, 50)]); // Curva
Canvas.LineTo(100, 50); // Línea horizontal
end;
```

---

### Conclusión
- Si solo necesitas cambiar la representación gráfica dentro de tu aplicación, **dibujar manualmente** (`TCanvas`) o usar **imágenes** es lo más sencillo.
- Si deseas reutilizar el carácter modificado en múltiples aplicaciones, considera **crear una fuente personalizada**.
- Para un control dinámico y reutilizable, puedes combinar `TCanvas` con eventos de dibujo.


La franja horaria es GMT +2. Ahora son las 15:56:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi